6.3. 为特定区创建 Topology CR
为 openstack 命名空间中的每个区域创建一个 Topology 自定义资源(CR)。您可以将 pod 调度到其中一个区中运行。以下流程创建示例 Topology CR。重复上述步骤,为环境中的每个区域创建 Topology CR。
流程
在工作站上创建一个文件,为区定义
TopologyCR,如topology_zone1.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<topology_name> 替换为此TopologyCR 的名称,如zone1-node-affinity。名称必须是唯一的,仅包含小写字母数字字符和 -(hyphens)或 . (periods),以字母数字字符开头和结尾。 -
将
<zone_name> 替换为与此TopologyCR 关联的区名称,如zone1。
-
将
如果每个区中有多个主机节点,您可以配置主机反关联性,将服务 pod 分散到同一区的主机中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定调度程序在不满足分布式约束的情况下如何处理 pod:
-
DoNotSchedule:构建调度程序而不是调度 pod。这是默认的行为。为确保部署具有高可用性(HA),请将 HA 服务rabbitmq和galera设置为DoNotSchedule。 -
ScheduleAnyway:构建调度程序以在任何位置调度 pod,但为拓扑赋予更高的优先级,以最小化 skew。如果您设置了 HA 服务ScheduleAnyway,则当无法满足分布式约束时,该 pod 将放置到不同的区域中。然后,在区正常工作后,您必须手动将 pod 移到正确的区。有关如何手动移动 pod 的更多信息,请参阅 RHOCP 节点中的 控制 pod 放置到节点上。
-
- 2
- 指定用于对关联性规则应用到的 pod 进行分组的标签键,以确保在调度时将关联性规则仅应用到来自同一
statefulset或deployment资源的 pod。matchLabelKeys字段可让资源使用新 pod 更新,而分散约束规则仅应用到新的 pod 集合。
创建
TopologyCR:oc create -f topology_zone1.yaml
$ oc create -f topology_zone1.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 在 RHOCP 节点上控制节点上的 pod 放置(调度)