Terwayは、Alibaba Cloudによって開発されたオープンソースのContainer Network Interface (CNI) プラグインです。 TerwayはVirtual Private Cloud (VPC) と連携し、標準のKubernetesネットワークポリシーを使用して、コンテナー間の通信方法を規制できます。
あなたが始める前に
Terwayの動作モードをよりよく理解するために、Terwayネットワークプラグインを使用する前にこのトピックを読むことをお勧めします。
このトピックを読む前に、コンテナーネットワークプラグインで使用される用語を理解し、コンテナーネットワークプラグインを選択することをお勧めします。 詳細については、「ネットワークの概要」および「TerwayとFlannelの比較」をご参照ください。
クラスターを作成する前に、クラスターのCIDRブロックを計画する必要があります。 詳細については、「ACKクラスターのネットワークの計画」をご参照ください。
課金
Terwayは無料です。 ただし、Terwayで使用されるポッドは各ノードにデプロイされます。 これらのポッドは、少量のノードリソースを消費します。 ACKで使用されるAlibaba Cloudサービスの課金の詳細については、「Cloud service billing」をご参照ください。
ノードの最大ポッド数の計算方法
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を使用できるポッドの最大数は、インスタンスタイプによって決定される固定値です。 | 0 |
共有ENI + トランクENI | EniTotalQuantity -EniQuantity。ここで、EniTotalQuantityは、ECSインスタンスタイプでサポートされているネットワークインターフェイスの最大数、および | ||
独占ENI | EniQuantity - 1 説明 クラスターに参加するには、ノード上のポッドの最大数が6より大きい必要があります。 | この例では、汎用ecs.g7.4xlargeインスタンスタイプが使用されています。 このインスタンスタイプは8つのENIをサポートします。 ノードでサポートされるポッドの最大数は (8 - 1) = 7です。 | EniQuantity - 1 |
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をネットワークプラグインとして選択できるのは、クラスターを作成する場合のみです。 クラスターの作成後にプラグインを変更することはできません。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
右上隅のクラスターページでKubernetesクラスターの作成をクリックします。
Terwayの主要なネットワークパラメータを設定します。 その他のクラスターパラメーターの詳細については、「ACK管理クラスターの作成」をご参照ください。
パラメーター
説明
IPv6 デュアルスタック
IPv4とIPv6をサポートするデュアルスタッククラスターを作成するには、[有効] を選択します。
IPv4/IPv6デュアルスタックを有効にすると、デュアルスタッククラスタが作成されます。 この機能はパブリックプレビュー中です。 この機能を使用するには、Quota Centerコンソールでアプリケーションを送信します。
重要Kubernetes 1.22を実行するクラスターのみがIPv4/IPv6デュアルスタックをサポートしています。
IPv4アドレスは、ワーカーノードと制御プレーンとの間の通信に使用される。
ネットワークプラグインとしてTerwayを選択する必要があります。
Terwayの共有ENIモードを使用する場合、ECSインスタンスタイプはIPv6アドレスをサポートしている必要があります。 指定されたタイプのECSインスタンスをクラスターに追加するには、ECSインスタンスタイプでサポートされるIPv4アドレスの数がIPv6アドレスの数と同じである必要があります。 ECSインスタンスタイプの詳細については、「インスタンスファミリーの概要」をご参照ください。
IPv4/IPv6デュアルスタックをサポートするVPCおよびECSインスタンスを使用する必要があります。
クラスターでElastic Remote Direct Memory Access (eRDMA) を使用する場合は、IPv4/IPv6デュアルスタックを無効にする必要があります。
VPC
クラスターで使用されているVPC。
ネットワークプラグイン
[Terway] を選択します。
データパスV2
このチェックボックスをオンにすると、DataPath V2アクセラレーションモードが使用されます。 DataPath V2高速化モードを選択すると、Terwayはより高速なネットワーク通信のために共有ENIモードとは異なるトラフィック転送リンクを採用します。 DataPath V2の機能の詳細については、「ネットワークアクセラレーション」をご参照ください。
NetworkPolicyのサポート
このチェックボックスをオンにすると、Kubernetesネイティブの
NetworkPolicies
がサポートされます。説明コンソールを使用して
NetworkPolicies
を管理する機能は、パブリックプレビューにあります。 この機能を使用する場合は、クォータセンターコンソールにログインしてアプリケーションを送信します。ENIトランキングのサポート
このチェックボックスをオンにすると、トランクENI機能が有効になります。 静的IPアドレス、個別のvSwitch、および各ポッドに個別のセキュリティグループを指定できます。
説明ACK管理クラスターのENIトランキングのサポートオプションを選択すると、アプリケーションを送信する必要はありません。 ACK専用クラスターでトランクENI機能を有効にする場合は、クォータセンターコンソールにログインしてアプリケーションを送信します。
デフォルトでは、Trunk ENI機能は、Kubernetes 1.31以降のバージョンを実行する新しく作成されたACK管理クラスターに対して有効になっています。
vSwitch
クラスター内のノードで使用されるvSwitchのCIDRブロック。 高可用性を確保するために、異なるゾーンで少なくとも3つのvSwitchを選択することを推奨します。
ポッド VSwitch
ポッドで使用されるvSwitchのCIDRブロック。 CIDRブロックは、ノードのvSwitch CIDRブロックと重複できます。
サービスCIDR
Service CIDRブロックは、ノードまたはポッドCIDRブロックと重複することはできません。
IPv6サービスCIDR
IPv4/IPv6デュアルスタックを有効にした後、IPアドレスを設定できます。
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リソースは、優れたネットワークパフォーマンスを提供します。 | |
NetworkPolicyのサポート | Kubernetesネイティブの |
| |
アクセス制御 | トランクENI機能を使用すると、静的IPアドレス、個別のvSwitch、およびポッドごとに個別のセキュリティグループを指定できます。 詳細については、「静的IPアドレス、個別のvSwitch、および各ポッドの個別のセキュリティグループの設定」をご参照ください。 | デフォルトでは、静的IPアドレス、個別のvSwitch、および個別のセキュリティグループをポッドに設定できます。 |
ネットワークアクセラレーション
Terwayの共有ENIモードを使用する場合は、ネットワークアクセラレーションモードを有効にできます。 アクセラレーションモードを有効にすると、Terwayは通常の共有ENIモードとは異なるトラフィック転送パスを使用してパフォーマンスを向上させます。 DataPath V2はTerwayでサポートされています。 DataPath V2の機能の詳細については、以下の説明を参照してください。
DataPath V2は、以前のIPVLANおよび拡張されたBerkeleyパケットフィルタ (eBPF) アクセラレーションモードのアップグレードバージョンです。 Terway 1.8.0以降でインストールされているクラスターを作成する場合は、DataPath V2のみを選択できます。
DataPath V2およびIPVLAN + eBPFアクセラレーションモードは、共有ENIモードで実行されるノードプールにのみ適用されます。 排他的ENIモードで実行されるノードプールには適用されません。
DataPath V2機能 | 説明 |
適当なTerwayバージョン | Terway 1.8.0以降でインストールされているクラスター。 |
ネットワークアーキテクチャ | |
高速化されたデータリンク |
|
パフォーマンスの最適化 |
|
使用方法 | クラスターを作成し、ネットワークプラグイン を [Terway] に設定し、[DataPath V2] を選択します。 |
使用上の注意 |
|
既存のクラスタでは、IPVLAN + eBPF加速モードが選択される。 IPVLAN + eBPFの機能の詳細については、以下の説明を参照されたい。
アクセス制御
Terwayの共有ENIモードは、NetworkPolicy
機能とENIトランキングのサポートオプションをサポートしています。 これにより、クラスター内のネットワークトラフィックの管理が容易になります。 Terwayの排他的ENIモードは、特定のトラフィック制御機能もサポートします。
NetworkPolicyのサポート
Terwayの排他的ENIモードで実行されるノードプールは、
NetworkPolicy
機能をサポートしていません。Terwayの共有ENIモードで実行されるノードプールは、Kubernetesネイティブの
NetworkPolicy
機能をサポートしています。 ネットワークポリシーを使用すると、ユーザー定義のルールを使用してポッド間のネットワークトラフィックを制御できます。クラスターを作成し、ネットワークプラグイン を [Terway] に設定し、[ネットワークポリシーのサポート] を選択します。 これにより、クラスターは
NetworkPolicy
機能をサポートします。 詳細については、「ACKクラスターでのネットワークポリシーの使用」をご参照ください。説明コンソールを使用して
NetworkPolicies
を管理する機能は、パブリックプレビューにあります。 この機能を使用する場合は、クォータセンターコンソールにログインしてアプリケーションを送信します。
静的IPアドレス、個別のvSwitch、およびポッドの個別のセキュリティグループを設定する
Terwayの排他的ENIモードで実行されるノードプールでは、静的IPアドレス、個別のvSwitch、およびポッドごとに個別のセキュリティグループを指定できます。 これにより、ユーザートラフィックの管理と分離、ネットワークポリシーの設定、およびIPアドレスの管理をきめ細かく行うことができます。
トランクENI機能は、Terwayの共有ENIモードで実行されるノードプールのオプションです。 トランクENI機能を使用すると、静的IPアドレス、個別のvSwitch、およびポッドごとに個別のセキュリティグループを指定できます。
クラスターを作成し、ネットワークプラグイン を [Terway] に設定し、[ENIトランキングのサポート] を選択します。 詳細については、「静的IPアドレス、個別のvSwitch、および各ポッドの個別のセキュリティグループの設定」をご参照ください。
説明ACK管理クラスターのENIトランキングのサポートオプションを選択すると、アプリケーションを送信する必要はありません。 ACK専用クラスターでトランクENI機能を有効にする場合は、クォータセンターコンソールにログインしてアプリケーションを送信します。
デフォルトでは、Trunk ENI機能は、Kubernetes 1.31以降のバージョンを実行する新しく作成されたACK管理クラスターに対して有効になっています。
トランクENI機能を有効にすると、terway-eniipコンポーネントとterway-controlplaneコンポーネントがインストールされます。