2.3. Image Registry Operator 在可用区间分布

Image Registry Operator 的默认配置现在将镜像 registry pod 分散到拓扑区中,以防止在完全区失败时造成延迟恢复时间,因为所有 pod 都会受到影响。

当使用与区相关的拓扑约束部署时,Image Registry Operator 会默认使用以下内容:

使用与区相关的拓扑约束部署的 Image Registry Operator

  topologySpreadConstraints:
  - labelSelector:
      matchLabels:
        docker-registry: default
    maxSkew: 1
    topologyKey: kubernetes.io/hostname
    whenUnsatisfiable: DoNotSchedule
  - labelSelector:
      matchLabels:
        docker-registry: default
    maxSkew: 1
    topologyKey: node-role.kubernetes.io/worker
    whenUnsatisfiable: DoNotSchedule
  - labelSelector:
      matchLabels:
        docker-registry: default
    maxSkew: 1
    topologyKey: topology.kubernetes.io/zone
    whenUnsatisfiable: DoNotSchedule

当在没有与区相关的拓扑约束的情况下,Image Registry Operator 会默认使用以下内容,它适用于裸机和 vSphere 实例:

在没有区相关的拓扑约束的情况下部署 Image Registry Operator

 topologySpreadConstraints:
  - labelSelector:
      matchLabels:
        docker-registry: default
    maxSkew: 1
    topologyKey: kubernetes.io/hostname
    whenUnsatisfiable: DoNotSchedule
  - labelSelector:
      matchLabels:
        docker-registry: default
    maxSkew: 1
    topologyKey: node-role.kubernetes.io/worker
    whenUnsatisfiable: DoNotSchedule

集群管理员可以通过配置 configs.imageregistry.operator.openshift.io/cluster spec 文件来覆盖默认的 topologySpreadConstraints。在这种情况下,只有您提供的约束会被应用。