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

Container Service for Kubernetes:ノードプールの排他的な ENI ネットワークモードを設定する

最終更新日:Nov 12, 2025

排他的な Elastic Network Interface (ENI) モードは、Pod に最適なネットワークパフォーマンスを提供するポリシーです。このモードは、厳しいネットワークパフォーマンス要件を持つシナリオに最適です。たとえば、このモードは、ビッグデータ分析、リアルタイムストリーム処理、およびビデオストリーミング、オンラインゲーム、科学計算などのネットワークに敏感なアプリケーションに、高いネットワークスループットと非常に低いネットワーク遅延を提供します。高周波取引シナリオでは、このモードはマルチキャスト機能を提供します。

制限

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

  • クラスターでデュアルスタックを有効にした後、ノードを追加する際には、共有 ENI モードの ECS インスタンスタイプの制限が適用されます。IPv4 と IPv6 アドレスの数は 1:1 の比率である必要があります。ECS インスタンスがサポートする IPv4 および IPv6 アドレスの数の詳細については、「インスタンスファミリー」をご参照ください。

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

  • 排他的な ENI を使用する Pod は、eBPF ネットワークアクセラレーションまたは NetworkPolicy をサポートしません。

  • 排他的な ENI を使用する場合、新しいノードを使用する必要があります。既存のノードを使用する場合、それらのノードに既にある ENI は使用されません。

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

ノードプールのコンテナーネットワークを設定する

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

1. 排他的な ENI ノードプールを計画する

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

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

Terway は、優先度の高い順にリストされた複数の設定メソッドをサポートしています:

2. 排他的な ENI ノードプールを作成し、モードが有効になっていることを確認する

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

    また、他の Pod が排他的な ENI ノードプールにスケジュールされるのを防ぐために 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. Pod を排他的な ENI ノードプールにスケジュールする

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

  • NodeAffinity: このメソッドは、静的 IP アドレスの割り当てや、独立した vSwitch およびセキュリティグループの設定など、Pod レベルの構成をサポートしていません。

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

    次の 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