This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.8. 使用 pod 拓扑分布限制控制 pod 放置
您可以使用 pod 拓扑分布约束来控制 pod 在节点、区、区域或其他用户定义的拓扑域间的放置。
4.8.1. 关于 pod 拓扑分布限制 复制链接链接已复制到粘贴板!
通过使用 pod 拓扑分布约束,您可以对故障域中的 pod 分布提供精细的控制,以帮助实现高可用性和更有效的资源使用。
OpenShift Container Platform 管理员可以标记节点以提供拓扑信息,如区域、区、节点或其他用户定义域。在节点上设置了这些标签后,用户才能定义 pod 拓扑分布约束,以控制 pod 在这些拓扑域中的放置。
您可以指定哪些 pod 要分组在一起,它们分散到哪些拓扑域以及可以接受的基点。只有同一命名空间中的 pod 在因为约束而分散时才会被匹配和分组。
4.8.2. 配置 pod 拓扑分布限制 复制链接链接已复制到粘贴板!
以下步骤演示了如何配置 pod 拓扑扩展约束,以根据区分配与指定标签匹配的 pod。
您可以指定多个 pod 拓扑分散约束,但您必须确保它们不会相互冲突。必须满足所有 pod 拓扑分布约束才能放置 pod。
先决条件
- 集群管理员已将所需的标签添加到节点。
流程
创建
Pod
spec 并指定 pod 拓扑分散约束:pod-spec.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 两个拓扑域间的 pod 数量的最大差别。默认为
1
,您不能指定0
值。 - 2
- 节点标签的密钥。具有此键和相同值的节点被视为在同一拓扑中。
- 3
- 如果不满足分布式约束,如何处理 pod。默认为
DoNotSchedule
,它会告诉调度程序不要调度 pod。设置为ScheduleAnyway
,它仍然会调度 pod,但调度程序会优先考虑 skew 的根据情况以使集群不要出现不平衡的情况。 - 4
- 匹配此标签选择器的 Pod 在分发时被计算并识别为组,以满足约束要求。确保指定标签选择器,否则就无法匹配 pod。
- 5
- 如果您希望以后正确计数此 Pod 规格,请确保此
Pod
spec 也会设置其标签选择器来匹配这个标签选择器。
创建 pod:
oc create -f pod-spec.yaml
$ oc create -f pod-spec.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.3. pod 拓扑分布限制示例 复制链接链接已复制到粘贴板!
以下示例演示了 pod 拓扑分散约束配置。
4.8.3.1. 单个 pod 拓扑分布约束示例 复制链接链接已复制到粘贴板!
此 Pod
spec 示例定义了一个 pod 拓扑分散约束。它与标记为 region: us-east
的 pod 匹配:在区域间分布,指定 skew 1
,并在不满足这些要求时不调度 pod。
4.8.3.2. 多个 pod 拓扑分布约束示例 复制链接链接已复制到粘贴板!
此 Pod
spec 示例定义了两个 pod 拓扑分布限制。在标有 region: us-east
的 pod 上匹配:指定 skew 1
,并在不满足这些要求时不调度 pod。
第一个限制基于用户定义的标签 node
发布 pod,第二个约束根据用户定义的标签 rack
分发 pod。调度 pod 必须满足这两个限制。