6.4. すべてのゾーンに Pod を分散する Topology CR を作成する


コントロールプレーンサービス Pod をゾーン全体に分散する Topology カスタムリソース (CR) を作成します。次の手順では、サンプルの Topology CR を作成します。Pod の配置を制御する方法は、RHOCP ノード ガイドの ノードへの Pod 配置の制御 (スケジュール) を参照してください。

手順

  1. ワークステーション上に、コントロールプレーンサービス Pod をゾーン全体に分散する Topology CR を定義するファイル (例: spread_pods.yaml) を作成します。

    apiVersion: topology.openstack.org/v1beta1
    kind: Topology
    metadata:
      name: spread-pods
      namespace: openstack
    spec:
      topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: topology.kubernetes.io/zone
        whenUnsatisfiable: DoNotSchedule
        matchLabelKeys:
          - pod-template-hash
          - controller-revision-hash
    • whenUnsatisfiable: Pod が分散制約を満たさない場合にどのように処理するかを指定します。

      • DoNotSchedule: スケジューラーに Pod をスケジュールしないように指示します。これがデフォルトの動作です。デプロイメントの高可用性 (HA) を確保するには、HA サービスである rabbitmqgaleraDoNotSchedule に設定します。
      • ScheduleAnyway: スケジューラーに、スキューを最小限に抑えるトポロジーを優先して Pod を任意の場所にスケジュールするように指示します。HA サービスを ScheduleAnyway に設定すると、分散制約を満たすことができない場合、Pod は別のゾーンに配置されます。その後、ゾーンが実行可能になったときに Pod を手動で正しいゾーンに移動する必要があります。Pod を手動で移動する方法の詳細は、RHOCP ノードノードへの Pod 配置の制御 (スケジュール) を参照してください。
    • matchLabelKeys: アフィニティールールが適用される Pod をグループ化するために使用するラベルキーを指定します。このフィールドを使用して、スケジュール時に、同じ statefulset または deployment リソースの Pod にのみアフィニティールールが適用されます。matchLabelKeys フィールドを使用すると、新規 Pod でリソースを更新し、分散制約ルールを新規 Pod のセットにのみ適用することができます。
  2. 各ゾーンに複数のホストノードがある場合は、ホストのアンチアフィニティーを設定して、サービス Pod を同じゾーン内のホスト全体に分散できます。

    spec:
      topologySpreadConstraints:
      ...
      - maxSkew: 1
        topologyKey: kubernetes.io/hostname
        whenUnsatisfiable: DoNotSchedule
        matchLabelKeys:
          - pod-template-hash
          - controller-revision-hash
  3. Topology CR を作成します。

    $ oc create -f spread_pods.yaml
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る