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

Container Service for Kubernetes:Terway の使用

最終更新日:Jul 09, 2025

Terway は、Alibaba Cloud によって開発されたオープンソースの Container Network Interface(CNI)プラグインです。 Terway は Virtual Private Cloud(VPC)と連携し、標準の Kubernetes ネットワークポリシーを使用してコンテナ間の通信方法を制御できます。

始める前に

Terway の動作モードをよりよく理解するために、Terway ネットワークプラグインを使用する前に、このトピックを読むことをお勧めします。

このトピックを読む前に、コンテナネットワークプラグインで使用される用語を理解し、コンテナネットワークプラグインを選択することをお勧めします。 詳細については、「ネットワークの概要」および「Terway と Flannel の比較」をご参照ください。

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

課金

Terway は無料です。 ただし、Terway によって使用されるポッドは各ノードにデプロイされます。 これらのポッドは少量のノードリソースを消費します。 ACK で使用される Alibaba Cloud サービスの課金の詳細については、「クラウド リソース料金」をご参照ください。

ノード上のポッドの最大数の計算方法

Terway モードでは、ノード上のポッドの最大数は、Elastic Compute Service(ECS)インスタンスによって提供される Elastic Network Interface(ENI)の数によって異なります。 Terway には、ノード上のポッドの下限があります。 ノードがクラスタに参加できるように、ノード上のポッドの最大数は少なくとも下限以上である必要があります。 次の表に詳細を示します。

Terway モード

ノード上のポッドの最大数

ノード上で静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループをサポートするポッドの最大数

共有 ENI モード

(EniQuantity - 1)× EniPrivateIpAddressQuantity。ここで、EniQuantity はECS インスタンスタイプによって提供される ENI の数、EniPrivateIpAddressQuantity は ENI によって提供されるプライベート IP アドレスの数です。

説明

ノードがクラスタに追加できるように、ノード上のポッドの上限は 11 より大きくなければなりません。

この例では、汎用 ecs.g7.4xlarge インスタンスタイプが使用されています。 このインスタンスタイプは 8 つの ENI を提供し、各 ENI は 30 のプライベート IP アドレスを提供します。 ノード上のポッドの最大数は(8 - 1)× 30 = 210 です。

重要

ノード上で ENI を使用できるポッドの最大数は、インスタンスタイプによって決まる固定値です。 maxPods パラメータの値を変更した場合、hostNetwork モードを使用するポッドの最大数のみが影響を受けます。

0

共有 ENI + Trunk ENI

Trunk ENI モードの各ノードのクォータ:

EniTotalQuantity - EniQuantity。ここで、EniTotalQuantity は ECS インスタンスタイプでサポートされるネットワークインターフェースの最大数です。

専用 ENI

説明

ノードがクラスタに追加できるように、ノード上のポッドの上限は 6 より大きくなければなりません。

この例では、汎用 ecs.g7.4xlarge インスタンスタイプが使用されています。 このインスタンスタイプは 8 つの ENI をサポートしています。 ノードでサポートされるポッドの最大数は(8 - 1)= 7 です。

ECS インスタンスタイプごとの ENI 容量(EniQuantity)- 1

説明

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

重要

Terway v1.11.0 以降のバージョンでは、専用 ENI モードまたは共有 ENI モードで実行されるノードプールを作成でき、これら 2 つのタイプのノードプールは同じクラスタ内に存在できます。 詳細については、「Terway」をご参照ください。

ノードネットワークでサポートされるポッドの最大数の表示

  • 方法 1:ACK コンソールでノードプールを作成するときに、[インスタンスタイプ] セクションの [Terway モード(サポートされるポッド)] 列に、インスタンスタイプでサポートされるポッドの最大数が表示されます。

  • 方法 2:次の手順を実行して、ECS インスタンスタイプでサポートされるポッドの最大数を手動で計算します。

    • 関連ドキュメントを読んで、インスタンスタイプによって提供される ENI の数を取得します。 詳細については、「インスタンスファミリの概要」をご参照ください。

    • OpenAPI Explorer の情報をクエリします。 InstanceTypes パラメータにノードのインスタンスタイプを指定し、[呼び出し開始] をクリックします。 EniQuantity パラメータの戻り値は、インスタンスタイプによって提供される ENI の数を示します。 EniPrivateIpAddressQuantity パラメータは、各 ENI によって提供されるプライベート IP アドレスの数を示します。 EniTotalQuantity パラメータは、インスタンスタイプでサポートされるネットワークインターフェースの最大数を示します。

