我在一个客户端工作,他们有两个数据中心。我们正在建立一个在两个数据中心都有节点的Openshift集群。
为了实现高可用性,我们希望应用程序至少运行2个pod,每个pod必须在不同的数据中心运行。
在Openshift中如何做得最好?
是否需要创建两个部署配置,其中每个配置都针对不同的数据中心节点?
或者是否可以只有一个部署配置,并且Openshift始终保证相同部署配置的pod在两个不同数据中心的两个不同节点中启动?
感谢。
答案 0 :(得分:0)
默认情况下,Kubernetes会尽最大努力在节点之间安排Pod,如果它们适合并且没有规则。
如果您要使用单独的部署配置,则可以通过标记特定节点并在for each中设置nodeSelector
值来安排应用程序。
但是,不应要求您执行此操作,并且可以根据需要使用anti-affinity rules来安排Pod。您仍然需要标记节点。您可以指定在同一服务后面运行的多个Pod永远不应位于同一位置。
附加K8文档的链接,该文档演示了我为Zookeeper状态集所描述的内容。见here
答案 1 :(得分:0)
我可以在某种程度上指导您,因为我以您正在寻找的类似方式部署应用程序。
高可用性:
对于HA,openshift将确保在任何给定的运行(根据 RC - 复制控制器 配置)的最小数量的pod时间。 RC将持续监控吊舱并在发生任何故障时重新部署吊舱。在不同数据中心运行应用程序的原因是跨区域使用HA。
部署配置:
在数据中心运行的每个pod都将具有与之关联的相应部署配置。您可以查看项目中关联的所有部署配置。
不同数据中心的DC配置可能类似,除非环境变量和PVC (持久卷声明,即pod的外部存储)有特定更改。
关于流量路由,负载均衡器将根据配置路由流量。
希望这有助于概述您的查询。