本文介绍了多集群管理的两种场景,并提供了相应文档的引导。
前置概念
容灾单元
在容灾场景中,为了避免单点故障,会将多个完整独立的系统部署于多个独立的地理位置,任意一个地理位置部署的都是一个可以独立工作的完整系统,我们将这样一个单一系统称为容灾单元。
扁平网络
对于两个独立的子网(例如不同的阿里云VPC或VSwitch),如果从其中一个子网可以直接访问另外一个子网的IP,即3层(IP层)可以直接路由到另一子网,则我们认为这两个子网是扁平网络,反之则是非扁平网络。
多集群典型场景
通过服务网格ASM的多集群能力,您可以实现多种多集群部署方案。
典型场景一:多集群容灾
当您以容灾为目的构建多集群时,您的集群应当部署在多个地理位置,与此同时,您应当在这些集群所在的同一地理位置(在多云场景中,若使用了友商云集群且阿里云在对应地域未开服,则应当选择尽可能就近的地理位置)为每个集群创建专用的服务网格实例。详情参见多集群容灾。
典型场景二:多集群共享服务发现
如果您的业务在单一容灾单元(例如同一可用区、同一地域)内通过多个集群进行非对称(即每个集群中部署的业务不一样)部署,且集群间的应用可能互相调用,您可以通过将这些集群加入同一服务网格实例,以实现多个集群的服务发现信息共享,以实现无需借助网关等将服务暴露至集群外的手段,应用即可直接通过K8s服务域名进行跨集群调用。
多集群网络连通
在上述多集群场景实践中,存在跨集群访问的需求,例如在容灾场景中,本集群不可用时,会尝试跨集群调用,在这种场景下,若集群之间处于不同网络(跨VPC、跨Region、混合云等网络不互通场景),您需要先打通集群间的网络,您可以使用以下方式打通集群间的网络:
形态 | 形态描述 | 打通方式 |
阿里云跨vpc | 集群都是阿里云集群,但不在同一个VPC |
|
阿里云+ 三方云/自建集群 | 有阿里云的集群,也有三方云/自建集群 |
|
多集群流量管理
TODO多集群入口管理
TODO:地理位置负载均衡