在多中心多云环境下,可将容器云部署为多活和灾备模式,通过全局负载均衡器实现应用的多中心多活与灾备。容器应用跨数据中心的双活,是将一个应用的不同副本部署到不同的数据中心,如图 1 所示的 Database 应用。
图1 Database应用双活
图 1 中的方案设计的两个重要的技术点。
(1)三个不同区域将有三个OpenShift集群。每个集群都有一个有状态的工作负载实例,工作负载实例是一个数据库。
(2)实例可以通过在OpenShift的SDN之间建立的网络隧道相互通信,使用Submariner技术实现。
在容器云上的应用多活,更多是采用一个应用在多数据中心部署多份的方案,跨中心多活需要从全局负载均衡、集群配置、存储、应用数据缓存、数据库这五个层面进行相应配置工作,如图 2 所示。
图 2 容器云的双活
1、全局负载均衡层:
(1)使用负载均衡器,为多个数据中心的容器云提供统一的入口流量;每个集群的Route服务域名应保持相同;
(2)全局负载均衡层需要配置每个应用所对应的集群分发地址,并根据集群中所给的资源配比配置权重。
2、数据库层:
(1)将MySQL部署到物理机上;数据库采用MySQL主从复制的方式,可以一主多从;从数据中心写数据库需访问主库;
(2)两个数据中心可以实现 MySQL的读写分离,即主中心的数据读写主库,从中心读从库、写主库。
3、存储层:
(1)基于分布式存储同步能力,每个中心的PaaS平台使用本中心内的存储资源,只有当集群和异地存储的时间延迟和网络抖动满足应用的要求时,才会做跨中心的存储访问。
4、集群配置层:
(1)应用部署时,不同集群可以使用独立的镜像库,以提升镜像的获取速度;各集群中的服务信息应保持一致,服务名称、外部地址应相同;
(2)同一应用容器使用的PV/PVC应保持一致。
5、应用数据缓存层:
(1)如果使用Redis集群,做跨集群的异步复制。
(2)对于单纯的读缓存的数据,由应用系统进行初始化以及灾备切换后的初始化之后,从数据库中读取。对于会话性缓存数据,PaaS端发生多活切换后,客户端应用不重新构建会话数据,则需要单独搭建数据缓存的跨中心复制功能。
(3)每个数据中心的应用,只访问各自数据中心的缓存,不跨集群访问。
标签:容器,数据中心,负载,集群,应用,多活,双活,灾备 From: https://blog.51cto.com/u_15735635/5960052