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 のインストール
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、[Kubernetes クラスターの作成] をクリックします。
[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 回線を使用してネットワークを設定する方法を示します。
次の図は CIDR ブロックを示しています。データセンターの CIDR ブロックは 172.16.0.0/16、VPC の CIDR ブロックは 192.168.0.0/16、エッジ Pod の CIDR ブロックは 10.0.0.0/8 です。エッジまたはデータセンターから VPC へのパケットをルーティングするルートはインバウンドルートです。VPC からエッジまたはデータセンターへのパケットをルーティングするルートはアウトバウンドルートです。
データセンターのスイッチ、ゲートウェイデバイス、および仮想ボーダールータ (VBR) にインバウンドルートを設定して VPC (192.168.0.0/16) にパケットをルーティングし、Express Connect ルーター (ECR) と Cloud Enterprise Network (CEN) インスタンスにインバウンドルートを設定して VPC にパケットをルーティングします。これにより、データセンターから VPC にデプロイされている ACK Edge クラスターのコントロールプレーンと Elastic Compute Service (ECS) インスタンスにリクエストを送信できます。
ACK Edge クラスターのコントロールプレーン、ECS インスタンス、およびコンテナーからデータセンター (172.16.0.0/16) およびデータセンター内のコンテナー (10.0.0.0/8) にリクエストを送信できるように、アウトバウンドルートを設定します。
実際のシナリオに基づいて Express Connect 回線経由の接続を設定します。詳細については、「Express Connect」をご参照ください。
クラウドでの 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 からネットワークデバイスに動的にアドバタイズされることが保証されます。
BGP を使用したコンテナールートのアドバタイズ
外部ネットワークデバイス (レイヤー 3 スイッチ) は BGP をサポートし、これらのデバイスを設定できることを確認する必要があります。
BGPPeer タイプの CustomResourceDefinition を作成して、BGP ピアを設定します。
ステップ 1:クラスターでの BGP スピーカーの設定
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 名を指定します。
次のコマンドを実行して BGPPeer を作成します。
kubectl apply -f bgppeer.yaml次のコマンドを実行して 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 グレースフルリスタートを設定してください。
実際のネットワークデバイスモデルに基づいて BGP 設定を行い、BGP サービスを起動します。
BGP セッションが確立できるように、ステップ 1 で選択した BGP ノードを BGP ピアとして設定します。
ステップ 3:BGP セッションの確立とコンテナールートのアドバタイズの検証
BGP ピアのイベントを確認します。
kubectl describe bgppeers peer-1出力に
FailedEstablishイベントが含まれている場合、BGP セッションの確立に失敗したことを意味します。vSwitch にコンテナールートが含まれているかどうかを確認します。