全部產品
Search
文件中心

Container Service for Kubernetes:配置Terway Edge實現IDC複雜網路環境中的容器通訊

更新時間:Nov 26, 2025

Terway Edge提供了Underlay的容器網路方案,可以直接通過路由和交換器裝置實現容器間網路通訊能力,提供高效、可擴充、穩定的容器網路能力。本文介紹如何在IDC的複雜網路環境中採用Terway Edge實現容器之間的通訊。

前提條件

已建立1.28或以上版本的ACK Edge叢集,且叢集採用Terway Edge網路外掛程式

計費說明

雲邊容器間通訊

雲邊通訊為雲上計算裝置、容器、雲產品和邊緣側的裝置提供雙向通訊,您可以通過ACK Edge叢集實現雲端和邊緣側裝置的通訊。

  • 雲端:在阿里雲Virtual Private Cloud中,即雲端節點池(雲端ECS、ECI執行個體以及其他雲產品)和託管控制面。

  • 邊緣:在自建資料中心IDC中,即邊緣節點池,主要為您自有的IDC網路裝置以及計算裝置。

雲邊容器間網路通訊樣本如下:

類別

涉及網段

雲端

VPC網段:192.168.0.0/16

邊緣IDC

主機網段:10.0.0.0/16

容器網段:10.10.0.0/16(建立ACK Edge叢集時自訂)

前提條件

  • 已完成Virtual Private Cloud、雲企業網CEN、邊界路由器VBR、專線的建設。

  • 在CEN中已存在一個用於連通VPC和IDC的轉寄路由器TR,並且分別將邊界路由器VBR和VPC掛載到這個轉寄路由器TR上。

配置方法

