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

Container Service for Kubernetes:ハイブリッド、クロスリージョン、オンプレミスバックエンドの構成

最終更新日:Mar 25, 2026

ALB イングレスは、alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用してバックエンドサーバーグループを構成することをサポートしています。バックエンドサーバーグループは、サービス名またはサーバーグループ ID でアタッチでき、これにより Kubernetes クラスター内の Pod とクラスター外の ECS インスタンスをハイブリッドにアタッチできます。ALB、Cloud Enterprise Network (CEN)、トランジットルーターなどのプロダクトを組み合わせることで、ALB が他のリージョンの VPC 内のサーバーにリクエストを転送するクロスリージョンアタッチメントや、オンプレミス IDC サーバーにリクエストを転送するオンプレミス IDC アタッチメントを実現できます。本トピックでは、ALB イングレスを使用してハイブリッド、クロスリージョン、およびオンプレミス IDC アタッチメントを実装する方法について説明します。

目次

注意事項

  • alb.ingress.kubernetes.io/actions.<service-name> アノテーション内のサービス名は、rule フィールド内の backend のサービス名と一致している必要があります。

  • バックエンドサーバーグループを構成する際、rule フィールド内の backend 下のサービスポート名は、use-annotation である必要があります。

  • alb.ingress.kubernetes.io/actions.<service name> アノテーションを使用して、複数のサーバーグループを ALB インスタンスにアタッチできます。

  • ベーシック ALB インスタンスは、最大 5 つのサーバーグループをサポートします。

  • ServerGroupIDServiceName+ServicePort の両方を使用してサーバーグループをアタッチする場合、システムはバックエンドサーバーグループのマッチングにおいて ServerGroupID を優先します。

シナリオ 1:複数のサービスへのリクエスト転送

前提条件

シナリオ

次の図に示すように、ALB イングレスのマルチサーバーグループ転送機能を使用して、ServiceName+ServicePort を構成することで、複数のバックエンドサーバーグループを作成またはアタッチし、クラスター内の複数のサービスにリクエストを転送できます。

image

操作手順

  1. ALB イングレスを構成します。

    次の内容を tea-ingress.yaml ファイルにデプロイします。これにより、クラスター内の複数のサービスへのリクエスト転送方法が定義されます。

    # この Ingress は、ホスト名とパスに基づいてリクエストを異なるバックエンドサーバーグループに転送し、重みに従ってトラフィックを分散します。
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" : [{
                   "ServiceName": "tea-svc",
                   "Weight": 80,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation
  2. コマンドラインからサービスにアクセスする。詳細については、「サービスへのアクセス」をご参照ください。

シナリオ 2:クラスターポッドと外部 ECS への転送

前提条件

  • あるリージョンに VPC1 という名前の VPC が作成されています。詳細については、「VPC の作成と管理」をご参照ください。

  • VPC1 に ACK または ACK Serverless クラスターが作成されています。詳細については、「ACK マネージドクラスターの作成」および「ACK Serverless クラスターの作成」をご参照ください。

  • VPC1(ALB インスタンスがデプロイされているのと同じ VPC)内に、少なくとも 1 つの ECS インスタンスが作成されており、その ECS インスタンス上に Web サービスがデプロイされています。詳細については、「カスタムインスタンスの作成」および「LNMP スタックのデプロイ」をご参照ください。

  • サーバーグループが作成されています。詳細については、「サーバーグループの作成と管理」をご参照ください。

  • 外部 ECS インスタンスがサーバーグループに追加されています。詳細については、「サーバーグループの作成と管理」をご参照ください。

  • alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用して転送操作を構成し、作成済みのサーバーグループをアタッチします。

シナリオ

このシナリオでは、同じ VPC 内のクラスター内のポッドと外部 ECS インスタンスの両方にリクエストを転送する方法を示します。ALB コンソールまたは API を使用してサーバーグループを作成し、外部 ECS インスタンスをそれに追加した後、Ingress アノテーション内でその ServerGroupID を参照します。これにより、次の図に示すようなハイブリッドバックエンドが作成されます。

image

