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

Container Service for Kubernetes:Terway Edge の利用ガイド

最終更新日:Dec 20, 2025

Terway Edge は、Alibaba Cloud が提供するネットワークプラグインで、Container Service for Kubernetes (ACK) Edge クラスター内のコンテナー向けにアンダーレイネットワークを構築するのに役立ちます。Terway Edge は、Terway と Flannel (Route モード) をベースに開発されています。Terway Edge を ACK Edge クラスターのネットワークプラグインとして使用するには、クラスター作成時に Terway Edge を選択する必要があります。クラスター作成後は、ネットワークプラグインを変更することはできません。このトピックでは、ACK Edge クラスターに Terway Edge を設定する方法について説明します。

クラスター作成時の Terway Edge のインストール

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

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

  3. [ACK Edge] タブをクリックし、Terway の主要なネットワークパラメーターを設定します。

    パラメーター

    説明

    [VPC]

    クラスターをデプロイする VPC の ID を指定します。

    [ネットワークプラグイン]

    [Terway-edge] を選択します。

    [vSwitch]

    選択した vSwitch の CIDR ブロックからクラスター内のノードに IP アドレスが割り当てられます。高可用性を確保するために、異なるゾーンにある少なくとも 3 つの vSwitch を選択することを推奨します。

    [Pod vSwitch]

    選択した vSwitch の CIDR ブロックからクラスター内の Pod に IP アドレスが割り当てられます。Pod vSwitch の CIDR ブロックは、ノード vSwitch の CIDR ブロックと重複してもかまいません。

    EdgeContainer CIDR ブロック

    エッジ側で割り当て可能なコンテナーネットワークの IP 範囲です。詳細については、「CIDR ブロックの計画」をご参照ください。

    [Service CIDR]

    Service CIDR ブロックは、ノードまたは Pod の CIDR ブロックと重複してはいけません。

    [ノードあたりの Pod 数]

    各エッジノードがサポートする Pod の最大数です。

プライベートネットワークにおけるネットワークインフラ管理

安全で安定した高速なプライベート接続を確立して、オンプレミスのデータセンターを ACK Edge クラスターがデプロイされている VPC に接続できます。次の例では、Express Connect 回線を使用してネットワークを設定する方法を示します。

  1. 次の図は CIDR ブロックを示しています。データセンターの CIDR ブロックは 172.16.0.0/16、VPC の CIDR ブロックは 192.168.0.0/16、エッジ Pod の CIDR ブロックは 10.0.0.0/8 です。エッジまたはデータセンターから VPC へのパケットをルーティングするルートはインバウンドルートです。VPC からエッジまたはデータセンターへのパケットをルーティングするルートはアウトバウンドルートです。

  2. データセンターのスイッチ、ゲートウェイデバイス、および仮想ボーダールータ (VBR) にインバウンドルートを設定して VPC (192.168.0.0/16) にパケットをルーティングし、Express Connect ルーター (ECR) と Cloud Enterprise Network (CEN) インスタンスにインバウンドルートを設定して VPC にパケットをルーティングします。これにより、データセンターから VPC にデプロイされている ACK Edge クラスターのコントロールプレーンと Elastic Compute Service (ECS) インスタンスにリクエストを送信できます。

  3. ACK Edge クラスターのコントロールプレーン、ECS インスタンス、およびコンテナーからデータセンター (172.16.0.0/16) およびデータセンター内のコンテナー (10.0.0.0/8) にリクエストを送信できるように、アウトバウンドルートを設定します。

  4. 実際のシナリオに基づいて Express Connect 回線経由の接続を設定します。詳細については、「Express Connect」をご参照ください。

image

クラウドでの Terway としての Terway Edge の実行

Terway Edge は、クラウドのノードプールで Terway として実行されます。これは、ACK Pro マネージドクラスターで実行される Terway と同じです。詳細については、「Terway」をご参照ください。

説明

ACK Edge クラスターの Terway は、包括的な ENI モードでのみ実行でき、DataPath 高速化、Kubernetes ネットワークポリシー、または ENI トランキングをサポートしていません。

ENS ネットワークでの Terway としての Terway Edge の実行

Terway Edge は、Edge Node Service (ENS) の ENI に基づいて、ENS ノード上でコンテナーネットワークを提供します。詳細については、「ENS ネットワークで Terway を使用する」をご参照ください。

エッジでの Flannel としての Terway Edge の実行

Terway Edge は、エッジで Flannel (Route モード) として実行されます。エッジノードが ACK Edge クラスターに接続されると、クラスターのコントロールプレーンは自動的にノードに Pod CIDR ブロックを割り当て、ホストルートテーブルにコンテナールートを追加します。

BGP を使用したコンテナールートのアドバタイズ

あるノード上のコンテナーが別のノード上のコンテナーと通信する場合、パケットはホストネットワークスタックに基づいて転送されます。

  • 2 つのノードが同じ LAN 内にある場合、ソースノードは Flannel によって設定されたホストルートから宛先ノードの IP アドレスを学習できます。これにより、パケットを宛先ノードに転送できます。

  • 2 つのノードが異なる LAN 内にある場合、パケットはノードから外部ネットワークデバイスに送信されますが、そこにはソースコンテナーのルートが設定されていません。その結果、パケットは宛先コンテナーに到達できません。

