两地三中心同城容灾包含多活和主备,同城中心之间物理距离较近,网络延迟低,可防范 AZ 级别性质的灾难损害(如火灾、发生断网断电等);跨地域容灾则网络延迟相对较高,但可防范地域性质的灾难损害(如地震、水灾等);两地三中心则将同城双中心和跨 Region 灾备结合起来,兼具了二者优点,适用于应用与数据连续性和可用性要求高的场景。而从实际情况考虑,同城容灾相比于跨地域容灾,在数据容灾方面容易实现得多,所以
同城容灾仍然具有非常重要的意义。
现有同城容灾方案及问题
在 K8s 集群中的应用,现有的同城多可用区/多集群容灾的方案,基本都是基于 DNS 和多个 Ingres Controller 来实现,一般架构图如下所示:
虽然在 DNS 与 SLB 之间可以增加类似于全局流量管理(GTM)等一些网关功能类产品,来支持用户就近接入、高并发负载均衡、健康检查与故障切换等能力,完善容灾方案,但现有的基于 DNS 的容灾方案仍具有一些问题:
基于 DNS 的方案,无法支持七层路由转发;
基于 DNS 的方案在 IP 切换时候,通常会有 Client 端缓存而造成服务短暂不可用,用户体验有所影响;
基于 DNS 的方案通常需要多个 LB(每个集群/可用区一个),并且需要在每个集群中都安装 Ingress Controller 和创建 Ingress 对象,管理和费用成本较高。
基于 ACK One多集群网关实现的同城容灾方案
什么是 ACK One 多集群网关
多集群网关由 ACK One Fleet 通过集成 MSE 云原生网关
[
3]
来实现,并使用 Ingress API 来管理多集群南北向流量,可以帮您管理七层流量,并进一步实现同城自动容灾、基于 Header 的灰度发布验证、基于副本数和权重的流量负载均衡等多集群应用相关的所需能力。