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

Container Service for Kubernetes:Terway と Flannel の比較

最終更新日:May 09, 2025

ACK は、Terway と Flannel という 2 つのコンテナーネットワークインターフェース (CNI) プラグインを提供しています。このトピックでは、Terway と Flannel の機能と適用可能なシナリオを比較します。

  • Terway は Alibaba Cloud によって開発されたネットワークプラグインです。このプラグインは、Elastic Network Interface (ENI) に基づいてネットワークを構築します。Terway は、拡張 Berkeley Packet Filter (eBPF) を使用したネットワークトラフィックの高速化をサポートしています。また、Terway は、ネットワークポリシー、ポッドレベルのスイッチ、およびセキュリティグループもサポートしています。Terway は、大規模ノード、高ネットワークパフォーマンス、高セキュリティを必要とするハイパフォーマンスコンピューティング、ゲーム、マイクロサービスなどのシナリオに適しています。

  • Flannel は、コミュニティによって提供されるオープンソースのネットワークプラグインです。Flannel は、ACK で Alibaba Cloud の Virtual Private Cloud (VPC) を使用します。パケットは VPC ルートテーブルに基づいて転送されます。Flannel は、小規模ノード、簡素化されたネットワーク構成を必要とし、コンテナーネットワークのカスタム制御を必要としないシナリオに適しています。

重要
  • コンテナーネットワークプラグインは、クラスターの作成時にインストールする必要があり、クラスターの作成後は変更できません。

  • Flannel を使用する場合、ALB Ingress は NodePort サービスと LoadBalancer サービスへのリクエストの転送のみをサポートし、ClusterIP サービスはサポートしていません。

項目

Terway

Flannel

ネットワークパフォーマンス

  • Terway は、TCP Reverse Repeatability (TCP RR)、UDP Packets Per Second (UDP PPS)、帯域幅、レイテンシの点で、コミュニティバージョンの Flannel よりも優れています。

    説明

    テストデータは、ecs.ebmg5s.24xlarge インスタンスに基づく理論値です。実際のデータは動作環境によって異なります。詳細については、「Alibaba Cloud Native Community」をご参照ください。

  • Terway は排他的な ENI モードをサポートしています。ポッドは排他的な ENI を持ちます。このモードは高いネットワークパフォーマンスを提供し、ハイパフォーマンスコンピューティング、ゲーム、マイクロサービスなどのシナリオに適しています。

  • Terway は共有 ENI DataPath V2 アクセラレーションモードをサポートしています。DataPath V2 は、IPVLAN ソリューションの更新バージョンです。ポッドがクラスター内のエンドポイントにアクセスする場合、ポッドは eBPF を使用してノードのネットワークプロトコルスタックをバイパスすることで、ネットワークアクセスを高速化できます。

ノードクォータ

Terway を使用する場合、ノードの最大数は単一クラスターの容量によって異なります。

  • ACK Pro マネージドクラスター: デフォルトでは 5,000 ノードがサポートされています。最大 15,000 ノードがサポートされています。

  • ACK Basic クラスター: 10 ノード。

Flannel を使用する場合、ノードの最大数は、VPC ルートテーブルのエントリ数とクラスターの容量によって異なります。

VPC ルートテーブルのエントリ: デフォルトでは 200 エントリがサポートされています。クォータの増加を申請すると、最大 1,000 エントリがサポートされます。1 つのノードは、クラスター内の 1 つのエントリに対応します。最大 1,000 ノードがサポートされています。

  • ACK Pro マネージドクラスター: デフォルトでは 200 ノードがサポートされています。最大 1,000 ノードがサポートされています。

  • ACK Basic クラスター: 10 ノード。

ノード上のポッド数

ポッドは、ノードの ENI を使用します。ノード上のポッド数は、[ENI] の数や 1 ENI あたりの非公開 IPv4 アドレス の数など、ノードの仕様とメトリックによって異なります。

image

前の図は、[コンピューティングネストタイプ C7]、ecs.c7.4xlarge、16 vCPU 32 GiB の仕様の ECS インスタンスを示しています。

  • 共有 ENI モードでは、最大 210 個のポッドを作成できます。

  • 排他的 ENI モードでは、最大 7 つのポッドを作成できます。

[コンピューティングネストタイプ C6] インスタンスと [コンピューティングネストタイプ C7] インスタンスは、同じ数の ENI を持っています。ただし、1 つの ENI あたりのプライベート IPv4 アドレスの数 が異なるため、[コンピューティングネストタイプ C6] では包括的 ENI モードで最大 140 個のポッドを作成できます。詳細については、「ノード上のポッドの最大数を計算する方法」をご参照ください。

