9.17.13.3. 仮想マシンの descheduler 退避の設定
descheduler をインストールして設定すると、すべての移行可能な仮想マシン (VM) がデフォルトで退避の対象になります。descheduler を設定して、クラスター全体の仮想マシン退避を管理し、オプションで特定の仮想マシンを退避から除外することができます。
前提条件
-
descheduler を OpenShift Container Platform Web コンソールまたは OpenShift CLI (
oc) にインストールしている。
手順
- 仮想マシンを停止します。
KubeVirtRelieveAndMigrateプロファイルを使用してKubeDeschedulerオブジェクトを設定し、バックグラウンド退避を有効にして、ライブマイグレーション中の仮想マシン退避の安定性を向上させます。apiVersion: operator.openshift.io/v1 kind: KubeDescheduler metadata: name: cluster namespace: openshift-kube-descheduler-operator spec: deschedulingIntervalSeconds: 60 profiles: - KubeVirtRelieveAndMigrate mode: Automatic-
オプション: Pod を退避させるには、
modeフィールドの値をAutomaticに設定します。デフォルトでは、descheduler は Pod を退避しません。 オプション: 大規模なクラスターの安定性を向上させるために、並列退避の数の制限を設定します。
descheduler は、
evictionLimitsフィールドを使用して、ノードごとおよびクラスター全体での同時退避の数を制限できます。これらの制限は、HyperConvergedカスタムリソース (CR) で設定された移行制限と一致するように設定します。spec: evictionLimits: node: 2 total: 5HyperConvergedCR の移行制限に対応する値を設定します。spec: liveMigrationConfig: parallelMigrationsPerCluster: 5 parallelOutboundMigrationsPerNode: 2オプション: 仮想マシンを退避から除外するには、
descheduler.alpha.kubernetes.io/prefer-no-evictionをspec.template.metadata.annotationsフィールドに追加します。変更は動的に適用され、VirtualMachineInstance(VMI) オブジェクトとvirt-launcherPod に伝播されます。アノテーションの存在のみがチェックされます。この値は評価されないため、
"true"および"false"を設定しても結果は同じです。apiVersion: kubevirt.io/v1 kind: VirtualMachine spec: template: metadata: annotations: descheduler.alpha.kubernetes.io/prefer-no-eviction: "true"- 仮想マシンを起動します。
結果
仮想マシンは descheduler 設定に従って設定されました。