2.3. アベイラビリティーゾーン全体での Image Registry Operator のディストリビューション

Image Registry Operator のデフォルト設定は、イメージレジストリー 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 仕様ファイルを設定することで、デフォルトの topologySpreadConstraints をオーバーライドできます。その場合、指定した制約のみが適用されます。