要件
RKE2は非常に軽量ですが、以下に示す最小要件があります。
前提条件
2つのRKE2ノードは同じノード名を持つことはできません。デフォルトでは、ノード名はマシンのホスト名から取得されます。
2台以上のマシンが同じホスト名を持つ場合は、次のいずれかを行う必要があります:
-
ホスト名を一意の値に更新してください。
-
設定ファイルの`node-name`パラメータを一意の値に設定してください。
-
設定ファイルの`with-node-id`パラメータを`true`に設定して、ホスト名にランダムに生成されたID番号を追加してください。
コントロールプレーンノード間の往復時間(RTT)が2msを超える場合は、次の ガイドを参照してください。
オペレーティングシステム
Linux
RKE2で検証されたすべてのOSバージョンについては、 RKE2サポートマトリックスを参照してください。一般的に、RKE2はsystemdとiptablesを使用する任意のLinux配布パッケージで動作するはずです。
Windows
|
Windowsサポートには、RKE2クラスターのCNIとしてCalicoまたはFlannelを選択する必要があります。 |
|
RKE2 Windowsエージェントが機能するためには、Windows Server Containers機能を有効にする必要があります。 |
RKE2 Windowsノード(ワーカー)エージェントは、以下のオペレーティングシステムおよびその後の非メジャーリリースでテストおよび検証されています:
-
Windows Server 2019 LTSC(amd64)(OSビルド17763.2061)
-
Windows Server 2022 LTSC(amd64)(OSビルド20348.169)
管理者権限で新しいPowerShellウィンドウを開いてください。
powershell -Command "Start-Process PowerShell -Verb RunAs"
新しいPowerShellウィンドウで、次のコマンドを実行します。
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All
これにより、`Containers`機能が正しく動作するために再起動が必要になります。
Hardware (ハードウェア)
ハードウェア要件は、デプロイメントの規模に基づいてスケールします。最小推奨事項はここに示されています。
VMサイズガイド
コントロールプレーン + etcdノードのCPUとRAMが制限されている場合、標準のワークロード条件下で参加できるエージェントノードの数に制限がある可能性があります。
| サーバー CPU | サーバのRAM | エージェントの数 |
|---|---|---|
2 |
4GB |
0-225 |
4 |
8GB |
226-450 |
8 |
16GB |
451-1300 |
16+ |
32GB |
1300+ |
CPUがスペースを解放できるように、エージェントノードは50以下のバッチで参加することをお勧めします。ノード参加時にスパイクが発生します。255ノード以上を希望する場合は、デフォルトの`cluster-cidr`を変更することを忘れないでください!
このデータは特定のテスト条件下で取得されました。環境やワークロードによって異なる場合があります。以下の手順は、これを取得するために実行されたテストの概要を示しています。これはv1.27.4+rke2r1で最後に実行されました。すべてのマシンは、標準の20 GiB gp3ボリュームでAWSにプロビジョニングされました。
-
Prometheusデータソースを使用してGrafanaでリソースを監視します。
-
継続的なクラスター活動をシミュレートするようにワークロードをデプロイします:
-
継続的にスケールアップおよびスケールダウンする基本的なワークロード
-
ループ内で削除され再作成されるワークロード
-
CRDを含む複数のリソースを持つ一定のワークロード。
-
-
エージェントノードを一度に30~50台ずつ追加します。
ネットワーキング
|
ノードにNetworkManagerがインストールされ、有効になっている場合は、それがCNI管理インターフェースを無視するように構成されていることを確認してください。ノードにWickedがインストールされ、有効になっている場合は、転送sysctl設定が有効になっていることを確認してください。 |
RKE2サーバーは、クラスター内の他のノードからポート6443と9345にアクセスできる必要があります。
Flannel VXLANが使用されている場合、すべてのノードはUDPポート8472を介して他のノードに到達できる必要があります。
メトリクスサーバーを利用する場合は、各ノードでポート10250を開く必要があります。
|
ノードのVXLANポートは、クラスターネットワークが誰でもアクセスできるようになるため、外部に公開してはいけません。ポート8472へのアクセスを無効にするファイアウォール/セキュリティグループの背後でノードを実行してください。 |
受信ネットワークルール
| ポート | プロトコル | ソース | 宛先 | 説明 |
|---|---|---|---|---|
6443 |
TCP |
すべてのRKE2ノード |
RKE2サーバーノード |
Kubernetes API |
9345 |
TCP |
すべてのRKE2ノード |
RKE2サーバーノード |
RKE2スーパーバイザーAPI |
10250 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
kubeletメトリクス |
2379 |
TCP |
RKE2サーバーノード |
RKE2サーバーノード |
etcdクライアントポート |
2380 |
TCP |
RKE2サーバーノード |
RKE2サーバーノード |
etcdピアポート |
2381 |
TCP |
RKE2サーバーノード |
RKE2サーバーノード |
etcdメトリクスポート |
30000-32767 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
NodePortポート範囲 |
CNI特有の受信ネットワークルール
-
カナル
-
Cilium
-
Calico
-
Flannel
| ポート | プロトコル | ソース | 宛先 | 説明 |
|---|---|---|---|---|
8472 |
UDP |
すべてのRKE2ノード |
すべてのRKE2ノード |
VXLANを使用したCanal CNI |
9099 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
Canal CNIヘルスチェック |
51820 |
UDP |
すべてのRKE2ノード |
すべてのRKE2ノード |
WireGuard IPv4を使用したCanal CNI |
51821 |
UDP |
すべてのRKE2ノード |
すべてのRKE2ノード |
WireGuard IPv6/デュアルスタックを使用したCanal CNI |
| ポート | プロトコル | ソース | 宛先 | 説明 |
|---|---|---|---|---|
8/0 |
ICMP |
すべてのRKE2ノード |
すべてのRKE2ノード |
Cilium CNIヘルスチェック |
4240 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
Cilium CNIヘルスチェック |
8472 |
UDP |
すべてのRKE2ノード |
すべてのRKE2ノード |
VXLANを使用したCilium CNI |
51871 |
UDP |
すべてのRKE2ノード |
すべてのRKE2ノード |
WireGuardを使用したCilium CNI |
| ポート | プロトコル | ソース | 宛先 | 説明 |
|---|---|---|---|---|
179 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
BGPを使用したCalico CNI |
4789 |
UDP |
すべてのRKE2ノード |
すべてのRKE2ノード |
VXLANを使用したCalico CNI |
5473 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
Typhaを使用したCalico CNI |
9098 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
Calico Typhaのヘルスチェック |
9099 |
TCP |
すべてのRKE2ノード |
すべてのRKE2ノード |
Calicoのヘルスチェック |
| ポート | プロトコル | ソース | 宛先 | 説明 |
|---|---|---|---|---|
4789 |
UDP |
すべてのRKE2ノード |
すべてのRKE2ノード |
VXLANを使用したFlannel CNI |