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

Elastic Container Instance:ポッドのインターネットアクセスを有効にする

最終更新日:Jan 14, 2025

デフォルトでは、システムはElastic Container InstanceベースのポッドにプライベートIPアドレスのみを割り当てます。ポッドをインターネットに接続する場合、たとえば、インターネット経由でイメージをプルする場合は、Elastic IPアドレス(EIP)をポッドに関連付けるか、ポッドが属する仮想プライベートクラウド(VPC)にインターネットNATゲートウェイを作成できます。

背景情報

次の表は、Elastic Container Instanceのインターネットアクセスを有効にするために使用される2つの方法について説明しています。

方法

説明

シナリオ

Elastic Container InstanceにEIPを関連付ける

EIPは、個別に購入および管理できるパブリックIPアドレスです。EIPをインスタンスに関連付けることで、Elastic Container Instanceのインターネットアクセスを有効にできます。詳細については、EIPとはおよび課金概要を参照してください。

単一のElastic Container Instanceのインターネットアクセスを有効にする場合。

たとえば、NGINXをデプロイするためにElastic Container Instanceを作成する場合。インスタンスを作成するときは、EIPをインスタンスに関連付ける必要があります。NGINXが起動すると、Elastic Container Instanceはポート80を関連付けられたEIPに公開します。その後、EIPとポート番号を使用してNGINXにアクセスできます。

Elastic Container Instanceが属するVPCにインターネットNATゲートウェイを作成する

NAT(ネットワークアドレス変換)ゲートウェイは、SNATおよびDNAT機能を提供します。詳細については、NATゲートウェイとはおよびインターネットNATゲートウェイの課金を参照してください。

複数のElastic Container Instanceのインターネットアクセスを有効にする場合。

たとえば、Docker Hubから複数のElastic Container Instanceのイメージをプルする場合。デフォルトでは、Elastic Container Instanceはインターネット経由でイメージをプルするためのパブリックエンドポイントを提供しません。Elastic Container Instanceが属するVPCにインターネットNATゲートウェイを作成し、セキュリティグループルールを設定する必要があります。そうでないと、インターネット経由でイメージをプルできません。

重要

Elastic Container Instanceのインターネットアクセスを有効にする場合は、インスタンスが属するセキュリティグループで関連するIPアドレスとポートが有効になっていることを確認してください。詳細については、セキュリティグループルールの追加を参照してください。

Elastic Container InstanceにEIPを関連付ける

ポッドを作成するときに、ポッドの構成ファイルのメタデータにアノテーションを追加して、既存のEIPを関連付けるか、システムがEIPを自動的に作成してポッドに関連付けることができます。

説明

各EIPは、一度に1つのElastic Container Instanceにのみ関連付けることができ、関連付けられたElastic Container Instanceに対してのみインターネットサービスを提供できます。複数のElastic Container Instanceをインターネットに接続する場合は、各インスタンスにEIPを関連付けるか、インスタンスが属するVPCにインターネットNATゲートウェイを作成する必要があります。

  • 既存のEIPをポッドに関連付ける

    アノテーション

    説明

    k8s.aliyun.com/eci-eip-instanceid

    "eip-bp1q5n8cq4p7f6dzu****"

    関連付けるEIPのIDを指定します。

  • EIPを自動的に作成してポッドに関連付ける

    アノテーション

    説明

    k8s.aliyun.com/eci-with-eip

    "true"

    EIPを自動的に作成してポッドに関連付けるかどうかを指定します。

    k8s.aliyun.com/eip-bandwidth

    "10"

    EIPの最大帯域幅を指定します。単位:Mbit/s。デフォルト値:5。

    k8s.aliyun.com/eip-common-bandwidth-package-id

    "cbwp-2zeukbj916scmj51m****"

    インスタンスに関連付ける既存のEIP帯域幅プランのIDを指定します。詳細については、インターネット共有帯域幅とはを参照してください。

    k8s.aliyun.com/eip-isp

    BGP

    EIPの回線タイプを指定します。このアノテーションは、従量課金制のEIPにのみ適用されます。デフォルト値:BGP。有効な値:

    • BGP:BGP(マルチISP)回線

    • BGP_PRO:BGP(マルチISP)Pro回線

    詳細については、Elastic IPアドレストピックの「回線タイプ」セクションを参照してください。

    k8s.aliyun.com/eip-internet-charge-type

    PayByTraffic

    EIPの従量課金方法を指定します。有効な値:

    • PayByBandwidth:帯域幅課金

    • PayByTraffic:トラフィック課金

    EIPの課金について詳しくは、課金概要を参照してください。

    k8s.aliyun.com/eip-public-ip-address-pool-id

    pippool-bp187arfugi543y1s****

    IPアドレスプールのIDを指定します。EIPはIPアドレスプールから割り当てられます。詳細については、IPアドレスプールの作成と管理を参照してください。

