ACK Edge クラスタを作成して、データセンターおよびエッジデバイス内のデバイスを Container Service for Kubernetes (ACK) に接続し、ACK が提供する機能を使用し、オンプレミスの計算リソースを管理できます。このトピックでは、ACK Edge クラスタネットワークで使用される主要な概念とネットワークアーキテクチャ(クラウドエッジ接続ネットワーク、Container Network Interface (CNI)、Service、および Ingress を含む)について説明します。これらの用語を理解することで、アプリケーションデプロイメントモデルとネットワークアクセス方法を最適化できます。
クラウドエッジネットワーク接続モード
ACK Edge クラスタは、パブリックネットワークモードまたはプライベートネットワークモードで接続できます。
パブリックネットワークモード: オンプレミスのデータセンターとエッジデバイスは、インターネット NAT ゲートウェイまたはパブリック ネットワーク インターフェース コントローラー (NIC) を介して接続され、ACK コントロールプレーンおよびその他の Alibaba Cloud サービスへのアクセスを可能にします。
プライベートネットワークモード: データセンターとエッジデバイスのコンピューティングデバイスは、専用回線、VPN ゲートウェイ、またはその他のプライベートネットワークを介して接続され、クラウドでホストされている ACK コントロールプレーンおよびその他の Alibaba Cloud サービスへのアクセスを可能にします。次の図では、Alibaba Cloud の Express Connect を例として使用しています。
クラウドエッジ O&M 通信コンポーネント
ACK Edge クラスタは、中央クラウドがエッジデータセンターとエッジデバイスを管理するクラウドエッジコラボレーションアーキテクチャを使用します。コンピューティングデバイスは多くの場合、複数のリージョンとネットワークドメインに分散しているため、中央クラウドとエッジ側の間の直接通信は不可能です。
エッジデバイスに対する中央クラウドの O&M およびモニタリング要件を満たすために、2 つのソリューションを利用できます。
プライベートネットワーク通信: プライベートネットワークを介して中央クラウドの仮想プライベートクラウド (VPC) をエッジのデータセンターまたはデバイスに接続し、クラウドとエッジ間の通信を可能にします。
インターネット経由のトンネリング: クラウドエッジ O&M 通信コンポーネント Raven を使用して、インターネット上にリバーストンネルを確立します。このリバーストンネルは、クラウドとエッジ間での O&M データとモニタリングデータの転送を容易にします。エッジデータセンターまたはデバイスがインターネットにアクセスできることを確認してください。詳細については、「リージョン間の O&M 通信コンポーネント Raven」をご参照ください。
CNI
Kubernetes は CNI プラグインを使用して、コンテナ間のネットワーク通信を有効化および標準化します。
コンテナネットワーク内のポッドのステータスは、ポッドのライフサイクルフェーズによって異なります。たとえば、ポッドが作成されると、コンテナネットワークに追加されます。ポッドが削除されると、コンテナネットワークから削除されます。
コンテナネットワーク内の各ポッドには、ポッドを識別するための一意の IP アドレスが割り当てられます。
ポッドは、クラスタ内のエンドポイントとクラスタ外のエンドポイントと通信できます。
CNI プラグインは、コンテナネットワークの実装を担当します。使用する CNI プラグインによって、ポッドへの IP アドレスの割り当て方法、オーバーレイネットワークを使用するかどうか、クラスタ内でのトラフィックの転送方法、およびポッドへのアクセスの管理方法が決まります。よく知られているオープンソース CNI プラグインには、Calico、Flannel、Cilium などがあります。
ACK Edge クラスタは、それぞれ異なる機能を持つネットワークプラグイン Flannel と Terway Edge をサポートしています。クラスタを作成する前に、次のセクションを参照して適切なネットワークプラグインを選択してください。
クラスタが作成されると、Terway Edge と Flannel を切り替えることはできません。
Flannel (コンテナ用オーバーレイネットワーク)
ACK Edge クラスタでは、Flannel は Virtual Extensible Local Area Network (VXLAN) モードで動作し、レイヤー 3 ホストネットワーク上にコンテナネットワークを確立して、クロスホストポッド通信を可能にします。
Flannel ネットワークプラグインは、ポッドの CIDR ブロックが VPC の CIDR ブロックと重複しないようにします。ポッドの CIDR ブロックは均等に分割され、クラスタ内のノードに割り当てられます。ノード上の各ポッドには、ノードの CIDR ブロックに属する IP アドレスが割り当てられます。Flannel ネットワークプラグインには、次の機能があります。
ポッドの CIDR ブロックは、VPC の CIDR ブロックと重複しません。
コンテナパケットは、ホストによって VXLAN を使用してカプセル化され、送信されます。
外部ネットワークデバイスの追加構成は不要で、すぐに使用できます。
Flannel ネットワークプラグインの詳細については、「Flannel」をご参照ください。
Terway Edge (コンテナ用アンダーレイネットワーク)
Terway Edge は、クラウドノードプール内でクラウドネイティブ ネットワークソリューションを採用しています。これは、Elastic Network Interface(ENI)を使用してコンテナーネットワークを構成します。ENI は、VPC 内の IP アドレスをポッドに割り当てる仮想 NIC です。エッジノードプールの場合、ポッド用に CIDR ブロックを指定する必要があります。 コンテナーはこの CIDR ブロックから IP アドレスを取得します。Terway Edge ネットワークプラグインには、次の特徴があります。
クラウドポッドと Elastic Compute Service (ECS) インスタンスの CIDR ブロックは、VPC の IP アドレス範囲内にあり、同じネットワークプレーン上にあります。
エッジポッドの CIDR ブロックは、ホストの CIDR ブロックと重複しません。
カプセル化なしのポッド間の通信により、オーバーレイネットワークよりも優れた効率を提供します。
コンテナパケット送信には、ルートを持つ外部ネットワークデバイスの構成が必要です。
ポッド IP を介した、外部ホスト、コンテナ、およびクラウドサービスからクラスタ内のコンテナへの直接アクセスをサポートします。
Terway Edge ネットワークプラグインの詳細については、「Terway Edge ネットワークプラグイン」をご参照ください。
Service の概要
Service は、ポッドのグループへのエントリポイントを提供することにより、アプリケーションを公開する方法です。ACK は、さまざまなソースとクライアントからのリクエストを処理するために、次のタイプの Service を提供します。
タイプ | 説明 |
ClusterIP | ClusterIP Service は、クラスタ内でのアクセスを処理するために使用されます。アプリケーションがクラスタ内部での公開を必要とする場合は、ClusterIP Service を作成できます。 説明 デフォルトでは、Service を作成するときに ClusterIP が選択されます。 |
NodePort | NodePort Service は、アプリケーションをインターネットに公開するために使用されます。クラスタノードの IP アドレスとポートを使用して、アプリケーションを公開できます。このようにして、ノードの IP アドレスとポートを介してアプリケーションにアクセスできます。 |
LoadBalancer | LoadBalancer Service は、アプリケーションをインターネットに公開するために使用されます。LoadBalancer Service は、SLB インスタンスを使用してアプリケーションを公開します。そのため、LoadBalancer Service は NodePort Service よりも高い可用性とパフォーマンスを提供します。LoadBalancer Service を使用してアプリケーションを公開する方法の詳細については、「LoadBalancer Service を使用してアプリケーションを公開する」をご参照ください。 |
Headless Service | Headless Service は、Service 構成ファイルの |
ExternalName | ExternalName Service は、Service を外部ドメイン名にマップするために使用されます。これにより、クラスタ内のポッドは Service を使用して外部ドメイン名にアクセスできます。 |
ACK Edge クラスタでは、計算リソースは多くの場合、異なるネットワークドメインに分散しています。分散シナリオでは、次の機能が提供されます。
機能 | 説明 |
Service トポロジ | Service トポロジにより、クライアントリクエストが同じネットワークドメイン内または同じノード上のバックエンドポッドに転送されます。そのため、異なるネットワークドメインにあるクライアントと service ポッド間の通信は制限されます。詳細については、「Service トポロジを構成する」をご参照ください。 |
NodePort Service のポートフェンシング | 複数のネットワークドメインにわたる NodePort Service のポート分離のために、ノードプールに基づいて NodePort リスニングを構成できます。詳細については、「ノードプールに基づいて NodePort リスニングを構成する」をご参照ください。 |
Ingress の概要
ACK Edge クラスタでは、Service はレイヤー 4 ロードバランシングをサポートしています。ただし、Ingress はレイヤー 7 でクラスタ内の Service への外部アクセスを管理します。Ingress は、クラスタ内の複数の Service を公開するアクセスポイントとして機能します。Ingress を使用して、さまざまなレイヤー 7 転送ルールを構成できます。たとえば、ドメイン名またはパスに基づいて、リクエストを異なる Service に転送できます。詳細については、「Ingress の概要」をご参照ください。