操作手順

  1. ALB イングレスを構成します。

    次の内容を tea-ingress.yaml ファイルにデプロイします。これにより、クラスター内のポッドとクラスター外の ECS インスタンスの両方にリクエストを転送するサービスが定義されます。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" : [{
                   "ServiceName": "tea-svc",
                   "Weight": 30,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 },
                 {
                   "ServerGroupID": "sgp-71aexb9y93ypo*****",
                   "Weight": 30
                 },
                 {
                   "ServerGroupID": "sgp-slygpbvm2cydo*****",
                   "Weight": 20
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation
  2. コマンドラインからサービスにアクセスする。詳細については、「サービスへのアクセス」をご参照ください。

シナリオ 3:クラスターポッドとクロスリージョン ECS への転送

前提条件

  • 異なるリージョンに 2 つの VPC が作成され、各 VPC 内の異なるゾーンに vSwitch が作成されています。たとえば、中国 (成都) リージョンに VPC1 を、中国 (杭州) リージョンに VPC2 を作成します。

    • VPC1 では、vSwitch VSW1 がゾーン A に、vSwitch VSW2 がゾーン B にあります。

    • VPC2 では、vSwitch VSW3 がゾーン H に、vSwitch VSW4 がゾーン I にあります。

    詳細については、「VPC の作成と管理」および「vSwitch の作成と管理」をご参照ください。

  • VPC1 に ACK または ACK Serverless クラスターが作成され、そのクラスター内で AlbConfig を使用して ALB インスタンスが作成されています。詳細については、「ACK マネージドクラスターの作成」および「ALB イングレスの作成と使用によるサービスの公開」をご参照ください。

  • VPC2 に少なくとも 1 つの ECS インスタンスが作成され、その ECS インスタンス上に Web サービスがデプロイされています。詳細については、「カスタムインスタンスの作成」および「LNMP スタックのデプロイ」をご参照ください。

  • CEN インスタンスが作成され、その帯域幅プランが購入されています。詳細については、「CEN インスタンスの作成」および「帯域幅プランの購入」をご参照ください。

  • 中国 (成都) リージョンおよび中国 (杭州) リージョンの両方にトランジットルーターインスタンスが作成されています。詳細については、「トランジットルーターインスタンスの作成」をご参照ください。

シナリオ

このシナリオでは、CEN を使用して VPC 間にクロスリージョン接続を確立する方法を示します。これにより、別のリージョンの ECS インスタンスをサーバーグループに追加できます。Ingress 内でその ServerGroupID を参照することで、クラスター内のポッドとクロスリージョンの ECS インスタンスの両方にトラフィックをルーティングできます。次の図に示すとおりです。

image

たとえば、ACK または ACK Serverless クラスターおよび ALB インスタンスが中国 (成都) リージョンの VPC1 にデプロイされている場合、ALB と CEN を組み合わせて、中国 (杭州) リージョンの VPC2 内の ECS インスタンスにリクエストを転送できます。

image

操作手順

  1. CEN を構成し、クロスリージョン VPC 接続を作成します。

    詳細については、「ALB インスタンスへのクロスリージョンサーバーのアタッチ」をご参照ください。

    説明

    ALB イングレスの場合、ALB コンソールで ALB インスタンスのリスナーを構成する必要はありません。ステップ 3 で ALB イングレスを使用してリスナーを構成できます。

  2. クロスリージョンの ECS インスタンスを ALB サーバーグループに追加します。

    詳細については、「バックエンドサーバーの追加または削除」をご参照ください。

  3. alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用して転送操作を構成し、既存のサーバーグループを関連付けます。サービスがリクエストされると、この操作によりクラスター内のポッドとクラスター外のクロスリージョン VPC 内の ECS サーバーにリクエストが転送されます。

    次の内容を tea-ingress.yaml ファイルにデプロイします。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" :  [{
                   "ServiceName": "tea-svc",
                   "Weight": 30,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 },
                 {
                   "ServerGroupID": "sgp-71aexb9y93ypo*****",
                   "Weight": 30
                 },
                 {
                   "ServerGroupID": "sgp-slygpbvm2cydo*****",
                   "Weight": 20
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation

シナリオ 4:クラスターポッドとオンプレミスサーバーへの転送

前提条件

注意事項

ALB インスタンスにオンプレミスサーバーをアタッチする際の制限事項については、「制限事項」をご参照ください。

シナリオ

このシナリオでは、CEN、Express Connect、および VBR を使用してオンプレミスデータセンターを Alibaba Cloud に接続する方法を示します。これにより、オンプレミスサーバーをサーバーグループに追加できます。Ingress 内で ServerGroupID を参照することで、クラスター内のポッドとオンプレミスサーバーの両方にトラフィックをルーティングできます。次の図に示すとおりです。

image

たとえば、ACK または ACK Serverless クラスターおよび ALB インスタンスが中国 (成都) リージョンの VPC1 にデプロイされている場合、ALB、CEN、VBR、および Express Connect を組み合わせて、同じリージョン内のオンプレミスサーバーにリクエストを転送できます。

image

操作手順

  1. CEN を構成して、ALB インスタンスが配置されている VPC および VBR をトランジットルーターに接続します。これにより、VBR を通じてオンプレミスデータセンターが Alibaba Cloud に接続されます。詳細については、「同一リージョン内のオンプレミスサーバーを ALB インスタンスにアタッチ」をご参照ください。

    説明

    ALB イングレスの場合、ALB コンソールで ALB インスタンスのリスナーを構成する必要はありません。ステップ 2 で ALB イングレスを使用してリスナーを構成できます。

  2. alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用して転送操作を構成し、指定された既存のサーバーグループをアタッチします。これにより、クラスター内のポッドとクラスター外のオンプレミスインターネットデータセンター (IDC) サーバーにリクエストが転送されます。

    次の内容を tea-ingress.yaml ファイルにデプロイします。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tea-ingress
      annotations:
        alb.ingress.kubernetes.io/actions.forward: |
           [{
               "type": "ForwardGroup",
               "ForwardConfig": {
                 "ServerGroups" :  [{
                   "ServiceName": "tea-svc",
                   "Weight": 30,
                   "ServicePort": 80
                 },
                 {
                   "ServiceName": "coffee-svc",
                   "Weight": 20,
                   "ServicePort": 80
                 },
                 {
                   "ServerGroupID": "sgp-ihydxb9y93ypo*****",
                   "Weight": 30
                 },
                 {
                   "ServerGroupID": "sgp-pd0ipbvm2cydo*****",
                   "Weight": 20
                 }]
               }
           }]
    spec:
      ingressClassName: alb
      rules:
       - host: demo.domain.ingress.top
         http:
          paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: forward
                port:
                  name: use-annotation