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

Container Service for Kubernetes:Terway ネットワークプラグイン

最終更新日:May 19, 2026

Terway は Alibaba Cloud VPC 向けのオープンソース CNI プラグインであり、コンテナ間のアクセスポリシーを定義するための標準 Kubernetes ネットワークポリシーをサポートします。

事前準備

Terway コンテナネットワークプラグインを使用する前に、このトピックを読んで Terway の動作原理を理解してください。

まず、「ネットワーク概要」および「Terway と Flannel CNI プラグインの比較」を読んで、コンテナネットワークプラグインの基本概念を理解し、適切なプラグインを選択してください。

クラスターを作成する前に、その CIDR ブロックを計画する必要があります。詳細については、「ACK マネージドクラスターのネットワーク計画」をご参照ください。

課金

Terway プラグインは無料です。ただし、Terway は各ノードに Pod をデプロイするため、少量のノードリソースを消費します。ACK クラウドサービスの課金に関する詳細は、「クラウドリソースコスト」をご参照ください。

重要

Terway 設定ファイル eni-config には重要なシステムパラメーターが含まれています。ユーザーによる構成が明示的に許可されていないフィールドを変更または削除すると、ネットワークが中断されたり、Pod の作成ができなくなったりする可能性があります。カスタマイズ可能なパラメーターについては、「Terway パラメーターのカスタマイズ」をご参照ください。

Terway コンポーネントは CRD を使用してリソースのステータスを追跡します。これらのシステムリソースを手動で変更しないでください。許可されていない変更はネットワークの中断や Pod の作成不能を引き起こす可能性があります。

リソース名

リソースタイプ

ユーザーによる CRD 操作

ユーザーによる CR 操作

podnetworkings.network.alibabacloud.com

ユーザーリソース

いいえ

はい

podenis.network.alibabacloud.com

システムリソース

いいえ

いいえ

networkinterfaces.network.alibabacloud.com

システムリソース

いいえ

いいえ

nodes.network.alibabacloud.com

システムリソース

いいえ

いいえ

noderuntimes.network.alibabacloud.com

システムリソース

いいえ

いいえ

*.cilium.io

システムリソース

いいえ

いいえ

*.crd.projectcalico.org

システムリソース

いいえ

いいえ

ノードあたりの最大 Pod 数

Terway ネットワークプラグインを使用する場合、ノードが実行できる最大 Pod 数は、その ECS インスタンスタイプがサポートする Elastic Network Interface (ENI) の数によって決まります。Terway は最小 Pod 制限を適用しており、各ノードはクラスターに正常に追加されるためにこの制限を満たす必要があります。

Terway モード

Pod 制限

静的 IP Pod 数

共有 ENI モード

ECS インスタンスタイプがサポートする ENI 数 - 1)× ENI あたりのプライベート IP アドレス数

(EniQuantity - 1)× EniPrivateIpAddressQuantity

説明

クラスターに参加するには、ノードが 11 個を超える Pod をサポートしている必要があります。

例として、汎用インスタンスファミリー g7 の ecs.g7.4xlarge インスタンスタイプを考えてみます。このインスタンスタイプは 8 個の ENI をサポートし、各 ENI は 30 個のプライベート IP アドレスをサポートします。ノードあたりの最大 Pod 数は(8 - 1)× 30 = 210 Pod と計算されます。

重要

ノード ENI を使用する Pod の最大数は、ノードのインスタンスタイプによって固定されます。maxPods パラメーターを変更しても、hostNetwork を使用する Pod の制限にのみ影響します。

0

共有 ENI モード + Trunk ENI

ノードあたりの最大 Trunk Pod 数:

ECS インスタンスタイプのネットワークインターフェース総数 - ECS インスタンスタイプがサポートする ENI 数

EniTotalQuantity - EniQuantity

排他的な ENI モード

ECS インスタンス:

ECS インスタンスタイプがサポートする ENI 数 - 1

EniQuantity - 1

Lingjun インスタンス:

Lingjun ENI クォータ - 1

LeniQuota - 1

説明

クラスターに参加するには、ノードが 6 個を超える Pod をサポートしている必要があります。

