7.3. EUS から EUS への更新中のワークロード更新の防止
ある Extended Update Support (EUS) バージョンから次のバージョンに更新する場合、自動ワークロード更新を手動で無効にして、更新プロセス中に OpenShift Virtualization がワークロードを移行または削除しないようにする必要があります。
前提条件
- OpenShift Container Platform の EUS バージョンを実行中で、次の EUS バージョンに更新する予定である。その間、奇数番号のバージョンにまだ更新していません。
- 「EUS から EUS への更新を実行するための準備」を読み、OpenShift Container Platform クラスターに関連する警告と要件を学習しました。
- OpenShift Container Platform ドキュメントの指示に従って、ワーカーノードのマシン設定プールを一時停止しました。
- デフォルトの Automatic 承認ストラテジーを使用することを推奨します。Manual 承認ストラテジーを使用する場合は、Web コンソールで保留中のすべての更新を承認する必要があります。詳細は、「保留中の Operator の更新を手動で承認する」セクションを参照してください。
手順
次のコマンドを実行して、現在の
workloadUpdateMethods
設定をバックアップします。$ WORKLOAD_UPDATE_METHODS=$(oc get kv kubevirt-kubevirt-hyperconverged -n openshift-cnv -o jsonpath='{.spec.workloadUpdateStrategy.workloadUpdateMethods}')
次のコマンドを実行して、すべてのワークロード更新方法をオフにします。
$ oc patch hco kubevirt-hyperconverged -n openshift-cnv --type json -p '[{"op":"replace","path":"/spec/workloadUpdateStrategy/workloadUpdateMethods", "value":[]}]'
出力例
hyperconverged.hco.kubevirt.io/kubevirt-hyperconverged patched
続行する前に、
HyperConverged
Operator がアップグレード可能
であることを確認してください。次のコマンドを入力して、出力をモニターします。$ oc get hco kubevirt-hyperconverged -n openshift-cnv -o json | jq ".status.conditions"
例7.1 出力例
[ { "lastTransitionTime": "2022-12-09T16:29:11Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "True", "type": "ReconcileComplete" }, { "lastTransitionTime": "2022-12-09T20:30:10Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "True", "type": "Available" }, { "lastTransitionTime": "2022-12-09T20:30:10Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "False", "type": "Progressing" }, { "lastTransitionTime": "2022-12-09T16:39:11Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "False", "type": "Degraded" }, { "lastTransitionTime": "2022-12-09T20:30:10Z", "message": "Reconcile completed successfully", "observedGeneration": 3, "reason": "ReconcileCompleted", "status": "True", "type": "Upgradeable" 1 } ]
- 1
- OpenShift Virtualization Operator のステータスは
Upgradeable
です。
クラスターをソース EUS バージョンから OpenShift Container Platform の次のマイナーバージョンに手動で更新します。
$ oc adm upgrade
検証
次のコマンドを実行して、現在のバージョンを確認します。
$ oc get clusterversion
注記OpenShift Container Platform を次のバージョンに更新することは、OpenShift Virtualization を更新するための前提条件です。詳細は、OpenShift Container Platform ドキュメントの「クラスターの更新」セクションを参照してください。
OpenShift Virtualization を更新します。
- デフォルトの 自動 承認ストラテジーでは、OpenShift Container Platform を更新した後、OpenShift Virtualization は対応するバージョンに自動的に更新します。
- 手動 承認ストラテジーを使用する場合は、Web コンソールを使用して保留中の更新を承認します。
次のコマンドを実行して、OpenShift Virtualization の更新をモニターします。
$ oc get csv -n openshift-cnv
- OpenShift Virtualization を非 EUS マイナーバージョンで使用可能なすべての z-stream バージョンに更新し、前の手順で示したコマンドを実行して各更新を監視します。
以下のコマンドを実行して、OpenShift Virtualization が非 EUS バージョンの最新の z-stream リリースに正常に更新されたことを確認します。
$ oc get hco kubevirt-hyperconverged -n openshift-cnv -o json | jq ".status.versions"
出力例
[ { "name": "operator", "version": "4.13.11" } ]
次の更新を実行する前に、
HyperConverged
Operator がUpgradeable
ステータスになるまで待ちます。次のコマンドを入力して、出力をモニターします。$ oc get hco kubevirt-hyperconverged -n openshift-cnv -o json | jq ".status.conditions"
- OpenShift Container Platform をターゲットの EUS バージョンに更新します。
クラスターのバージョンを確認して、更新が成功したことを確認します。
$ oc get clusterversion
OpenShift Virtualization をターゲットの EUS バージョンに更新します。
- デフォルトの 自動 承認ストラテジーでは、OpenShift Container Platform を更新した後、OpenShift Virtualization は対応するバージョンに自動的に更新します。
- 手動 承認ストラテジーを使用する場合は、Web コンソールを使用して保留中の更新を承認します。
次のコマンドを実行して、OpenShift Virtualization の更新をモニターします。
$ oc get csv -n openshift-cnv
VERSION
フィールドがターゲットの EUS バージョンと一致し、PHASE
フィールドがSucceeded
になると、更新が完了します。バックアップしたワークロードの更新方法の設定を復元します。
$ oc patch hco kubevirt-hyperconverged -n openshift-cnv --type json -p "[{\"op\":\"add\",\"path\":\"/spec/workloadUpdateStrategy/workloadUpdateMethods\", \"value\":$WORKLOAD_UPDATE_METHODS}]"
出力例
hyperconverged.hco.kubevirt.io/kubevirt-hyperconverged patched
検証
次のコマンドを実行して、VM 移行のステータスを確認します。
$ oc get vmim -A
次のステップ
- ワーカーノードのマシン設定プールの一時停止を解除できるようになりました。