クラスタの作成時に Terway をインストールする

クラスタを作成するときにのみ、Terway をネットワークプラグインとして選択できます。 クラスタの作成後、プラグインを変更することはできません。

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

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

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

    パラメータ

    説明

    IPv6 デュアルスタック

    [有効化] を選択して、IPv4 と IPv6 をサポートするデュアルスタッククラスタを作成します。

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

    IPv4/IPv6 デュアルスタックを有効にすると、デュアルスタッククラスタが作成されます。

    重要
    • Kubernetes 1.22 以降を実行するクラスタのみがこの機能をサポートしています。

    • IPv4 アドレスは、ワーカーノードとコントロールプレーン間の通信に使用されます。

    • ネットワークプラグインとして Terway を選択する必要があります。

    • Terway の共有 Elastic Network Interface(ENI)モードを使用する場合、ECS インスタンスタイプは IPv6 アドレスをサポートしている必要があります。 指定されたタイプの ECS インスタンスをクラスタに追加するには、ECS インスタンスタイプでサポートされる IPv4 アドレスの数が IPv6 アドレスの数と同じである必要があります。 ECS インスタンスタイプの詳細については、「インスタンスファミリの概要」をご参照ください。

    • クラスタで使用される VPC は、IPv4/IPv6 デュアルスタックをサポートしている必要があります。

    • クラスタで Elastic Remote Direct Memory Access(eRDMA) を使用する場合、IPv4/IPv6 デュアルスタックを無効にする必要があります。

    VPC

    クラスタで使用される VPC。

    ネットワークプラグイン

    [Terway] を選択します。

    DataPath V2

    このチェックボックスをオンにすると、DataPath V2 アクセラレーションモードが使用されます。 DataPath V2 アクセラレーションモードを選択すると、Terway は共有 ENI モードとは異なるトラフィック転送リンクを採用して、ネットワーク通信を高速化します。 DataPath V2 の機能の詳細については、「ネットワークアクセラレーション」をご参照ください。

    説明
    • 有効にすると、Terway ポリシーを持つコンテナは、各ワーカーノードで追加の 0.5 コアと 512 MB のリソースを消費することが予想され、この消費量はクラスタサイズが大きくなるにつれて増加します。 Terway のデフォルト構成では、コンテナの CPU 制限は 1 コアに設定されており、メモリには制限が指定されていません。

    • DataPath V2 モードでは、コンテナネットワーク接続追跡(conntrack)データは eBPF マップに保存されます。 Linux のネイティブ conntrack メカニズムと同様に、eBPF conntrack は Least Recently Used(LRU)エビクションを実装します。 マップ容量に達すると、最も古い接続が自動的にエビクトされ、新しい接続が保存されます。 ワークロードスケールに基づいてパラメータを構成して、接続制限を超えないようにします。 詳細については、「Terway での conntrack 構成の最適化」をご参照ください。

    NetworkPolicies のサポート

    このチェックボックスをオンにすると、Kubernetes ネイティブの NetworkPolicies がサポートされます。

    説明
    • Terway V1.9.2 以降では、新しいクラスタの NetworkPolicies は、拡張 Berkeley Packet Filter(eBPF)を使用して実装されます。 また、データプレーンで DataPath V2 が有効になります。

    • コンソールを使用して NetworkPolicies を管理する機能はパブリックプレビュー中です。 この機能を使用する場合は、クォータセンターコンソール にログインしてアプリケーションを送信してください。

    ENI トランキングのサポート

    このチェックボックスをオンにすると、Trunk ENI 機能が有効になります。 各ポッドに静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを指定できます。

    説明
    • ACK マネージドクラスター の場合は、アプリケーションを送信せずに、ENI トランキングのサポートオプションを選択できます。 ACK 専用クラスター で Trunk ENI 機能を有効にする場合は、クォータセンターコンソール にログインしてアプリケーションを送信してください。

    • デフォルトでは、Kubernetes 1.31 以降のバージョンを実行する新しく作成された ACK マネージドクラスター では、Trunk ENI 機能が有効になっています。

    vSwitch

    クラスタ内のノードで使用される vSwitch の CIDR ブロック。 高可用性を確保するために、異なるゾーンで少なくとも 3 つの vSwitch を選択することをお勧めします。

    ポッド VSwitch

    ポッドで使用される vSwitch の CIDR ブロック。 CIDR ブロックは、ノードの vSwitch CIDR ブロックと重複できます。

    サービス CIDR

    サービス CIDR ブロックは、ノードまたはポッド CIDR ブロックと重複できません。

    IPv6 サービス CIDR ブロック

    [IPv6 デュアルスタック] が有効になった後、IPv6 サービス CIDR を構成できます。