Flannel を使用したコンテナールートのアドバタイズ

外部ネットワークデバイスにコンテナールートを設定するために、Flannel (Route モード) はボーダーゲートウェイプロトコル (BGP) サービスを起動して、ネットワークデバイスとの BGP セッションを確立します。これにより、コンテナールートが LAN からネットワークデバイスに動的にアドバタイズされることが保証されます。

image

BGP を使用したコンテナールートのアドバタイズ

説明

外部ネットワークデバイス (レイヤー 3 スイッチ) は BGP をサポートし、これらのデバイスを設定できることを確認する必要があります。

BGPPeer タイプの CustomResourceDefinition を作成して、BGP ピアを設定します。

ステップ 1:クラスターでの BGP スピーカーの設定

  1. bgppeer.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。ビジネス要件に基づいてファイルを変更します。

    apiVersion: network.openyurt.io/v1alpha1
    kind: BGPPeer
    metadata:
      name: peer
    spec:
      localSpeakers:
        - node-1
        - node-2
      localAsNumber: 65010
      peerIP: 172.16.0.1
      peerAsNumber: 65001
      nodeSelector: alibabacloud.com/nodepool-id=npxxx
      # Optional.
      authPassword:
        secretKeyRef:
          name: bgp-secret
          key: password
    ---
    # Optional.
    apiVersion: v1
    kind: Secret
    metadata:
      name: bgp-secret
      namespace: kube-system
    type: Opaque
    data:
      password: bXlTZWNyZXRWYWx1ZQ==  # The value is encoded in Base64.

    パラメーターは次のとおりです。

    パラメーター

    必須

    説明

    metadata.name

    はい

    BGP ピアの名前。

    spec.localSpeakers

    はい

    BGP スピーカーとして機能するクラスター内のノード。BGP スピーカーは、LAN 内のすべてのノードでコンテナールートをアドバタイズします。BGP スピーカーとして少なくとも 2 つのノードを選択することを推奨します。

    spec.localAsNumber

    はい

    BGP ピアの自律システム番号 (ASN)。BGP スピーカーが属する自律システム (AS) を指定します。ASN は BGP における一意の識別子です。LAN は AS であり、プライベート ASN の範囲は 64512 から 65535 です。

    spec.peerIP

    はい

    クラスター内の BGP スピーカー間で BGP セッションを確立するために使用される、LAN ゲートウェイまたはレイヤー 3 スイッチの IP アドレス。

    spec.peerAsNumber

    はい

    LAN ゲートウェイまたはレイヤー 3 スイッチの ASN。

    spec.gateway

    いいえ

    異なる AS 間でのコンテナー通信用のカスタムゲートウェイアドレス。デフォルトでは、このパラメーターは LAN のゲートウェイまたは vSwitch アドレスに設定されます。

    spec.nodeSelector

    はい

    ノードセレクター。ノードセレクターは、BGP ピアの AS に属するノードを選択するために使用されます。ノードプールのラベルを追加することを推奨します。これにより、ノードプール内のすべてのノードを選択できます。すべてのエッジノードが同じ LAN 内にある場合は、値を all() に設定できます。これは、エッジノードが同じ AS に属するためです。

    spec.authPassword

    いいえ

    BGP セッションを確立するために使用されるパスワード。まず、kube-system 名前空間に Secret を作成する必要があります。次に、パラメーターで Secret キーと Secret 名を指定します。

  2. 次のコマンドを実行して BGPPeer を作成します。

    kubectl apply -f bgppeer.yaml
  3. 次のコマンドを実行して BGPPeer をクエリします。

    kubectl get bgppeer peer

    期待される出力:

    NAME   LOCALSPEAKERS         LOCALASNUMBER   PEERIP         PEERASNUMBER     AGE
    peer   ["node-1","node-2"]   65010           172.16.0.1     65001            10m

ステップ 2:外部ネットワークデバイスを設定して BGP サービスを起動

重要
  • コンポーネントの更新中に BGP セッションの永続化を確保し、コンテナールートの陳腐化によるコンテナーネットワークの中断を防ぐために、クラスター内の少なくとも 3 つのノードを BGP ピアとして選択することを推奨します。

  • デフォルトでは、Terway Edge はタイムアウト 600 秒の BGP グレースフルリスタートを有効にします。必要に応じて、vSwitch で BGP グレースフルリスタートを設定してください。

  1. 実際のネットワークデバイスモデルに基づいて BGP 設定を行い、BGP サービスを起動します。

  2. BGP セッションが確立できるように、ステップ 1 で選択した BGP ノードを BGP ピアとして設定します。

ステップ 3:BGP セッションの確立とコンテナールートのアドバタイズの検証

  1. BGP ピアのイベントを確認します。

    kubectl describe bgppeers peer-1

    出力に FailedEstablish イベントが含まれている場合、BGP セッションの確立に失敗したことを意味します。

  2. vSwitch にコンテナールートが含まれているかどうかを確認します。