6.7.2. Pod のアンチアフィニティーを使用するノードの再起動


ノードの正常な再起動を実行する前に、Pod アンチアフィニティーを使用して、ノード上のワークロードを他のノードに分散させることができます。

Pod のアンチアフィニティーは、ノードのアンチアフィニティーとは若干異なります。ノードのアンチアフィニティーの場合、Pod のデプロイ先となる適切な場所が他にない場合には違反が生じる可能性があります。Pod のアンチアフィニティーの場合は required (必須) または preferred (優先) のいずれかに設定できます。

これが有効になっていると、2 つのインフラストラクチャーノードのみが利用可能で、1 つのノードが再起動される場合に、コンテナーイメージレジストリー Pod は他のノードで実行できなくなります。oc get pods は、適切なノードが利用可能になるまで Pod を Unready (準備が未完了) として報告します。ノードが利用可能になり、すべての Pod が Ready (準備ができている) 状態に戻ると、次のノードを再起動することができます。

以下の手順では、Pod アンチアフィニティーを使用してノードを再起動する方法を示します。

手順

  1. ノードの仕様を編集して Pod のアンチアフィニティーを設定します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: with-pod-antiaffinity
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: registry
                  operator: In
                  values:
                  - default
              topologyKey: kubernetes.io/hostname
    #...

    各項目の説明:

    spec.affinity.podAntiAffinity
    Pod のアンチアフィニティーを設定するスタンザを指定します。
    spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
    優先ルールを指定します。
    spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
    preferred (優先) ルールの重みを指定します。最も高い重みを持つノードが優先されます。
    spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.key
    アンチアフィニティールールが適用されるタイミングを決定する Pod ラベルを指定します。ラベルのキーと値を定義します。
    spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator

    既存の Pod のラベルと、新しい Pod の仕様における matchExpression パラメーターの値のセットとの間の関係を指定します。これには InNotInExists、または DoesNotExist のいずれかを使用できます。

    この例では、コンテナーイメージレジストリー Pod に registry=default のラベルがあることを想定しています。Pod のアンチアフィニティーでは任意の Kubernetes の一致式を使用できます。

  2. スケジューリングポリシーファイルで、MatchInterPodAffinity スケジューラー述語を有効にします。
  3. ノードのグレースフルな再起動を実行します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る