13.2. エビクションと実行ストラテジーの設定
仮想マシン (VM) またはクラスターのエビクションストラテジーを設定できます。デフォルトの強制退避ストラテジーは LiveMigrate であり、これにより、ノードがメンテナンスモードになったり、ドレインされたりした場合でも、仮想マシンインスタンス (VMI) が中断されないことが保証されます。
| エビクションストラテジー | 説明 | ワークフローを中断する | アップグレードをブロックする |
|---|---|---|---|
|
| アップグレードよりもワークロードの継続性を優先します。 | いいえ | はい 2 |
|
| ワークロードの継続性よりもアップグレードを優先して、環境が確実に更新されるようにします。 | はい | いいえ |
|
| エビクションストラテジーを使用せずに仮想マシンをシャットダウンします。 | はい | いいえ |
- マルチノードクラスターのデフォルトのエビクションストラテジー。
- 仮想マシンがアップグレードをブロックする場合は、仮想マシンを手動でシャットダウンする必要があります。
- シングルノード OpenShift のデフォルトのエビクションストラテジー。
13.2.1. CLI を使用した仮想マシンのエビクションストラテジーの設定 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して、仮想マシン (VM) のエビクションストラテジーを設定できます。
デフォルトのエビクションストラテジーは LiveMigrate です。移行不可能な仮想マシンが LiveMigrate エビクションストラテジーを使用していると、ノードの drain (Pod の退避) が妨げられたり、インフラストラクチャーのアップグレードがブロックされたりする可能性があります。これは、その仮想マシンがノードからエビクトされないためです。この状況では、仮想マシンを手動でシャットダウンしない限り、移行は Pending または Scheduling 中の状態のままになります。
移行不可能な仮想マシンのエビクションストラテジーを、アップグレードをブロックしない LiveMigrateIfPossible に設定する必要があります。移行すべきでない仮想マシンの場合は、None に設定する必要があります。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
次のコマンドを実行して、
VirtualMachineリソースを編集します。$ oc edit vm <vm_name> -n <namespace>退避ストラテジーの例:
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: <vm_name> spec: template: spec: evictionStrategy: LiveMigrateIfPossible # ...-
spec.template.spec.evictionStrategyは、エビクションストラテジーを定義します。デフォルト値はLiveMigrateです。
-
仮想マシンを再起動して変更を適用します。
$ virtctl restart <vm_name> -n <namespace>