步驟一:配置上行路由(IDC訪問雲端VPC

  1. 在IDC核心交換器上配置VPC網段192.168.0.0/16的下一跳為VBR。

    說明

    如果上一級還有交換器或邊界網關,則按照路由規則的標準配置方式使得訪問VPC網段192.168.0.0/16的資料包通過專線可以直接到達阿里雲的VBR。

  2. 在VBR上配置訪問VPC網段192.168.0.0/16的下一跳為TR。

  3. 在TR的路由表中配置VPC網段192.168.0.0/16的下一跳為雲端VPC。

步驟二:配置下行路由(雲端VPC訪問邊緣IDC)

  1. 在VPC路由表中配置訪問IDC主機網段10.0.0.0/16和容器網段10.10.0.0/16的下一跳為TR。

  2. 在TR的路由表中配置IDC主機網段10.0.0.0/16和容器網段10.10.0.0/16的下一跳為VBR。

  3. 在VBR上配置IDC主機網段10.0.0.0/16和容器網段10.10.0.0/16的下一跳通過專線到達IDC核心交換器。

步驟三:配置叢集內節點BGP宣告容器路由

上行路由和下行路由的配置完成後,雲端VPC和IDC主機之間的網路通訊已建立。根據當前網路的配置,當容器網路的資料包到達雲下IDC核心交換器後,由於交換器上缺少容器路由,資料包將無法進一步傳輸。因此您需要配置叢集內的BGPPeer,讓叢集內的一些節點可以通過BGP協議向IDC核心交換器宣告容器路由。更多資訊,請參見使用Terway Edge網路外掛程式

以上圖雲邊容器通訊示意圖為例,選擇三個節點Node-1、Node-2和Node-3作為BGP的宣告者(speaker),宣告在IDC核心交換器下所有節點的容器網路,為該交換器下所有節點添加標籤ASN=65010,參考YAML樣本如下:

apiVersion: network.openyurt.io/v1alpha1
kind: BGPPeer
metadata:
  name: peer
spec:
  localSpeakers:
    - Node-1
    - Node-2
    - Node-3
  localAsNumber: 65010      # 容器網路自治域編號。
  peerIP: 10.0.0.1          # 交換器地址。
  peerAsNumber: 65001       # 交換器自治域編號。
  nodeSelector: ASN=65010   # 選擇所有有這個標籤的節點。
建議您在叢集中選擇至少三個節點作為BGP宣告者,保證在組件升級過程中保持BGP會話,避免因容器路由老化導致容器網路不通。

步驟四:配置交換器接受BGP宣告路由

  1. 根據您網路裝置的型號以及BGP服務的配置方式啟動BGP服務。

  2. 在網路裝置上,配置Node-1、Node-2和Node-3為BGP對等體(peer),並且確保可以成功建立BGP會話。

    此外推薦您配置開啟BGP的Graceful Restart。其中,配置的逾時時間建議大於300秒。當BGP會話意外中斷後,在逾時時間內仍然能保持BGP路由。

步驟五:檢查交換器

檢查IDC核心交換器BGP會話是否建立,即查看交換器路由表是否有容器路由,例如10.10.0.0/24(容器子網) -> 10.0.0.10(容器子網所在的節點IP)。

跨區域網路的容器間通訊

當您的資料中心IDC網路拓撲更加複雜,在一個IDC網路域中構建了多個區域網路,您需要將位於多個區域網路的裝置統一接入到一個ACK Edge叢集進行管理,您可以參考如下情境樣本。

同一個節點上的容器間通訊會直接在節點主機網路棧上實現互連。

對於跨節點的容器間通訊Terway Edge外掛程式的路由配置策略如下:

  • 如果兩個節點位於同一個區域網路(同樣的ASN),則會直接將容器路由的下一跳指定到對應節點地址。

  • 如果兩個節點位於不同的區域網路(不同的ASN),則會走主機預設路由(一般指向交換器地址)。

兩個節點位於同一區域網路

兩個節點位於同一區域網路的情境中,節點間二層網路互連,以上圖Node-1上的Pod訪問Node-2的Pod為例,容器網路資料包會直接通過二層網路到達Node-2,通過Node-2主機網路棧進入到Pod中。

兩個節點位於不同區域網路

兩個節點位於不同區域網路的情境中,由於節點之間二層網路不互連,因此需要藉助交換器的三層網路轉寄能力,您需要配置BGP會話以保證網路的暢通。以上圖Node-1上的Pod訪問Node-5的Pod為例介紹如何將容器路由發布到位於叢集外的網路裝置中,相關配置如下:

  1. 在Node-1和交換器A之間構建BGP會話,將區域網路A中的容器路由發布給交換器A。參考YAML樣本如下:

    apiVersion: network.openyurt.io/v1alpha1
    kind: BGPPeer
    metadata:
      name: peer-a
    spec:
      localSpeakers:
        - Node-1
      localAsNumber: 65010      # 容器網路自治域編號。
      peerIP: 10.0.10.1         # 交換器地址。
      peerAsNumber: 65002       # 交換器自治域編號。
      nodeSelector: ASN=65010   # 選擇所有有這個標籤的節點。
  2. 在Node-5和交換器B之間構建BGP會話,將區域網路B中的容器路由發布給交換器B。參考YAML樣本如下:

    apiVersion: network.openyurt.io/v1alpha1
    kind: BGPPeer
    metadata:
      name: peer-b
    spec:
      localSpeakers:
        - Node-5
      localAsNumber: 65020      # 容器網路自治域編號。
      peerIP: 10.0.20.1         # 交換器地址。
      peerAsNumber: 65003       # 交換器自治域編號。
      nodeSelector: ASN=65020   # 選擇所有有這個標籤的節點。
  3. 在交換器A和交換器B之間構建BGP會話,讓交換器A和交換器B互相得知對方的容器路由。

    • 此時去包路由為:Node-1 -> 交換器A -> 交換器B -> Node-5

    • 此時回包路由為:Node-5 -> 交換器B -> 交換器A -> Node-1

  4. (可選)如果您的網路裝置如圖所示,還有一個核心交換器串連雲端VPC的主機和容器,您還需要在交換器A、核心交換器以及交換器B之間構建BGP會話。即分別在交換器A與核心交換器之間構建BGP會話,在交換器B與核心交換器之間構建BGP會話。

跨網路域的容器間通訊

當您需要將多個不同網路域中的IDC裝置接入到ACK Edge叢集時,您可以參考如下情境樣本。

  1. 參考以下YAML樣本構建BGP會話,將網路域A中的容器路由發布給交換器A。

    apiVersion: network.openyurt.io/v1alpha1
    kind: BGPPeer
    metadata:
      name: peer-a
    spec:
      localSpeakers:
        - Node-1
      localAsNumber: 65010      # 容器網路自治域編號。
      peerIP: 10.0.10.1         # 交換器地址。
      peerAsNumber: 65001       # 交換器自治域編號。
      nodeSelector: ASN=65010   # 選擇所有有這個標籤的節點。
  2. 參考以下YAML樣本構建BGP會話,將網路域B中的容器路由發布給交換器B。

    apiVersion: network.openyurt.io/v1alpha1
    kind: BGPPeer
    metadata:
      name: peer-b
    spec:
      localSpeakers:
        - Node-5
      localAsNumber: 65020      # 容器網路自治域編號。
      peerIP: 10.0.20.1         # 交換器地址。
      peerAsNumber: 65002       # 交換器自治域編號。
      nodeSelector: ASN=65020   # 選擇所有有這個標籤的節點。
  3. 將不同的IDC進行互連。

    • 如果您的兩個IDC之間已通過專線實現三層網路互連,您需要在交換器A和交換器B之間構建BGP會話,互相發布各自網路域的容器路由。

    • 如果您的兩個IDC之間沒有直接通過專線實現三層互連,您需要分別在交換器A和雲上邊界路由器VBR、交換器B和雲上邊界路由器VBR之間構建BGP協議,通過雲上邊界路由器VBR實現跨網路域的容器網路資料包的轉寄。

相關文檔