Terway モードの紹介

Terway の仕組みの詳細については、次のセクションを参照してください。

共有 ENI モードと専用 ENI モード

ポッドに IP アドレスを割り当てると、Terway は [共有 ENI モード] または [専用 ENI モード] のいずれかのモードで動作します。

重要
  • Terway v1.11.0 以降のバージョンでは、クラスタ内のノードプールに共有 ENI モードまたは専用 ENI モードのいずれかを選択でき、クラスタの作成時にはこの選択はできなくなりました。

  • ノードのプライマリ ENI はノード OS に割り当てられます。 残りの ENI は、Terway によってポッドネットワークの構成に使用されます。 したがって、ENI を手動で構成しないでください。 ENI を手動で管理する方法の詳細については、「ENI フィルタを構成する」をご参照ください。

項目

共有 ENI モード

専用 ENI モード

ポッド IP アドレス管理

ENI 割り当てモード

複数のポッドが同じ ENI を共有します。

各ポッドに個別の ENI が割り当てられます。

ポッドデプロイメント密度

ポッドデプロイメントの密度は高くなります。 1 つのノードに数百のポッドをデプロイできます。

ポッドデプロイメントの密度は低くなります。 通常のノードには 1 桁のポッドをデプロイできます。

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

データリンク

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

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

ユースケースシナリオ

一般的な Kubernetes シナリオ。

このモードのネットワークパフォーマンスは、従来の仮想マシンのパフォーマンスに匹敵します。これは、高いネットワークスループットまたは低いレイテンシを必要とするアプリケーションなど、高いネットワークパフォーマンスを必要とするシナリオに適しています。

ネットワークアクセラレーション

DataPath V2 ネットワークアクセラレーションがサポートされています。 詳細については、「ネットワークアクセラレーション」をご参照ください。

ネットワークアクセラレーションはサポートされていません。 ポッドの専用 ENI リソースは優れたネットワークパフォーマンスを提供します。

NetworkPolicies のサポート

Kubernetes ネイティブの NetworkPolicies がサポートされており、アクセス制御機能を提供します。

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

アクセス制御

Trunk ENI 機能を使用すると、各ポッドに静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを指定できます。 詳細については、「各ポッドに静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを構成する」および「NetworkPolicy のサポート」をご参照ください。

デフォルトでは、ポッドに静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを構成できます。

ネットワークアクセラレーション

Terway の共有 ENI モードを使用する場合、ネットワークアクセラレーションモードを有効にできます。 アクセラレーションモードを有効にすると、Terway は通常の共有 ENI モードとは異なるトラフィック転送パスを使用して、より高いパフォーマンスを実現します。 DataPath V2 は Terway でサポートされています。 DataPath V2 の機能の詳細については、次の説明を参照してください。

重要
  • DataPath V2 は、以前の IPVLAN および eBPF アクセラレーションモードのアップグレードバージョンです。 Terway 1.8.0 以降がインストールされているクラスタを作成する場合、DataPath V2 のみを選択できます。

  • DataPath V2 および IPVLAN + eBPF アクセラレーションモードは、共有 ENI モードで実行されるノードプールにのみ適用されます。 専用 ENI モードで実行されるノードプールには適用されません。

DataPath V2 機能

説明

該当する Terway バージョン

Terway 1.8.0 以降がインストールされているクラスタ。

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

高速データリンク

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

  • ポッドが別のノードの別のポッドにアクセスする場合、eBPF を使用してノードのネットワークプロトコルスタックをバイパスします。

  • ポッドが同じノードの別のポッドにアクセスする場合、ポッドはノードプロトコルスタックをバイパスします。 トラフィックはノード内で転送されます。

パフォーマンスの最適化

  • ホスト上のポッドのネットワーク転送プロセスが簡素化されます。 これにより、ポッドネットワークのパフォーマンスはホストネットワークのパフォーマンスとほぼ同じになり、レイテンシは従来のモードと比較して 30% 削減されます。

  • サービスネットワークは、kube-proxy モードではなく、eBPF テクノロジーに基づいて実装されます。 トラフィックはホスト iptables または IP Virtual Server(IPVS)をバイパスするため、ネットワークレイテンシが大幅に削減されます。 大規模クラスタでのネットワークパフォーマンスへの影響が軽減され、スケーラビリティが向上します。

  • ポッドのネットワークポリシー(NetworkPolicy)は、iptables ではなく、eBPF テクノロジーに基づいて実装されます。 これにより、ホスト上に多数の iptables ルールが生成されなくなり、ネットワークポリシーのネットワークパフォーマンスへの影響が軽減されます。