ノード上のポッドの数は、[ポッドの数] パラメーターと [ポッド CIDR ブロック] パラメーターを指定するときに設定したサブネットマスクによって異なります。

image

前の図は、ACK Pro クラスター 内のポッドの CIDR ブロックが 172.16.0.0/20 であることを示しています。各ノードは最大 256 個のポッドを実行できます。ACK Pro クラスターには最大 16 個のノードをデプロイできます。

重要

Flannel を構成した後、ノードの最大数を変更することはできません。

ポッド CIDR ブロック

  • ポッドの CIDR ブロックは VPC CIDR ブロックから割り当てられます。そのため、VPC アドレスの消費量が多くなります。CIDR ブロックを使用する前に、十分な VPC CIDR ブロックを計画することをお勧めします。

  • ポッドの CIDR ブロックは、サービスの CIDR ブロックと重複することはできません。CIDR ブロックは変更できません。

  • vSwitch を追加して、ポッドの CIDR ブロックをスケールアウトできます。

  • ポッドの CIDR ブロックは、VPC CIDR ブロックとは無関係です。Flannel は、構成された CIDR ブロックからサブネットをクラスター内の各ノードに割り当てます。ノード内のすべてのポッドの IP アドレスは、サブネットから割り当てられます。

  • ポッドの CIDR ブロック、VPC の CIDR ブロック、およびサービス CIDR ブロックは互いに独立しており、重複することはできません。CIDR ブロックは変更できません。

  • ポッドの CIDR ブロックはスケールアウトできません。

ネットワークセキュリティ

  • ポッド用に個別の vSwitch と個別のセキュリティグループを構成できます。

  • コンテナー間のカスタムアクセス制御を構成するために、Kubernetes ネイティブのネットワークポリシーがサポートされています。

  • ポッド用に独立した vSwitch とセキュリティグループを構成することはできません。

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

IPv4/IPv6 デュアルスタック

IPv4/IPv6 デュアルスタックがサポートされています。

IPv4/IPv6 デュアルスタックはサポートされていません。

説明

ACK で使用される Flannel プラグインは、Alibaba Cloud 環境に適応するように変更されており、オープンソースコミュニティとは同期されていません。Flannel のリリースノートの詳細については、「Flannel」をご参照ください。

ポッドの固定 IP アドレス

各ポッドに静的 IP アドレスを指定できます。

各ポッドに静的 IP アドレスを指定することはできません。

セッション維持

SLB インスタンスのバックエンドサーバーはポッドに直接接続し、セッション維持機能に依存して、バックエンドポッドが変更された場合でもサービスが中断されないようにします。

SLB インスタンスのバックエンドサーバーは、NodePort を使用してポッドに接続します。ポッドが変更されるとトラフィックが中断され、サービスの再試行が発生する可能性があります。

複数クラスター間のアクセス

セキュリティグループルールで関連ポートが開いている場合、異なるクラスター内のポッドが通信できます。

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

ポッド送信元 IP アドレスの保持

ポッドが VPC 内の他のエンドポイントにアクセスするために使用する送信元 IP アドレスはすべて、ポッド IP アドレスです。これにより、監査が容易になります。

ポッドが VPC 内の別のエンドポイントにアクセスする場合、送信元 IP アドレスはノード IP アドレスです。ポッド IP アドレスは保持できません。

次の手順

  • クラスターを作成した後、ポッド CIDR ブロック、サービス CIDR ブロック、またはノード CIDR ブロックを変更することはできません。上記の CIDR ブロックは、クラスターにデプロイできるポッド、サービス、およびノードの最大数を制限します。異なるリソース間で論理ネットワーク分離を有効にする場合は、リソースの CIDR ブロックが互いに重複しないようにしてください。これにより、アクセス制御とカスタムルートを構成することもできます。Kubernetes クラスターを作成する前に CIDR ブロックを計画することをお勧めします。詳細については、「ACK マネージドクラスターのネットワーク計画」をご参照ください。

  • CIDR ブロックを計画した後:

    • Terway を使用する場合は、クラスターの作成時に Terway をインストールします。詳細については、「Terway を使用する」をご参照ください。

    • Flannel を使用する場合は、クラスターの作成時に Flannel をインストールします。詳細については、「Flannel を使用する」をご参照ください。

参考資料