すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:ネットワークの概要

最終更新日:Jan 27, 2025

Alibaba Cloud Container Compute Service (ACS) は、Kubernetes ネットワークモデル、Virtual Private Cloud (VPC)、および Server Load Balancer (SLB) を統合することにより、安定した高パフォーマンスのコンテナネットワークを提供します。このトピックでは、コンテナネットワークインターフェース (CNI)、Service、Ingress、DNS サービスディスカバリなど、ACS クラスタネットワークと Alibaba Cloud ネットワークインフラストラクチャで使用される重要な用語について説明します。これらの用語を理解することで、アプリケーションデプロイメントモデルとネットワークアクセス方法を最適化できます。

ACS のネットワーク機能

カテゴリ

ネットワーク機能

サポート

参照

ネットワーク構成管理

デュアルスタック (IPv4 および IPv6)

サポートされていません

該当なし

個々のポッドのネットワーク構成を設定する

サポートされています

ポッドに vSwitch とセキュリティグループを指定する

ポッドのセキュリティグループを設定する

サポートされています

ポッドに vSwitch とセキュリティグループを指定する

南北トラフィック管理

インターネットにアクセスするようにポッドを設定する

サポートされています

インターネットにポッドを公開する

サポートされています

LoadBalancer サービスを使用する

サポートされています

自動的に作成された CLB サービスを使用してアプリケーションを公開する

Ingress を使用する

サポートされています

ALB Ingress 管理

Service

クラウドネイティブアプリケーションには、アジャイルなイテレーションと迅速なスケーリングが必要です。コンテナと関連するネットワークリソースのライフサイクルは短いです。ワークロードの迅速なスケーリングを実現するには、自動ロードバランシングを設定し、静的 IP アドレスを使用する必要があります。ACS では、ポッドのイングレスとロードバランサーとして Service を作成できます。Service のしくみ

  • Service を作成すると、ACS は Service に安定した IP アドレスを割り当てます。

  • selector パラメータを設定してポッドを選択し、Service の IP アドレスとポートをポッドの IP アドレスとポートにマッピングしてロードバランシングを行うことができます。

ACS は、さまざまなソースとクライアントからのリクエストを処理するために、次のタイプの Service を提供します。

  • ClusterIP

    • ClusterIP Service は、クラスタ内でのアクセスを処理するために使用されます。アプリケーションがクラスタ内でサービスを提供するようにするには、ClusterIP Service を作成します。

    説明

    デフォルトでは、Service を作成するときに ClusterIP が選択されます。

  • LoadBalancer

  • Headless Service

    • Headless Service は、Service 構成ファイルで clusterIP フィールドを None に設定することで定義されます。Headless Service には、固定の仮想 IP アドレス (VIP) がありません。クライアントが Service のドメインにアクセスすると、DNS はすべてのバックエンドポッドの IP アドレスを返します。クライアントは、DNS ロードバランシングを使用して、ポッド間の負荷を分散する必要があります。

  • ExternalName

    • ExternalName Service は、外部ドメイン名をクラスタ内の Service にマッピングするために使用されます。たとえば、外部データベースのドメイン名をクラスタ内の Service 名にマッピングできます。これにより、Service 名を使用してクラスタ内のデータベースにアクセスできます。

詳細については、「LoadBalancer Service を構成する際の考慮事項」をご参照ください。

Ingress

ACS クラスタでは、Service は レイヤー 4 ロードバランシングをサポートしています。ただし、Ingress は レイヤー 7 でクラスタ内の Service への外部アクセスを管理します。Ingress を使用して、異なる レイヤー 7 転送ルールを構成できます。たとえば、ドメイン名またはパスに基づいて、リクエストを異なる Service に転送できます。詳細については、「ALB Ingress 管理」をご参照ください。

フロントエンドとバックエンドを分離する一般的なアーキテクチャでは、フロントエンドとバックエンドを区別するために異なるアクセスパスが使用されます。この場合、Ingress を使用して、異なるアプリケーション間で レイヤー 7 ロードバランシングを実装できます。

DNS サービスディスカバリ

ACS は、サービスディスカバリに DNS を使用します。たとえば、Service の名前は、クライアント上の Service のクラスタ IP アドレスに解決できます。ポッドの名前は、StatefulSet を使用してポッドの IP アドレスに解決できます。DNS ベースのサービスディスカバリにより、アプリケーションの IP アドレスを使用したり、アプリケーションがデプロイされている環境を気にすることなく、アプリケーションにアクセスできます。

CoreDNS は、Service の名前を Service の IP アドレスに自動的に変換します。これにより、同じ Service 名を使用して、異なる環境で Service にアクセスできます。DNS コンポーネントの使用方法と微調整の詳細については、「DNS のしくみと DNS の構成」をご参照ください。

ネットワークインフラストラクチャ

  • VPC

    VPC は、Alibaba Cloud によって提供されるプライベートネットワークの一種です。VPC は、互いに論理的に分離されています。VPC 内で Elastic Compute Service (ECS) インスタンス、ApsaraDB RDS インスタンス、SLB インスタンスなどのクラウドサービスを作成および管理できます。

    次の図は、VPC の基本的なトポロジを示しています。通常、プライベート CIDR ブロック、vSwitch、およびルートテーブルが含まれます。

    • プライベート CIDR ブロック: Classless Inter-Domain Routing (CIDR) 形式で表される VPC の IP アドレス。作成時に VPC と vSwitch のプライベート CIDR ブロックを指定する必要があります。

    • ルートテーブル: VPC 内のトラフィックフローを制御する一連のルート。デフォルトでは、システムルートテーブルが VPC 用に自動的に作成され、トラフィック管理用にシステムルートが追加されます。

    • vSwitch: VPC を 1 つ以上のサブネットにセグメント化し、VPC 内のクラウド リソースを接続します。同じ VPC 内の vSwitch は相互に通信できます。サービスの可用性を高めるために、異なるゾーンにアプリケーションをデプロイできます。

  • SLB

    ECS インスタンスを SLB インスタンスに接続すると、SLB は VIP を使用して ECS インスタンスを仮想化し、ECS インスタンスをアプリケーションサービスプールに追加します。アプリケーションサービスプールは、高パフォーマンスと高可用性を備えています。クライアントリクエストは、転送ルールに基づいて ECS インスタンスに分散されます。SLB の詳細については、「SLB の概要」をご参照ください。

    SLB は ECS インスタンスのヘルスステータスをチェックし、異常な ECS インスタンスをプールから自動的に削除して、単一障害点を排除します。これにより、アプリケーションの可用性が向上します。SLB を使用して、DDoS 攻撃からアプリケーションを防御することもできます。

    SLB は、次のコンポーネントで構成されています。

    • SLB インスタンス

      SLB インスタンスは、SLB サービスの実行中のエンティティです。SLB インスタンスはトラフィックを受信し、バックエンドサーバーに配信します。SLB を使い始めるには、SLB インスタンスを作成し、少なくとも 1 つのリスナーと 2 つの ECS インスタンスを SLB インスタンスに追加する必要があります。

    • リスナー

      リスナーはクライアントリクエストをチェックし、バックエンドサーバーに転送します。リスナーは、バックエンドサーバーのヘルスチェックも行います。

    • バックエンドサーバー

      ECS インスタンスはバックエンドサーバーとして SLB インスタンスに接続され、クライアントリクエストを受信して処理します。ECS インスタンスをサーバープールに追加するか、vServer グループまたはプライマリ/セカンダリサーバーグループを作成して、ECS インスタンスを一括管理できます。