例として、ecs.g7.4xlarge タイプの ECS インスタンスは 8 個の ENI をサポートします。ノードあたりの最大 Pod 数は(8 - 1)= 7 Pod です。

ECS インスタンスタイプがサポートする ENI 数 - 1

EniQuantity - 1

説明

Lingjun インスタンスはサポートされていません。

重要

Terway v1.11.0 以降では、ノードプールごとに排他的な ENI モードまたは共有 ENI モードを選択できます。異なるモードを使用するノードプールは、同じクラスター内で共存可能です。詳細については、「Terway リリースノート」をご参照ください。

サポートされる Pod 数の確認

  • 方法 1:ノードプールを作成する際、「インスタンスタイプ」セクションの「Terway 互換性 (サポートされる Pod 数)」列を確認して、サポートされる Pod 数を確認します。

  • 方法 2:次のいずれかの方法で必要な値を取得し、ECS インスタンスタイプがサポートする Pod 数を手動で計算します。

    • インスタンスファミリーのドキュメントを参照して、ECS インスタンスがサポートする Elastic Network Interface の最大数を確認します。

    • OpenAPI Explorer を使用します。InstanceTypes パラメーターに既存ノードのインスタンスタイプを指定し、[呼び出しの開始] をクリックします。応答において、EniQuantity はインスタンスタイプがサポートする Elastic Network Interface の最大数、EniPrivateIpAddressQuantity は ENI あたりのプライベート IP アドレス数、EniTotalQuantity はインスタンスタイプがサポートするネットワークインターフェースの総数です。

Terway ネットワークプラグインのインストール

クラスターを作成する際に Terway ネットワークプラグインをインストールする必要があります。既存のクラスターに対してネットワークプラグインの種類を変更することはできません。

  1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、Kubernetes クラスターの作成 をクリックします。

  3. Terway ネットワークプラグインの主要なネットワークパラメーターを設定します。その他のクラスター作成パラメーターについては、「ACK マネージドクラスターの作成」をご参照ください。

    パラメーター

    説明

    IPv6 デュアルスタック

    有効にする を選択して、IPv4 および IPv6 アドレスの両方をサポートするデュアルスタッククラスターを作成します。

    Kubernetes 1.22 以降でのみサポートされ、Terway でのみ使用可能で、eRDMA とは併用できません。

    クラスターは IPv4 および IPv6 プロトコルの両方をサポートしますが、ワーカーノードとコントロールプレーン間の通信は引き続き IPv4 アドレスを使用します。以下の点を確認してください。

    • クラスター VPC が IPv6 デュアルスタックをサポートしていること。

    • 共有 ENI モードで Terway を使用する場合、ノードのインスタンスタイプが IPv6 をサポートしており、割り当て可能な IPv4 アドレス数と IPv6 アドレス数が同一であること。

    VPC

    クラスターの VPC です。

    ネットワークプラグイン

    Terway を選択します。

    DataPath V2

    このオプションを選択して、DataPath V2 高速化モードを有効にします。このモードでは、Terway は標準の共有 ENI モードとは異なるトラフィック転送パスを使用してネットワーク高速化を提供します。詳細については、「Datapath V2 を使用した Terway のベストプラクティス」をご参照ください。

    説明
    • Kubernetes 1.34 以降を実行し、DataPath V2 を使用する新規クラスターでは、kube-proxy は Terway ノード上で実行されなくなります。

      • このモードにはポートマップの組み込みサポートが含まれているため、ポートマッププラグインを構成する必要はありません。詳細については、「カスタム CNI チェーンの構成」をご参照ください。

    • DataPath V2 は以下のオペレーティングシステムイメージでのみサポートされ、Linux カーネル 5.10 以降が必要です。

      • Alibaba Cloud Linux 4

      • Alibaba Cloud Linux 3(すべてのバージョン)

      • ContainerOS

      • Ubuntu

    • 有効にすると、各ワーカーノード上の Terway ポリシーコンテナは、追加で 0.5 CPU コアおよび 512 MB のメモリを消費することが想定されます。このリソース消費量はクラスター規模に応じて増加します。デフォルトの Terway 構成では、ポリシーコンテナの CPU 制限は 1 コアで、メモリ制限はありません。

    • DataPath V2 モードでは、コンテナネットワークの接続追跡(conntrack)情報は eBPF マップに格納されます。Linux のネイティブ conntrack メカニズムと同様に、eBPF conntrack は Least Recently Used(LRU)アルゴリズムを使用します。マップがいっぱいになると、最も古い接続レコードが新しいレコードのために削除されます。ワークロードに基づいて関連パラメーターを構成し、接続制限を超えないようにしてください。詳細については、「Terway モードにおける conntrack 構成の最適化」をご参照ください。

    NetworkPolicy サポート

    このオプションを選択して、ネイティブ Kubernetes NetworkPolicy を有効にします。

    説明
    • Terway v1.9.2 以降では、新規クラスターの NetworkPolicy は eBPF によって実装され、データプレーンで DataPath V2 機能が有効になります。

    • コンソールで NetworkPolicy リソースを管理する機能はパブリックプレビュー中です。この機能を使用するには、クォータセンターコンソール でリクエストを送信してください。

    Trunk ENI のサポート

    このオプションを選択して、Trunk ENI モードを有効にします。これにより、各 Pod に静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを割り当てることができます。

    説明
    • ACK マネージドクラスター では、リクエストを送信せずに Trunk ENI を有効化できます。ACK 専用クラスター で Trunk ENI を有効化する場合は、事前に クォータセンターコンソール でリクエストを送信してください。

    • Kubernetes 1.31 以降を実行する新規作成の ACK マネージドクラスター では、Trunk ENI 機能が自動的に有効になります。手動で選択する必要はありません。

    vSwitch

    クラスターノードの vSwitch です。高可用性を確保するため、少なくとも 3 つの異なるアベイラビリティゾーンから vSwitch を選択することを推奨します。

    ポッド vSwitch

    Pod の vSwitch です。これらはノードの vSwitch と同じでも構いません。

    サービス CIDR ブロック

    Kubernetes サービスの CIDR ブロックです。この CIDR ブロックは、ノード CIDR ブロックまたは Pod CIDR ブロックと重複してはなりません。

    IPv6 サービスネットワークセグメント

    IPv6 デュアルスタックを有効にした後でのみ、このパラメーターを設定できます。

