6.3. 为特定区创建 Topology CR


openstack 命名空间中的每个区域创建一个 Topology 自定义资源(CR)。您可以将 pod 调度到其中一个区中运行。以下流程创建示例 Topology CR。重复上述步骤,为环境中的每个区域创建 Topology CR。

流程

  1. 在工作站上创建一个文件,为区定义 Topology CR,如 topology_zone1.yaml

    apiVersion: topology.openstack.org/v1beta1
    kind: Topology
    metadata:
      name: <topology_name>
      namespace: openstack
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: topology.kubernetes.io/zone
                    operator: In
                    values:
                      - <zone_name>
    Copy to Clipboard Toggle word wrap
    • <topology_name > 替换为此 Topology CR 的名称,如 zone1-node-affinity。名称必须是唯一的,仅包含小写字母数字字符和 -(hyphens)或 . (periods),以字母数字字符开头和结尾。
    • <zone_name > 替换为与此 Topology CR 关联的区名称,如 zone1
  2. 如果每个区中有多个主机节点,您可以配置主机反关联性,将服务 pod 分散到同一区的主机中:

    spec:
      ...
      topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: kubernetes.io/hostname
        whenUnsatisfiable: DoNotSchedule 
    1
    
        matchLabelKeys: 
    2
    
          - pod-template-hash
          - controller-revision-hash
    Copy to Clipboard Toggle word wrap
    1
    指定调度程序在不满足分布式约束的情况下如何处理 pod:
    • DoNotSchedule :构建调度程序而不是调度 pod。这是默认的行为。为确保部署具有高可用性(HA),请将 HA 服务 rabbitmqgalera 设置为 DoNotSchedule
    • ScheduleAnyway :构建调度程序以在任何位置调度 pod,但为拓扑赋予更高的优先级,以最小化 skew。如果您设置了 HA 服务 ScheduleAnyway,则当无法满足分布式约束时,该 pod 将放置到不同的区域中。然后,在区正常工作后,您必须手动将 pod 移到正确的区。有关如何手动移动 pod 的更多信息,请参阅 RHOCP 节点中的 控制 pod 放置到节点上
    2
    指定用于对关联性规则应用到的 pod 进行分组的标签键,以确保在调度时将关联性规则仅应用到来自同一 statefulsetdeployment 资源的 pod。matchLabelKeys 字段可让资源使用新 pod 更新,而分散约束规则仅应用到新的 pod 集合。
  3. 创建 Topology CR:

    $ oc create -f topology_zone1.yaml
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat