5.3.7. topologySpreadConstraint を使用したノードプールの仮想マシンの分散
デフォルトでは、ノードプールによって作成された KubeVirt 仮想マシン (VM) は、仮想マシンを実行する容量を持つ利用可能なノードにスケジュールされます。デフォルトでは、topologySpreadConstraint 制約は複数のノードで仮想マシンをスケジュールするように設定されています。
状況によっては、ノードプールの仮想マシンが同じノード上で実行される場合があります。その場合、可用性の問題が発生する可能性があります。仮想マシンが 1 つのノードに割り当てられるのを回避するには、Descheduler を使用して、topologySpreadConstraint 制約を継続的に適用し、仮想マシンを複数のノードに分散します。
前提条件
- Kube Descheduler Operator をインストールした。詳細は、「Descheduler のインストール」を参照してください。
手順
次のコマンドを入力して
KubeDeschedulerカスタムリソース (CR) を開きます。SoftTopologyAndDuplicatesおよびKubeVirtRelieveAndMigrateプロファイルを使用するようにKubeDeschedulerCR を変更して、topologySpreadConstraint制約の設定を維持します。KubeDeschedulerCR という名前のclusterは、openshift-kube-descheduler-operatornamespace で実行されます。$ oc edit kubedescheduler cluster -n openshift-kube-descheduler-operatorKubeDeschedulerの設定例apiVersion: operator.openshift.io/v1 kind: KubeDescheduler metadata: name: cluster namespace: openshift-kube-descheduler-operator spec: mode: Automatic managementState: Managed deschedulingIntervalSeconds: 301 profiles: - SoftTopologyAndDuplicates2 - KubeVirtRelieveAndMigrate3 profileCustomizations: devDeviationThresholds: AsymmetricLow devActualUtilizationProfile: PrometheusCPUCombined # ...