Terway の動作モード

このトピックでは、Terway の各種モードとその動作原理を比較します。

共有 ENI モードと排他的な ENI モード

Terway は、Pod に IP アドレスを割り当てるための 2 つのモードを提供します。共有 ENI モード および 排他的な ENI モード です。

重要
  • Terway v1.11.0 以降では、ノードプールごとに共有 ENI モードまたは排他的な ENI モードを選択できます。このオプションは、クラスター作成時のクラスターレベルではもはや利用できません。

  • ノードのオペレーティングシステム(OS)はプライマリ ENI を使用します。Terway は残りの ENI を管理して Pod ネットワークを構成します。これらの ENI を手動で構成しないでください。一部の ENI を自分で管理する必要がある場合は、「ENI のフィルターの構成」をご参照ください。

項目

共有 ENI モード

排他的な ENI モード

Pod IP アドレス管理

ENI 割り当て

複数の Pod が 1 つの ENI を共有します。

各 Pod にノード上の専用 ENI が割り当てられます。

Pod デプロイ密度

高密度で、1 つのノード上で数百の Pod をサポートします。

低密度で、通常のノードは数個の Pod のみをサポートします。

ネットワークアーキテクチャ

データパス

Pod が他の Pod と通信する場合、またはサービスバックエンドとしてアクセスされる場合、トラフィックはノードのネットワークスタックを通過します。

Pod がサービスにアクセスする場合、トラフィックは引き続きノードの OS ネットワークスタックを通過します。ただし、Pod 間通信の場合、または Pod がサービスバックエンドとして機能する場合は、アタッチされた ENI を直接使用してノードのネットワークスタックをバイパスするため、パフォーマンスが向上します。

シナリオ

汎用的な Kubernetes ワークロード。

仮想マシンと同等のネットワークパフォーマンスを提供するため、高ネットワークスループットまたは低レイテンシーを必要とするアプリケーションに最適です。

ネットワーク高速化

DataPath V2 をサポートしてネットワーク高速化を実現します。詳細については、「ネットワーク高速化」をご参照ください。