重要
  • アノテーションは、ポッドの構成ファイルのメタデータに追加する必要があります。たとえば、Deploymentを作成するときは、spec.template.metadataセクションにアノテーションを追加する必要があります。

  • Elastic Container Instanceの機能を使用するには、Elastic Container Instanceベースのポッドを作成するときにのみアノテーションを追加できます。ポッドを更新するときにアノテーションを追加または変更しても、これらのアノテーションは有効になりません。

設定例:

  • 例1:既存のEIPを関連付ける

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx-test
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-eip-instanceid: "eip-bp1q5n8cq4p7f6dzu****"    # 関連付ける既存のEIPを指定します。
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80
  • 例2:EIPを作成して関連付け、EIPの最大帯域幅を指定する

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx-test
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-with-eip: "true"   # EIPを作成して関連付けます。
            k8s.aliyun.com/eip-bandwidth: "10"   # EIPの最大帯域幅を指定します。
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80
  • 例3:EIPを作成して関連付け、EIP帯域幅プランをEIPに関連付ける

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx-test
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-with-eip: "true"   # EIPを作成して関連付けます。
            k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****"  # EIP帯域幅プランをEIPに関連付けます。
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80

Elastic Container Instanceが属するVPCにインターネットNATゲートウェイを作成する

VPCにインターネットNATゲートウェイを作成すると、インターネットNATゲートウェイはSNATおよびDNAT機能を提供でき、VPC内のElastic Container Instanceはインターネットに接続できます。

機能

説明

SNAT

VPC内のElastic Container InstanceにパブリックIPアドレスが割り当てられていない場合、これらのインスタンスがインターネットにアクセスできるようにします。

DNAT

インターネットNATゲートウェイに関連付けられているEIPをVPC内のElastic Container Instanceにマッピングします。これにより、VPC内のElastic Container Instanceはインターネットに接続するサービスを提供できます。

  1. VPCコンソールでインターネットNATゲートウェイを作成します。詳細については、インターネットNATゲートウェイの作成と管理を参照してください。

  2. Elastic Container Instanceがインターネットにアクセスできるようにするには、NATゲートウェイのSNATエントリを作成する必要があります。詳細については、SNATエントリの作成と管理を参照してください。

    次の表は、エントリを作成するときに注意が必要なパラメータについて説明しています。

    パラメータ

    説明

    SNATエントリ

    サービスネットワーキングやセキュリティなどの要因に基づいて、このパラメータの値を選択します。

    • VPCを指定:指定されたVPC内のすべてのElastic Container Instanceは、SNATを使用してインターネットにアクセスできます。

    • Vswitchを指定:選択されたvSwitchに接続されているすべてのElastic Container Instanceは、SNATを使用してインターネットにアクセスできます。

    • カスタムCIDRブロックを指定:指定されたCIDRブロックに属するすべてのElastic Container Instanceは、SNATを使用してインターネットにアクセスできます。

    vSwitchを選択

    SNATエントリパラメータをVswitchを指定に設定した場合、Elastic Container Instanceの作成に使用する1つ以上のvSwitchを選択する必要があります。

    カスタムCIDRブロック

    SNATエントリパラメータをカスタムCIDRブロックを指定に設定した場合、インターネットにアクセスするElastic Container Instanceが属するCIDRブロックを指定する必要があります。

    EIPを選択

    NATゲートウェイに関連付けられている1つ以上のEIPを選択します。Elastic Container Instanceは、EIPを使用してインターネットにアクセスします。

    説明

    Elastic Container InstanceにEIPが関連付けられている場合、インスタンスはNATゲートウェイのSNAT機能ではなく、このEIPを使用してインターネットにアクセスします。

  3. Elastic Container Instanceがインターネットに接続するサービスを提供できるようにするには、NATゲートウェイのDNATエントリを作成する必要があります。詳細については、DNATエントリの作成と管理を参照してください。

    次の表は、エントリを作成するときに注意が必要なパラメータについて説明しています。

    パラメータ

    説明

    EIPを選択

    NATゲートウェイに関連付けられているEIPを選択します。Elastic Container Instanceは、EIPを使用してインターネットに接続するサービスを提供します。

    プライベートIPアドレスを選択

    DNATエントリを使用してインターネットに接続するサービスを提供する必要があるElastic Container Instanceを選択します。Elastic Container InstanceにバインドされているElastic Network Interface(ENI)を指定するか、インスタンスのプライベートIPアドレスを入力できます。

    ポート設定

    DNATマッピング方法。有効な値:

    • 任意のポート:IPアドレスマッピングを指定します。NATゲートウェイは、関連付けられたEIP宛ての要求を選択されたElastic Container Instanceに転送します。

    • カスタムポート:ポートマッピングを指定します。NATゲートウェイは、関連付けられたEIP宛ての特定のプロトコルおよびポートからの要求を選択されたElastic Container Instanceの対応するポートに転送します。