5.3.7. topologySpreadConstraint を使用したノードプールの仮想マシンの分散


デフォルトでは、ノードプールによって作成された KubeVirt 仮想マシン (VM) は、仮想マシンを実行する容量を持つ利用可能なノードにスケジュールされます。デフォルトでは、topologySpreadConstraint 制約は複数のノードで仮想マシンをスケジュールするように設定されています。

状況によっては、ノードプールの仮想マシンが同じノード上で実行される場合があります。その場合、可用性の問題が発生する可能性があります。仮想マシンが 1 つのノードに割り当てられるのを回避するには、Descheduler を使用して、topologySpreadConstraint 制約を継続的に適用し、仮想マシンを複数のノードに分散します。

前提条件

  • Kube Descheduler Operator をインストールした。詳細は、「Descheduler のインストール」を参照してください。

手順

  • 次のコマンドを入力して KubeDescheduler カスタムリソース (CR) を開きます。SoftTopologyAndDuplicates および KubeVirtRelieveAndMigrate プロファイルを使用するように KubeDescheduler CR を変更して、topologySpreadConstraint 制約の設定を維持します。

    KubeDescheduler CR という名前の cluster は、openshift-kube-descheduler-operator namespace で実行されます。

    $ oc edit kubedescheduler cluster -n openshift-kube-descheduler-operator

    KubeDescheduler の設定例

    apiVersion: operator.openshift.io/v1
    kind: KubeDescheduler
    metadata:
      name: cluster
      namespace: openshift-kube-descheduler-operator
    spec:
      mode: Automatic
      managementState: Managed
      deschedulingIntervalSeconds: 30 
    1
    
      profiles:
      - SoftTopologyAndDuplicates   
    2
    
      - KubeVirtRelieveAndMigrate          
    3
    
      profileCustomizations:
        devDeviationThresholds: AsymmetricLow
        devActualUtilizationProfile: PrometheusCPUCombined
    # ...

    1
    Descheduler の実行サイクル間の秒数を設定します。
    2
    このプロファイルは、ソフトトポロジー制約 (whenUnsatisfiable: ScheduleAnyway) に従う Pod を退避させます。
    3
    このプロファイルは、ノード間でリソース使用量のバランスを取り、RemovePodsHavingTooManyRestartsLowNodeUtilization などのストラテジーを有効にします。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る