混合雲節點池接入本地IDC,其複雜的網路拓撲和跨域路由需求超出了常規容器網路外掛程式的能力範圍。Terway Hybrid網路外掛程式專為混合雲節點池設計,它能確保叢集內Pod(處於IDC或雲端)之間的網路互連。
工作原理
ACK混合雲節點池的整體網路架構如下,整體分為兩個網路域:阿里雲中心雲VPC和本地IDC(如果存在多個IDC或者三方雲和中心雲互聯,則有多個網路域)。兩個網路域之間通過專線實現三層內網互連。其中中心VPC的ACK叢集可採用Flannel/Terway網路外掛程式,本地IDC採用Terway Hybrid網路外掛程式。
Terway Hybrid模式選擇
Terway Hybrid在節點池層級提供了兩種模式,請在建立混合雲節點池時進行配置。
對比項 | Underlay模式 | Overlay模式 |
優勢 | 效能高,無VXLAN封包開銷,網路延遲低。相比Overlay模式效能提升約20%。 | 配置簡單,對底層網路無特殊要求,部署靈活。 |
網路要求 | 節點之間需要二層網路域互連。若節點分布在不同三層網路域,則必須配置BGP協議宣告容器路由。 | 節點之間僅需三層內網互連。 |
容器網路路徑 | 容器通訊資料包直接通過主機網卡進行三層通訊傳輸。 | 容器網路資料包通過虛擬網卡進行VXLAN封包,藉助主機網路8472連接埠進行UDP傳輸。 |
適用範圍
已建立ACK託管叢集Pro版,版本為1.33及以上。
叢集如果使用flannel網路外掛程式,版本為v0.15.1.23及以上。
使用混合雲節點池時,同時保有ECS節點,用於部署部分ACK管控組件(建議使用3個及以上ECS節點以保證高可用)。
操作步驟
步驟一:打通跨雲網路
在安裝Terway Hybrid外掛程式前,需要先確保跨雲網路互連:
建議使用Express Connect構建專線,打通VPC和本地IDC之間的主機網路。同時需要配置VPC路由表、專線網關中路由條目。
如本地IDC需主動訪問阿里雲產品,請在本地IDC核心交換器中添加阿里雲產品網段100.64.0.0/10的路由條目,請參見專線接入配置私網串連。
如果雲上資源需要訪問IDC內的Pod,IDC核心交換器需支援BGP協議,具體操作請參見步驟三:將容器向外暴露。
步驟二:安裝外掛程式
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理。
安裝控制面組件terway-hybrid-controlplane。
配置項
說明
混合雲容器網段
混合雲節點池使用的容器網段,不能與現有Service網段、Pod網段、雲端節點網段、本地IDC節點網段重合。
混合雲容器網段掩碼大小
為混合雲節點池中每個節點劃分容器網段掩碼大小。例如設定為24時,每個節點都將使用
xxx.xxx.xxx.0/24作為容器網段,支援256個Pod IP。源地址轉換
混合雲節點的Pod訪問叢集外部地址時,是否將其源IP地址轉換為節點IP地址。
如選擇關閉,請確保外部網路裝置可解析Pod IP,請參見步驟三:將容器向外暴露。
安裝資料面組件terway-hybrid,無需配置參數。後續添加的混合雲節點將自動安裝Terway Hybrid外掛程式。
步驟三:將容器向外暴露
如果本地IDC外的網路裝置(例如中心VPC、叢集外裝置)需直接存取容器,請配置BGP將容器的路由資訊動態宣告給交換器。
在叢集內建立BGP配置
Terway Hybrid定義了BGPClusterConfig CRD,其中儲存了BGP配置,並通過nodeSelector關聯到一個混合雲節點池。
Terway Hybrid預設不建立該資源,請為需要使用BGP的每個混合雲節點池都建立一個BGPClusterConfig。使用以下代碼建立名為
bgpclusterconfig.yaml的檔案。apiVersion: network.alibabacloud.com/v1beta1 kind: BGPClusterConfig metadata: name: bgp spec: localASN: 65010 nodeSelector: matchLabels: alibabacloud.com/nodepool-id: "np-xxx" bgpSpeakers: - name: hybrid-node-1 peers: - name: switch-1 peerASN: 65001 peerAddress: "10.10.0.1" - name: hybrid-node-2 peers: - name: switch-1 peerASN: 65001 peerAddress: "10.10.0.1" #可選項 authPassword: secretKeyRef: name: bgp-secret key: password --- #可選項 apiVersion: v1 kind: Secret metadata: name: bgp-secret namespace: kube-system type: Opaque data: password: bXxXXXxXXXXXx== # base64編碼的值。參數
是否必填
說明
metadata.name是
BGPClusterConfig在叢集中的名稱。spec.localASN是
自治系統編號(ASN),用於標識BGP Speaker所在的網路。推薦使用私人ASN,範圍為[64512. 65535]。
spec.nodeSelector是
指定此BGP配置將應用在哪些節點上,建議使用label選擇一個混合雲節點池中的所有節點。
spec.bgpSpeakers是
從已關聯節點中選擇BGP Speaker節點,這些節點將負責宣告Pod的路由。
建議選擇2個及以上節點,避免單點故障。
spec.bgpSpeakers.name是
BGP Speaker節點的名稱,必須與
spec.nodeSelector選中的節點名一致。spec.bgpSpeakers.peers是
與此BGP Speaker建立對等會話(BGP Peering)的裝置列表,通常是接入層交換器。
spec.bgpSpeakers.peers.name是
對端BGP Peer的裝置名稱。
spec.bgpSpeakers.peers.peerASN是
對端BGP Peer的自治系統編號(ASN)。
spec.bgpSpeakers.peers.peerAddress是
對端BGP Peer的IP地址。
spec.bgpSpeakers.peers.authPassword否
用於配置BGP會話認證密碼,通過引用Secret資源擷取。Secret必須處於
kube-system命名空間。建立BGPClusterConfig。
kubectl apply -f bgpclusterconfig.yaml
配置外部網路裝置
在本地IDC的網路裝置中啟用BGP服務,將在叢集內建立BGP配置中選擇的BGP節點配置為BGP Peer。然後在中心VPC路由表、專線網關和IDC核心交換器上,都添加指向IDC容器網段的路由。配置完成後,確認可以和叢集中的Pod成功建立BGP會話。
Terway Hybrid預設開啟BGP GracefulRestart,預設時間為600秒,請您合理配置交換器的BGP GracefulRestart。