我有一个 OpenShift 集群,它横跨两个物理上分离的数据中心,以实现地理冗余。节点根据其位置进行标记。
现在,我正在寻找一种配置调度程序的方法,以便如果一个 pod 使用一个副本(位于两个数据中心之一)运行,并且启动了另一个副本,则另一个副本会在其他数据中心启动?因此,如果部署以偶数个副本运行,副本是否会均匀分布在两个数据中心之间?
我搜索了 pod/node 亲和性文档以及调度程序配置,但没有找到我需要的任何内容。也许我只是谷歌搜索错了?
任何帮助是极大的赞赏。
答案1
例如,如果你给节点指定了一个标签地点,使用以下命令检查标签
oc get nodes --show-labels
ServiceAntiAffinity 采用标签,并根据标签值确保属于同一服务的 Pod 在节点组中良好分布
/etc/origin/master/scheduler.json
您可以在文件中添加以下内容
{
"argument": {
"serviceAntiAffinity": {
"label": "location"
}
},
"name": "Location",
"weight": 2
}