Container Service for Kubernetes (ACK) は、Kubernetes のネットワーキングと Alibaba Cloud のネットワークサービスを統合し、CNI プラグイン、Service、Ingress、DNS ベースのサービスディスカバリーを網羅した、安定した高性能なコンテナネットワークを提供します。
CNI プラグイン
Kubernetes は CNI プラグインを使用して、コンテナのネットワーキングを有効にし、標準化します:
-
Pod は作成時にコンテナネットワークに参加し、削除時に離脱します。
-
各 Pod には一意の IP アドレスが割り当てられます。
-
Pod はクラスター内外のエンドポイントと通信できます。
CNI プラグインはコンテナネットワークを実装します。使用する CNI プラグインが、Pod IP の割り当て、オーバーレイネットワークの使用、クラスター内のトラフィック転送、Pod のアクセス制御を決定します。有名なオープンソース CNI プラグインには、Calico、Flannel、Cilium などがあります。
ACK は、機能が異なる Terway と Flannel という 2 つの CNI プラグインを提供します。クラスターの作成時にどちらかを選択するには、「Terway CNI プラグインと Flannel CNI プラグインの比較」をご参照ください。
クラスターの作成後にネットワークプラグインを変更することはできません。
Terway
Terway は Alibaba Cloud が開発した CNI プラグインです。ECS インスタンスから Elastic Network Interface (ENI) を ACK クラスター内の Pod に割り当て、Pod を VXLAN などのトンネリングなしで Virtual Private Cloud (VPC) に直接接続することで、ネットワーク効率を向上させます。Terway は、高いネットワークパフォーマンスとアクセス制御要件を持つ大規模なクラスターに最適です。
Terway を使用して ACK クラスターを作成する場合、共有 ENI モードと排他 ENI モードのいずれかを選択します:
-
IP 割り当て:排他 ENI モードでは、各 Pod が専用の ENI を取得し、最適なネットワークパフォーマンスを実現します。共有 ENI モードでは、Pod が ENI を共有し、ノードあたりの Pod 密度を高めます。
-
ネットワークアクセラレーション:共有 ENI モードは DataPath V2 アクセラレーションをサポートします。有効にすると、Terway は異なる転送パスを使用して通信を高速化します。
-
アクセス制御:どちらのモードも、Pod の固定 IP アドレス、個別のセキュリティグループ、および vSwitch をサポートします。排他 ENI モードは、Kubernetes ネットワークポリシーもサポートします。
Flannel
Flannel は、VXLAN などのネットワーク仮想化を使用して Pod 用のオーバーレイネットワークを構築するオープンソースの CNI プラグインです。設定は簡単ですが、NAT のオーバーヘッドによりネットワークパフォーマンスが低く、アクセス制御も Terway より劣ります。Flannel は最大 1,000 ノードのクラスターをサポートし、ネットワークパフォーマンス要件が低いシナリオや、迅速なクラスターセットアップに適しています。
詳細については、「Terway CNI プラグインと Flannel CNI プラグインの比較」をご参照ください。
Service
Kubernetes では Pod は一時的なものであり、Pod が破棄または置換されると、そのネットワークリソースは変更されます。Service は、組み込みの負荷分散機能を備えた Pod のグループへの安定したエントリーポイントを提供します:
-
Service はラベルによって Pod を選択し、その IP アドレスとポートを Pod の IP アドレスとポートにマッピングします。
-
バックエンドの Pod が変更されると、Service は転送ルールを自動的に更新します。
ACK は、クラスター内、外部、およびインターネットからのアクセスのために、ClusterIP、NodePort、LoadBalancer、Headless、ExternalName の各 Service をサポートしています。詳細については、「Service の管理」をご参照ください。
Ingress
レイヤー 4 負荷分散を提供する Service とは異なり、Ingress はレイヤー 7 で外部アクセスを管理し、一元化されたエントリーポイントを使用して、ドメイン名またはパスに基づいてリクエストを異なる Service にルーティングします。詳細については、「Ingress の管理」をご参照ください。
DNS ベースのサービスディスカバリー
ACK は DNS を介して Service 名をクラスター IP アドレスに解決し、IP アドレスやデプロイ環境に関係なく、ドメイン名によるアプリケーションアクセスを可能にします。詳細については、「DNS ベースのサービスディスカバリー」をご参照ください。