對於當前業務運行在IDC或第三方公用雲的Kubernetes叢集中的系統架構,如果希望通過雲端運算為雲下業務提供同城災備的高可用冗餘能力,可利用阿里雲分布式雲容器平台 ACK One來提供統一的流量、應用和叢集管理,實現業務流量的多叢集路由和災難情況下流量的自動平滑容災。本文主要介紹如何通過ACK One快速構建混合雲同城容災系統。
混合雲同城容災系統架構
基於ACK One的註冊叢集、多叢集艦隊(GitOps可選)、多叢集網關構建的混合雲情境的同城多活容災系統如上圖所示:
阿里雲的雲上資源都在1個VPC中(如圖中VPC 1),在AZ1建立ACK叢集,在AZ2中建立註冊叢集;
將IDC或第三方公用雲的Kubernetes叢集,通過註冊叢集註冊到阿里雲;並使用專線打通IDC與雲上VPC的網路,實現雲上雲下網路互連互聯;
關聯ACK叢集和註冊叢集到同個VPC(VPC 1)下的ACK One Fleet執行個體,並通過ACK One GitOps向ACK叢集和註冊叢集發布應用;
在ACK One Fleet中,通過MseIngressConfig建立MSE網關,並將叢集添加到網關,然後通過在Fleet中建立Ingress設定流量路由規則,來管理南北向流量以及實現同城容災。
構建混合雲同城容災系統流程
步驟一:規劃網路並建立ACK One Fleet執行個體
ACK One Fleet、ACK叢集、註冊叢集在相同VPC下。
ACK叢集和註冊叢集在不同的AZ。
艦隊管理網路規劃請參見艦隊管理網路規劃。
步驟二:使用ACK One註冊叢集管理IDC/第三方公用雲Kubernetes叢集
請參見通過註冊叢集統一管理任意環境下的Kubernetes叢集管理叢集。主要流程如下:
建立註冊叢集。
通過YAML將目的地組群接入註冊叢集。
如果您的註冊叢集需要將工作負載彈性到雲上,請參見構建混合彈性容器叢集(彈性ECS)和通過虛擬節點將Pod調度到ECI上運行。
如需應對大量突發情況,可對ECI進行高可用配置,請參見建立多可用性區域的ECI Pod。
步驟三:雲下網路與雲上VPC的互聯互連
將雲下IDC網路與雲上VPC網路進行串連,請參見VPC與本地IDC串連。
採用專線連通雲上雲下網路的方案,請參見混合網路概述。主要流程如下:
將雲下網路通過物理專線接入阿里雲。
阿里雲提供的專線接入方案,請參見物理專線串連。
建立專線串連本機資料中心邊緣網路裝置與雲上網關裝置邊界路由器。
將雲上邊界路由器與雲上Virtual Private Cloud加入同一個雲企業網。
配置雲上邊界路由器和本機資料中心BGP網路。
雲上雲下連通性測試。
配置雲下網路到雲上雲產品內網IP位址區段的路由。具體操作如下。
ACR:ACK組件內網鏡像地址與路由網段對照表。
Prometheus:Prometheus內網網域名稱與路由網段對照表。
OSS:OSS內網網域名稱與VIP網段對照表。
步驟四:關聯註冊叢集和ACK叢集到ACK One Fleet
具體操作,請參見管理關聯集群。
步驟五:使用GitOps發布應用到多個叢集
具體操作,請參見使用GiOps部署應用到多個叢集。
步驟六:基於多叢集網關實現同城容災
具體操作,請參見基於ACK One MSE多叢集網關實現同城容災。主要流程如下:
在ACK One Fleet中開啟多叢集網關能力;
在Fleet中通過建立MseIngressConfig來建立網關,並添加ACK叢集和註冊叢集到網關;
在Fleet中建立路由規則(Ingress)實現同城容災。
相關文檔
ACK One詳細功能介紹,請參見ACK One概述。