コンテナネットワークとクラスターネットワークの説明
コンテナネットワークとクラスターネットワークとは、クラスターの基本属性です。クラスターネットワークとコンテナネットワークを設定することによって、クラスターのネットワーク区画をプランニングできます。
コンテナネットワークとクラスターネットワークとの関係
クラスターネットワーク:クラスター内のホストにノードネットワークアドレス範囲内のIPアドレスを割り当てるために、Virtual Private Cloud(VPC)のサブネットを選択してクラスターのノードネットワークに使用することができます。VPCの詳細については、VPCの概要をご参照ください。 コンテナネットワーク:コンテナネットワークアドレス範囲内のIPアドレスをクラスター内コンテナに割り当てます。GlobalRouterモード、VPC-CNIモード、Cilium-Overlayモードなどが含まれます。
GlobalRouterモード:3つのプライベートセグメントをコンテナネットワークとしてカスタマイズできます。選択したクラスター内のサービス数の上限に応じて、適切なサイズのCIDRセグメントがKubernetes serviceに自動的に割り当てられます。また、選択したノードあたりのPod数の上限に応じて、クラスター内の各CVMに適切なサイズのネットワークセグメントを自動的に割り当て、そのホストがPodに割り当てるIPアドレスとして使用できます。
VPC-CNIモード:コンテナ割り当て用のIPは、クラスターと同一のVPCを持つサブネットを選択します。
Cilium-Overlayモード:3つのプライベートセグメントをコンテナネットワークとしてカスタマイズできます。選択したクラスター内のサービス数の上限に応じて、適切なサイズのCIDRセグメントがKubernetes serviceに自動的に割り当てられます。また、選択したノードあたりのPod数の上限に応じて、クラスター内の各サーバーに適切なサイズのネットワークセグメントを自動的に割り当て、そのホストがPodに割り当てるIPアドレスとして使用できます。
コンテナネットワークとクラスターネットワークの制限
コンテナネットワークとクラスターネットワークセグメントは重複できません。
同一VPC内では、異なるクラスターのコンテナネットワークセグメントは重複できません。
コンテナネットワークとVPCルーティングが重複する場合は、コンテナネットワーク内の転送を優先します。
クラスターネットワークとTencent Cloudのその他リソース間での通信
クラスター内コンテナとコンテナ間での相互通信です。
クラスター内コンテナはノードと直接、相互通信します。
クラスター内コンテナは、クラウドデータベース(CDB)TencentDB、TencentDB for Redis、CDB Memcachedなどのリソースと同一VPC配下のプライベートネットワークで相互通信します。 注意:
クラスターコンテナを同一のVPC配下の他のリソースに接続する場合、セキュリティグループがコンテナネットワークセグメントを開放しているかどうかしっかり確認してください。
Tencent Kubernetes Engine(TKE)クラスターのip-masqコンポーネントは、コンテナがSNAT経由でクラスターネットワークとVPCネットワークにアクセスできないようにします。他のネットワークセグメントは影響を受けないため、コンテナは同一のVPC配下のその他リソース(Redisなど)にアクセスする際にコンテナセグメントを開放する必要があります。
コンテナネットワークの説明
コンテナCIDR:クラスター内Service、Podなどのリソースが配置されたネットワークセグメントです。
1ノードあたりのPod数の上限:各Nodeに割り当てられるCIDRのサイズを決定します。
説明
TKEクラスターは、デフォルトで2つのkube-dnsのPodと1つのl7-lb-controllerのPodを作成します。
1つのNode上のPodには、ネットワーク番号、ブロードキャストアドレス、ゲートウェイアドレスという3つのアドレスが割り当てられないため、Nodeの最大のPod数=podMax - 3となります。
クラスター内Service数の上限:Serviceに割り当てるCIDRのサイズを決定します。
説明
TKEクラスターは、デフォルトでkubernetes、hpa-metrics-service、kube-dnsという3つのServiceを作成すると同時に、2つのブロードキャストアドレスとネットワーク番号があります。そのため、ユーザーが使えるServices数の上限/クラスターは、ServiceMax - 5となります。
ノード:クラスター内のWorkerノードです。
説明
ノード数の計算式は、(CIDR IP 数 - クラスター内Service数の上限)/ 1ノードあたりのPod数の上限となります。
コンテナネットワークモードを選択するには、どうすればいいですか。
TKEは、ユースケースに応じてさまざまなネットワークモードを提供しています。ここでは、GlobalRouter、VPC-CNI、Cilium-Overlayという3つのネットワークモードを詳しくご説明するとともに、この3つのユースケースやメリット、使用上の制限など、さまざまな観点から比較します。ビジネスニーズに合わせてお選びいただけます。
説明
ネットワークモードを選択してクラスターを作成した場合、その後ネットワークモードを変更することはできません。
GlobalRouterモード
GlobalRouterネットワークモードでは、TKEが基盤となるプライベートネットワーク(VPC)のグローバルルーティング機能をベースとして、コンテナネットワークとVPC間の相互アクセスのためのルーティングポリシーを実装しています。詳細については、GlobalRouterモードの説明をご参照ください。 VPC-CNIモード
VPC-CNIネットワークモードは、CNIとVPC Elastic Network Interface(ENI)をベースとして実装されたTKEのコンテナネットワーク機能であり、厳しいレイテンシ要件が求められるシナリオに適しています。このネットワークモードでは、コンテナとノードは同一のネットワークプレーンに分散されています。コンテナIPは、IPAMDコンポーネントによって割り当てられたENI IPとなります。詳細については、VPC-CNIモードの説明をご参照ください。 Cilium-Overlayモード
Cilium-Overlayネットワークモードは、Cilium VXLanをベースとして実装されたTKEのコンテナネットワークプラグインで、分散型クラウドのシナリオにおいて、サードパーティノードをTKEクラスターに追加したネットワーク管理です。詳細については、Cilium-Overlayモードの説明をご参照ください。 説明
Cilium-Overlayモードのパフォーマンス低下のため、このモードは分散型クラウドにおけるサードパーティノードのシナリオにのみ対応しており、クラウド上にしかノードがないシナリオには対応していません。
ネットワークモードの選択
ここでは、ユースケース、メリット、使用上の制限といったさまざまな観点から、TKEが提供するGlobalRouter、VPC-CNI、Cilium-Overlayという3つのネットワークモードを比較します。以下の内容を参照して、最適なネットワークモードをお選びください。
|
ユースケース | 一般的なコンテナ事業のシナリオです。 オフラインコンピューティング関連事業です。 | ネットワークのレイテンシ要件が高いシナリオです。 従来のアーキテクチャはコンテナプラットフォームに移行し、固定IPを持つコンテナに依存するシナリオです。 | 分散型クラウドにおけるサードパーティノードのシナリオにのみ対応しています。 クラウド上にしかノードがないシナリオには対応していません。 |
メリット | コンテナルーティングは直接VPCを経由して、コンテナとノードと同一のネットワークプレーンに分散されます。 コンテナネットワークセグメントはフレキブルに割り当て、コンテナIPセグメントはVPCの他のセグメントを占有することはありません。使用可能なIPリソースは豊富にあります。 | ENIのコンテナネットワークはVPCサブネットに属し、VPC製品の管理範囲に含めることができます。 固定IP、Cloud Load Balancer(CLB)パススルーPodなどのユーザーシナリオに対応しています。 ネットワークパフォーマンスはGlobalRouterモードより優れています。 | クラウドノードとサードパーティノードは、指定されたコンテナネットワークセグメントを共有します。 コンテナネットワークセグメントはフレキブルに割り当て、コンテナIPセグメントはVPCの他のセグメントを占有することはありません。使用可能なIPリソースは豊富にあります。 |
使用制限 | 専用線、Peering ConnectionおよびCloud Connect Networkといった相互通信シナリオには、追加の設定が必要です。 固定Pod IPには対応していません。 | コンテナネットワークとノードネットワークは、同一のVPCに属し、IPアドレスのリソースは限られています。 ノード内コンテナ数は、ENIとENIに割り当て可能なIPの数によって制限されます。 固定IPモードは、Podのアベイラビリティーゾーンをまたいだスケジューリングには対応していません。 | Cilium VXLanトンネルパッケージングプロトコルを使用すると、最大10%のパフォーマンス損失が生じます。 Pod IPはクラスター外からは直接アクセスできません。 IDCのサードパーティノードがクラウド上の APIServerとパブリックサービスにアクセスできるように、指定されたサブネットから2つのIPを取得して、プライベートネットワークCLBを作成する必要があります。 固定Pod IPには対応していません。 |
追加機能を搭載しています | Kubernetesの標準機能です。 | TKEは固定Pod IPに対応しています。 コンテナネットワークは、VPCコンソールから制御します。 LBは直接Podに転送し、PodはソースIPを取得できます。 | Kubernetesの標準機能です。 |