6.3. 特定のゾーンの Topology CR を作成する


openstack namespace 内の各ゾーンに 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>
    • <topology_name> は、この Topology CR の名前 (例: zone1-node-affinity) に置き換えます。名前は一意で、小文字の英数字と - (ハイフン) または . (ピリオド) のみを使用し、先頭と末尾は英数字でなければなりません。
    • <zone_name> は、この Topology CR に関連付けられているゾーンの名前 (例: zone1) に置き換えます。
  2. 各ゾーンに複数のホストノードがある場合は、ホストのアンチアフィニティーを設定して、サービス Pod を同じゾーン内のホスト全体に分散できます。

    spec:
      ...
      topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: kubernetes.io/hostname
        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 のセットにのみ適用することができます。
  3. Topology CR を作成します。

    $ oc create -f topology_zone1.yaml
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る