ネットワーク高速化はサポートされていません。このモードはすでに各 Pod に専用 ENI を提供しているため、優れたネットワークパフォーマンスを実現しています。

NetworkPolicy サポート

ポリシーベースのアクセス制御のためのネイティブ Kubernetes NetworkPolicy をサポートします。詳細については、「NetworkPolicy サポート」をご参照ください。

NetworkPolicy はサポートされていません。

ノードレベルのネットワーク構成

サポートされています。詳細については、「ノードレベルのネットワーク構成」をご参照ください。

サポートされています。詳細については、「ノードレベルのネットワーク構成」をご参照ください。

アクセスの制御

Trunk ENI を有効にすると、各 Pod に静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを構成できます。詳細については、「Pod の静的 IP アドレス、個別の vSwitch、およびセキュリティグループの構成」をご参照ください。

各 Pod に静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを構成できます。

ネットワーク高速化

共有 ENI モードでは、ネットワーク高速化を有効にできます。これは標準モードとは異なるトラフィック転送パスを使用して、より高いパフォーマンスを実現します。Terway は現在、DataPath V2 高速化モードをサポートしています。以下にその特徴を示します。

重要
  • DataPath V2 は、以前の IPvlan+eBPF 高速化モードのアップグレード版です。Terway V1.8.0 以降では、クラスターを作成して Terway プラグインをインストールする際に、DataPath V2 が唯一利用可能な高速化モードです。

  • DataPath V2 および IPvlan+eBPF 高速化モードは、共有 ENI モードのノードプールにのみ適用され、排他的な ENI モードのノードプールには影響しません。

DataPath V2 の特徴

説明

適用される Terway バージョン

Terway v1.8.0 以降で作成されたクラスター。

ネットワークアーキテクチャ

高速化されたデータパス

  • Pod がサービスにアクセスする場合、eBPF がサービス IP アドレスをバックエンド Pod の IP アドレスに解決します。

  • Pod が別のノード上の Pod と通信する場合、eBPF を使用して両ノードのネットワークスタックをバイパスします。

  • Pod が同じノード上の Pod と通信する場合、トラフィックはノードのネットワークスタックをバイパスするだけでなく、ノード内で直接転送され、ノード外に出ることはありません。

パフォーマンス最適化

  • Pod のホスト上ネットワーク転送パスを簡素化し、ホスト自身とほぼ同等のパフォーマンスを実現し、標準モードと比較してレイテンシーを 30 % 低減します。

  • eBPF がサービスネットワーキングの従来の kube-proxy 実装に代わって使用されます。これにより、ノード上の iptables または IPVS をバイパスし、リクエストレイテンシーを大幅に低減し、大規模クラスターでのスケーラビリティを向上させます。

  • eBPF は Pod ネットワークポリシー(NetworkPolicy)にも iptables に代わって使用されます。これにより、ホスト上に過剰な iptables ルールが生成されることを回避し、ネットワークポリシーのパフォーマンスへの影響を最小限に抑えます。

使用方法

クラスターを作成する際、ネットワークプラグインTerway に設定し、その後 DataPath V2 オプションを選択します。

使用上の注意

  • カーネルバージョン 5.10 以降が必要です。Alibaba Cloud Linux OS イメージの使用を推奨します。

  • Sandboxed-Container ランタイムはサポートされていません。

  • NetworkPolicy の制限事項:

    • CIDR セレクターは、Pod IP 範囲へのトラフィック制御をサポートしていません。Pod へのトラフィックを制御するには、Pod セレクターを使用する必要があります。

    • CIDR セレクター内の except キーワードのサポートは限定的です。このキーワードの使用は推奨されません。

    • 送信(egress)NetworkPolicy により、hostNetwork が有効になっている Pod またはクラスター内のノード IP アドレスへのアクセスがブロックされる可能性があります。

  • LoadBalancer サービスのパブリック向け Server Load Balancer(SLB)インスタンスへのクラスター内からのアクセスが、ループバックの問題により失敗する可能性があります。詳細については、「ロードバランサーにアクセスできないのはなぜですか?」をご参照ください。

  • IPv6 ヘアピンアクセスはサポートされていません。

  • NodePort の制限事項:

    • ExternalTrafficPolicy=Local を使用してサービスにアクセスすると、トラフィックがブロックされる可能性があります。この問題を解決するには、設定を ExternalTrafficPolicy=Cluster に変更してください。

    • ExternalTrafficPolicy=Cluster を使用する場合、送信元 IP アドレスに対して送信元ネットワークアドレス変換(SNAT)が実行されます。SNAT の利用可能なポート範囲は 32768 ~ 65535 です。

  • eBPF 高速化機能は、デフォルトの Linux 実装とは異なります。トラフィック量に基づいてコンポーネント構成を調整する必要があります。モニタリングの構成および eBPF マップ制限の調整方法については、「Terway Datapath V2 のベストプラクティス」をご参照ください。