使用方法

クラスタを作成し、ネットワークプラグイン[Terway] に設定し、[DataPath V2] を選択します。

使用上の注意

  • カーネルバージョン ≥ 5.10 の場合、Alibaba Cloud Linux OS イメージをお勧めします。

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

  • ネットワークポリシー(NetworkPolicy)の実装ロジックは、元の Terway とは異なります。

    • CIDR セレクタは、ポッドセレクタよりも優先度が低くなります。 CIDR セレクタにポッド CIDR ブロックが含まれている場合は、別のポッドセレクタを追加する必要があります。

    • CIDR セレクタの except キーワードは完全にはサポートされていません。 except キーワードを使用しないことをお勧めします。

    • Egress タイプのネットワークポリシー(NetworkPolicy)を使用する場合、ホストネットワーク内のポッドまたはクラスタ内のノードの IP アドレスにアクセスできません。

  • クラスタ内から LoadBalancer サービスに関連付けられているインターネット向け SLB インスタンスにアクセスすると、潜在的なループバックの問題が発生し、ネットワーク接続エラーが発生する可能性があります。 詳細については、「SLB インスタンスにアクセスできないのはなぜですか?」をご参照ください。

  • ExternalTrafficPolicy=Local を使用して NodePort 経由でサービスにアクセスすると、トラフィックが失敗する可能性があります。 ExternalTrafficPolicy=Cluster を設定することで解決します。

既存のクラスタでは、IPVLAN + eBPF アクセラレーションモードが選択されています。 IPVLAN + eBPF の機能の詳細については、次の説明を参照してください。

IPVLAN + eBPF

特徴

説明

該当する Terway バージョン

Terway 1.7.0 以降がインストールされているクラスタ。

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

高速データリンク

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

  • ポッドが別のノードの別のポッドにアクセスする場合、IPVLAN を使用してノードのネットワークプロトコルスタックをバイパスします。

使用方法

クラスタを作成し、ネットワークプラグイン[Terway] に設定し、[ポッド IPVLAN] を選択します。

アクセス制御

Terway の共有 ENI モードは、NetworkPolicy 機能と ENI トランキングのサポートオプションをサポートしています。 これにより、クラスタ内のネットワークトラフィックの管理が容易になります。 Terway の専用 ENI モードも、特定のトラフィック制御機能をサポートしています。

NetworkPolicy のサポート

  • Terway の専用 ENI モードで実行されるノードプールは、NetworkPolicy 機能をサポートしていません。

  • Terway の共有 ENI モードで実行されるノードプールは、Kubernetes ネイティブの NetworkPolicy 機能をサポートしています。 ネットワークポリシーを使用すると、ユーザー定義ルールを使用してポッド間のネットワークトラフィックを制御できます。

    クラスタを作成し、ネットワークプラグイン[Terway] に設定し、[NetworkPolicy のサポート] を選択します。 これにより、クラスタは NetworkPolicy 機能をサポートします。 詳細については、「ACK クラスタでネットワークポリシーを使用する」をご参照ください。

    説明

    コンソールを使用して NetworkPolicies を管理する機能はパブリックプレビュー中です。 この機能を使用する場合は、クォータセンターコンソール にログインしてアプリケーションを送信してください。

ポッドに静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを構成する

  • Terway の専用 ENI モードで実行されるノードプールでは、各ポッドに静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを指定できます。 これにより、ユーザートラフィックの管理と分離、ネットワークポリシーの構成、および IP アドレスのきめ細かい管理が可能になります。

  • Trunk ENI 機能は、Terway の共有 ENI モードで実行されるノードプールのオプションです。 Trunk ENI 機能を使用すると、各ポッドに静的 IP アドレス、個別の vSwitch、および個別のセキュリティグループを指定できます。

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

    説明
    • ACK マネージドクラスター の場合は、アプリケーションを送信せずに、ENI トランキングのサポートオプションを選択できます。 ACK 専用クラスター で Trunk ENI 機能を有効にする場合は、クォータセンターコンソール にログインしてアプリケーションを送信してください。

    • デフォルトでは、Kubernetes 1.31 以降のバージョンを実行する新しく作成された ACK マネージドクラスター では、Trunk ENI 機能が有効になっています。

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