Openshift – 在数据中心之间分配副本

我在一个有2个数据中心的客户端工作。 我们正在build立一个在两个数据中心都有节点的Openshift集群。

为了实现高可用性,我们希望应用程序至less运行2个吊舱,每个吊舱必须运行在不同的数据中心。

Openshift最好的做法是什么?

是否需要创build两个部署configuration,其中每个configuration都针对不同的数据中心节点?

还是有可能只有一个部署configuration,并且让Openshift始终保证在两个不同数据中心的两个不同节点上启动相同部署configuration的pod?

谢谢。

默认情况下,Kubernetes将尽最大努力在节点之间调度Pod,如果它们合适,并且没有规则。

如果要使用单独的部署configuration,则可以通过标记特定节点并在每个节点中设置一个nodeSelector值来安排应用程序。

但是,您不应该被要求这样做,并且可能会使用反关联性规则来根据需要安排Pod。 你仍然需要标签节点。 您可以指定同一个服务后面运行的多个Pod不应该放在一起。

附加链接到K8文档,演示了我为Zookeeper有状态集所描述的内容。 看到这里

我可以在一定程度上引导您,因为我以类似的方式部署应用程序,您正在寻找。

高可用性

对于HA,openshift将确保在任何给定时间运行的最小数量的pod (按照 RC复制控制器 configuration) 。 RC将连续监控吊舱,并在出现故障时重新部署吊舱。 在不同的数据中心运行应用程序的原因是在不同地区build立了一个HA。

部署configuration

在数据中心中运行的每个吊舱都将具有与其关联的相应部署configuration 。 您可以查看项目中关联的所有部署configuration。

不同数据中心的DCconfiguration可能是相似的,除非在环境variables以及PVC (作为该容器的外部存储的持续体积声明)有特定的变化

对于stream量路由,负载均衡器将根据configuration对stream量进行路由。

希望这有助于给你的查询概述。