旧バージョンのクラスターでは、IPvlan+eBPF 高速化モードが使用されている可能性があります。その特徴を以下に示します。

IPvlan+eBPF 高速化モード

IPvlan+eBPF の特徴

説明

適用される Terway バージョン

Terway v1.7.0 以前で作成されたクラスター。

ネットワークアーキテクチャ

高速化されたデータパス

  • Pod がサービスにアクセスする場合、eBPF が Pod のネットワーク名前空間内でサービス IP アドレスをバックエンド Pod の IP アドレスに解決します。

  • Pod が別の Pod と通信する場合、IPvlan を使用して両ノードのネットワークスタックをバイパスします。

使用方法

クラスターを作成する際、ネットワークプラグインTerway に設定し、その後 Pod IPvlan オプションを選択します。

使用上の注意

  • カーネルバージョン 4.19 以降が必要です。Alibaba Cloud Linux OS イメージの使用を推奨します。

  • Sandboxed-Container ランタイムはサポートされていません。

  • NetworkPolicy の制限事項:

    • CIDR セレクターは、Pod IP 範囲へのトラフィック制御をサポートしていません。Pod へのトラフィックを制御するには、Pod セレクターを使用する必要があります。

    • CIDR セレクター内の except キーワードのサポートは限定的です。このキーワードの使用は推奨されません。

    • 送信(egress)NetworkPolicy により、hostNetwork が有効になっている Pod またはクラスター内のノード IP アドレスへのアクセスがブロックされる可能性があります。

  • LoadBalancer サービスのパブリック向け Server Load Balancer(SLB)インスタンスへのクラスター内からのアクセスが、ループバックの問題により失敗する可能性があります。詳細については、「ロードバランサーにアクセスできないのはなぜですか?」をご参照ください。

  • IPv6 ヘアピンアクセスはサポートされていません。

  • NodePort の制限事項:

    • ExternalTrafficPolicy=Local を使用してサービスにアクセスすると、トラフィックがブロックされる可能性があります。この問題を解決するには、設定を ExternalTrafficPolicy=Cluster に変更してください。

    • ExternalTrafficPolicy=Cluster を使用する場合、送信元 IP アドレスに対して送信元ネットワークアドレス変換(SNAT)が実行されます。SNAT の利用可能なポート範囲は 32768 ~ 65535 です。

  • eBPF 高速化機能はデフォルトの Linux 実装とは異なり、サービスのトラフィック量に基づいてコンポーネント構成を調整する必要があります。Terway Datapath V2 のベストプラクティス を参照して、モニタリングを構成し、eBPF マップ制限を調整してください。

アクセスの制御

Terway は詳細なトラフィック管理を提供します。共有 ENI モードでは、NetworkPolicy および Trunk ENI オプションによってこれを実現します。排他的な ENI モードもトラフィック制御機能を備えています。

NetworkPolicy

  • 排他的な ENI モードのノードプールは NetworkPolicy をサポートしていません。

  • 共有 ENI モードのノードプールは、ネイティブ Kubernetes NetworkPolicy をサポートしており、ユーザー定義ルールを使用して Pod 間のネットワークトラフィックを制御できます。

    クラスターを作成する際、ネットワークプラグイン として Terway を選択し、NetworkPolicy サポート オプションを選択することで、NetworkPolicy を有効にできます。詳細については、「ACK クラスターでのネットワークポリシーの使用」をご参照ください。

    説明

    コンソールで NetworkPolicy リソースを管理する機能はパブリックプレビュー中です。この機能を使用するには、クォータセンターコンソール でリクエストを送信してください。

