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

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

最終更新日:Dec 26, 2024

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 はクラスタ内の Service への外部アクセスをレイヤー 7 で管理します。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 は、1 つの vRouter、少なくとも 1 つのプライベート CIDR ブロック、および少なくとも 1 つの 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 インスタンスを一括管理したりできます。