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

Container Service for Kubernetes:ノードプールの排他的な ENI モードの設定

最終更新日:Apr 01, 2026

排他的な ENI モードは、Pod に最適なネットワークパフォーマンスを提供し、ネットワーク集約型アプリケーションに最適です。このモードは、ビッグデータ分析、リアルタイムストリーム処理、ビデオストリーミング、オンラインゲーム、科学計算などのネットワークに敏感なアプリケーションに対して、高いネットワークスループットと超低ネットワーク遅延を実現します。高頻度取引の場合、このモードはマルチキャスト機能も提供します。

制限事項

  • ECS インスタンスを追加するには Terway v1.11.0 以降が、Lingjun インスタンスを追加するには Terway v1.14.3 以降が必要です。コンポーネントのバージョンをアップグレードするには、「Terway」をご参照ください。

  • クラスターでデュアルスタックを有効にする場合、ノードの追加は共有 ENI モードと同じインスタンスタイプの制限を受けます。IPv4 アドレス (プライマリおよびセカンダリ) の数は、IPv6 アドレスの数と等しくなければなりません。ECS インスタンスがサポートする IPv4 および IPv6 アドレスの数については、「インスタンスファミリー」をご参照ください。

  • Lingjun インスタンスはデュアルスタックをサポートしていません。

  • 排他的な ENI が割り当てられた Pod は、eBPF ネットワーク高速化または Kubernetes NetworkPolicy をサポートしていません。

  • 排他的な ENI モードには新しいノードが必要です。既存のノードをノードプールに追加する場合、アタッチされている伸縮性のあるネットワークインターフェースは使用されません。

  • 排他的な ENI モードは新しいノードにのみ適用されます。ノードプールがこのモードで設定された後、共有 ENI モードに変更することはできません。また、既存のノードを共有 ENI モードから排他的な ENI モードに切り替えることもできません。

  • カスタム CNI チェーンを設定」することはできません。

ノードプールレベルでのコンテナネットワークの設定

排他的な ENI モードは、Terway が提供するノードプールモードです。共有 ENI モードと排他的な ENI モードの詳細な比較については、「共有 ENI モードと排他的な ENI モード」をご参照ください。以下の手順に従って、排他的な ENI モードでノードプールを計画し、作成します。ノードプールが作成された後、Pod をスケジュールできます。

1. 排他的な ENI ノードプールの計画

  • 排他的な ENI モードでは、ノードあたりの最大 Pod 数が少なくなります。ワーカーノードがクラスターに追加されるには、6 つ以上の伸縮性のあるネットワークインターフェースが必要です。伸縮性のあるネットワークインターフェースの数の計算方法については、「インスタンスファミリー」をご参照ください。

  • Pod の vSwitch とセキュリティグループを計画します。

Terway は複数の設定方法をサポートしており、優先度の高い順にリストされています。

2. 排他的な ENI ノードプールの作成

  1. ノードプールの作成と管理」を参照して新しいノードプールを作成し、作成プロセス中にノードにラベル k8s.aliyun.com/exclusive-mode-eni-type: eniOnly を追加します。

    また、排他的な ENI を必要としない Pod がスケジュールされないように、ノードプールに Taint を追加する必要があります。

    重要

    ノードプールの作成時にラベルを追加する必要があります。既存のノードを排他的な ENI モードに切り替えることはできません。ラベルを誤って設定した場合は、ノードプールを削除して再作成してください。

  2. 次のコマンドを実行して、ノード上の割り当て可能なリソースをクエリし、排他的な ENI モードが有効になっていることを確認します。

    kubectl describe node <node-name> 

    期待される出力:

    Capacity:
      aliyun/eni:         7
      cpu:                16
      ephemeral-storage:  123460788Ki
      hugepages-1Gi:      0
      hugepages-2Mi:      0
      memory:             31555380Ki
      pods:               213
    Allocatable:
      aliyun/eni:         7
      cpu:                15890m
      ephemeral-storage:  113781462033
      hugepages-1Gi:      0
      hugepages-2Mi:      0
      memory:             28587828Ki
      pods:               213

    期待される出力には aliyun/eni が表示され、排他的な ENI モードが正常に有効化されたことを示します。

3. ENI ノードプールへの Pod のスケジューリング

NodeAffinity または PodNetworking カスタムリソースを使用して、Pod を排他的な ENI ノードプールにスケジュールできます。

  • NodeAffinity:固定 IP アドレスの使用や、独立した vSwitch とセキュリティグループの使用など、Pod レベルの設定をサポートしていません。

  • PodNetworking:vSwitch、セキュリティグループ、および固定 Pod IP アドレスの Pod レベルの設定をサポートしています。詳細については、「Pod の固定 IP アドレス、独立した仮想スイッチ、およびセキュリティグループの設定」をご参照ください。

    次の YAML の例を参照し、eniOptions フィールドの eniTypeENI に設定して、Pod を専用の ENI ノードプールにスケジュールできます。

    apiVersion: network.alibabacloud.com/v1beta1
    kind: PodNetworking
    metadata:
      name: enionly
    spec:
      eniOptions:
        eniType: ENI
      allocationType:
        type: Elastic
      selector:
        podSelector:
          matchLabels:
            network: enionly

よくある質問

Pod の排他的な ENI の検証

Terway は、Pod と同じ名前と名前空間を持つ PodENI リソースを自動的に作成します。このリソースは、Pod のネットワーク設定を記録します。

次のコマンドを実行してリソースをクエリします。

kubectl get podeni nginx-9d557694f-rcdzs -oyaml

期待される出力:

apiVersion: network.alibabacloud.com/v1beta1
kind: PodENI
metadata:
  annotations:
    k8s.aliyun.com/pod-uid: 05590939-fc51-47ab-a204-3dd187233bca
  creationTimestamp: "2024-09-13T08:09:27Z"
  finalizers:
  - pod-eni
  generation: 1
  labels:
    k8s.aliyun.com/node: cn-hangzhou.172.XX.XX.25
  name: example-9d557694f-rcdzs
  namespace: default
  resourceVersion: "1131123"
spec:
  allocations:
  - allocationType:
      type: Elastic
    eni:
      attachmentOptions: {}
      id: eni-xxxx
      mac: 00:16:3e:37:xx:xx
      securityGroupIDs:
      - sg-xxxx
      vSwitchID: vsw-xxxx
      zone: cn-hangzhou-j
    ipv4: 172.16.0.30
    ipv4CIDR: 172.16.0.0/24
    ipv6: 2408:4005:xxxx:xxxx:xxxx:xxxx:xxxx:9ad4
    ipv6CIDR: 2408:4005:39c:xxxx::/64
  zone: cn-hangzhou-j
status:
  eniInfos:
    eni-xxxx:
      id: eni-xxxx
      status: Bind
      type: Secondary
  instanceID: i-xxxx
  phase: Bind