静的 IP、vSwitch、およびセキュリティグループ

  • 排他的な ENI モードのノードプールは、各 Pod に静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを割り当てる機能を本質的にサポートしています。これにより、詳細なトラフィック管理、ネットワーク分離、ポリシー構成、および IP アドレス管理が可能になります。

  • 共有 ENI モードのノードプールでは、オプションの Trunk ENI 機能により、各 Pod に静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを構成できます。

    この機能を有効にするには、クラスターを作成する際に ネットワークプラグインTerway に設定し、その後 Trunk ENI のサポート オプションを選択します。詳細については、「Pod の静的 IP アドレス、個別の vSwitch、およびセキュリティグループの構成」をご参照ください。

    説明
    • ACK マネージドクラスター では、リクエストを送信せずに Trunk ENI を有効化できます。ACK 専用クラスター で Trunk ENI を有効化する場合は、事前に クォータセンターコンソール でリクエストを送信してください。

    • Kubernetes 1.31 以降を実行する新規作成の ACK マネージドクラスター では、Trunk ENI 機能が自動的に有効になります。手動で選択する必要はありません。

    • Trunk ENI モードを有効にすると、terway-eniip および terway-controlplane コンポーネントがインストールされます。

スケーリング制限

Terway はクラウドプロダクトの OpenAPI を呼び出して、ノードのネットワークインターフェースおよび IP アドレスを管理します。これらの操作の使用制限については、各クラウドプロダクトのドキュメントをご参照ください。

  • 共有 ENI モード:最大 500 ノードを同時に割り当てることができます。

  • 排他的な ENI / TrunkENI モード:最大 100 Pod を同時に割り当てることができます。

これらのクォータは固定されています。

データプレーン構成

Terway データプレーンは、カーネルレベル構成の正確なシーケンスと整合性に依存しています。IP ruleIP route、または eBPF フックを外部コンポーネント(優先度の調整、ルールのオーバーライド、プログラムのアンロードを含む)が調整なしに変更すると、Pod ネットワークの中断、ネットワークポリシーの無効化、意図しないトラフィックのリダイレクトなどの重大な障害が発生する可能性があります。統合前にすべてのサードパーティコンポーネントを厳密に検証し、競合を防止してください。

TC フィルタールール

インターフェース

方向

プログラム

優先度

機能

ethx

toContainer

VLAN Untag

20000

VLAN タグの削除

ethx

toContainer

cil_from_netdev

25000

Cilium svc/ネットワークポリシー

veth

toContainer

cil_to_container

25000

Cilium svc/ネットワークポリシー

veth

fromContainer

cil_from_container

25000

Cilium svc/ネットワークポリシー

ethx

fromContainer

cil_to_netdev

25000

Cilium svc/ネットワークポリシー

ethx

fromContainer

VLAN Tag

50001

VLAN タグの追加

IP ルール

方向

優先度

ルーティングテーブル

toContainer

512

1000 + linkIndex(ENI インデックス)

fromContainer

512

1000 + linkIndex(ENI インデックス)

よくある質問

Terway ENI モードの識別

  • Terway v1.11.0 以降では、Terway はデフォルトで共有 ENI モードを使用します。ノードプールの排他的な ENI ネットワークモードを構成することで、排他的な ENI モードを有効にできます。

  • Terway v1.11.0 より前のバージョンでは、クラスター作成時に排他的な ENI モードまたは共有 ENI モードのいずれかを選択できます。クラスター作成後、以下の方法でモードを識別できます。

    • 排他的な ENI モード:kube-system 名前空間の Terway DaemonSet の名前は terway-eni です。

    • 共有 ENI モード:kube-system 名前空間の Terway DaemonSet の名前は terway-eniip です。

ネットワークプラグインの切り替え

いいえ。Terway または Flannel のネットワークプラグインは、クラスター作成時のみ選択でき、その後変更することはできません。プラグインを切り替えるには、新しいクラスターを作成する必要があります。詳細については、「ACK マネージドクラスターの作成」をご参照ください。