对于当前业务运行在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连接。
采用专线连通云上云下网络的方案,请参见混合网络概述。主要流程如下:
将云下网络通过物理专线接入阿里云。
阿里云提供的专线接入方案,请参见物理专线连接。
创建专线连接本地数据中心边缘网络设备与云上网关设备边界路由器。
将云上边界路由器与云上专有网络VPC加入同一个云企业网。
配置云上边界路由器和本地数据中心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概述。