3.7. vSphere で稼働するノードでのハードウェアの更新
vSphere で実行されているノードが OpenShift Container Platform でサポート対象のハードウェアバージョンで実行されていることを確認する必要があります。現時点で、ハードウェアバージョン 15 以降は、クラスター内の vSphere 仮想マシンでサポートされます。
仮想ハードウェアを直ちに更新したり、vCenter で更新をスケジュールしたりできます。
- OpenShift Container Platform のバージョン 4.16 には、VMware 仮想ハードウェアバージョン 15 以降が必要です。
- OpenShift 4.12 を OpenShift 4.13 にアップグレードする前に、vSphere を v7.0.2 以降 に更新する必要があります。それ以外の場合、OpenShift 4.12 クラスターは un-upgradeable とマークされます。
3.7.1. vSphere での仮想ハードウェアの更新
VMware vSphere 上の仮想マシンのハードウェアを更新するには、仮想マシンを個別に更新し、クラスターのダウンタイムのリスクを軽減します。
OpenShift Container Platform 4.13 の時点で、VMware 仮想ハードウェアバージョン 13 はサポート対象外になりました。機能をサポートするには、VMware バージョン 15 以降に更新する必要があります。
3.7.1.1. vSphere でのコントロールプレーンノードの仮想ハードウェアの更新
ダウンタイムのリスクを軽減するには、コントロールプレーンノードを順次更新することが推奨されます。これにより、Kubernetes API が利用可能な状態を保ち、etcd はクォーラム (定足数) を維持します。
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 7.0U2 以降を使用している。
手順
- クラスターのコントロールプレーンノードをリスト表示します。 - oc get nodes -l node-role.kubernetes.io/master - $ oc get nodes -l node-role.kubernetes.io/master- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME STATUS ROLES AGE VERSION control-plane-node-0 Ready master 75m v1.29.4 control-plane-node-1 Ready master 75m v1.29.4 control-plane-node-2 Ready master 75m v1.29.4 - NAME STATUS ROLES AGE VERSION control-plane-node-0 Ready master 75m v1.29.4 control-plane-node-1 Ready master 75m v1.29.4 control-plane-node-2 Ready master 75m v1.29.4- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - コントロールプレーンノードの名前を書き留めておきます。 
- コントロールプレーンノードにスケジュール対象外 (unschedulable) のマークを付けます。 - oc adm cordon <control_plane_node> - $ oc adm cordon <control_plane_node>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								コントロールプレーンノードに関連付けられた仮想マシンをシャットダウンします。仮想マシンを右クリックし、Power Shut Down Guest OS を選択して、vSphere クライアントでこれを実行します。安全にシャットダウンされない場合があるため、Power Off を使用して仮想マシンをシャットダウンしないでください。 
- vSphere クライアントで VM を更新します。詳細は、VMware ドキュメントの Upgrade the Compatibility of a Virtual Machine Manually に従ってください。
- コントロールプレーンノードに関連付けられた仮想マシンの電源を入れます。仮想マシンを右クリックし、Power On を選択して、vSphere クライアントでこれを実行します。
- ノードが - Readyとして報告されるまで待機します。- oc wait --for=condition=Ready node/<control_plane_node> - $ oc wait --for=condition=Ready node/<control_plane_node>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コントロールプレーンノードを再度スケジュール対象としてマークします。 - oc adm uncordon <control_plane_node> - $ oc adm uncordon <control_plane_node>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- クラスター内のコントロールプレーンノードごとに、この手順を繰り返します。
3.7.1.2. vSphere でのコンピュートノードの仮想ハードウェア更新
ダウンタイムのリスクを軽減するには、コンピュートノードを順次更新することが推奨されます。
							ワークロードでは、NotReady の状態の複数のノードに対応できるという前提で、複数のコンピュートノードを並行して更新できます。管理者が責任を持って、必要なコンピュートノードを利用できる状態にしてください。
						
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 7.0U2 以降を使用している。
手順
- クラスターのコンピュートノードをリスト表示します。 - oc get nodes -l node-role.kubernetes.io/worker - $ oc get nodes -l node-role.kubernetes.io/worker- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME STATUS ROLES AGE VERSION compute-node-0 Ready worker 30m v1.29.4 compute-node-1 Ready worker 30m v1.29.4 compute-node-2 Ready worker 30m v1.29.4 - NAME STATUS ROLES AGE VERSION compute-node-0 Ready worker 30m v1.29.4 compute-node-1 Ready worker 30m v1.29.4 compute-node-2 Ready worker 30m v1.29.4- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - コンピュートノードの名前を書き留めておきます。 
- コンピュートノードにスケジュール対象外 (unschedulable) のマークを付けます。 - oc adm cordon <compute_node> - $ oc adm cordon <compute_node>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コンピュートノードから Pod を退避します。これにはいくつかの方法があります。たとえば、ノードですべてまたは選択した Pod を退避できます。 - oc adm drain <compute_node> [--pod-selector=<pod_selector>] - $ oc adm drain <compute_node> [--pod-selector=<pod_selector>]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - ノードから Pod を退避させる方法は、「ノードの Pod を退避する方法」のセクションを参照してください。 
- 
								コンピュートノードに関連付けられた仮想マシンをシャットダウンします。仮想マシンを右クリックし、Power Shut Down Guest OS を選択して、vSphere クライアントでこれを実行します。安全にシャットダウンされない場合があるため、Power Off を使用して仮想マシンをシャットダウンしないでください。 
- vSphere クライアントで VM を更新します。詳細は、VMware ドキュメントの Upgrade the Compatibility of a Virtual Machine Manually に従ってください。
- コンピュートノードに関連付けられた仮想マシンの電源を入れます。仮想マシンを右クリックし、Power On を選択して、vSphere クライアントでこれを実行します。
- ノードが - Readyとして報告されるまで待機します。- oc wait --for=condition=Ready node/<compute_node> - $ oc wait --for=condition=Ready node/<compute_node>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コンピュートノードを再度スケジュール対象としてマークします。 - oc adm uncordon <compute_node> - $ oc adm uncordon <compute_node>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- クラスター内のコンピュートノードごとに、この手順を繰り返します。
3.7.1.3. vSphere 上のテンプレートの仮想ハードウェアの更新
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 7.0U2 以降を使用している。
手順
- RHCOS テンプレートが vSphere テンプレートとして設定されている場合は、次のステップの前に、VMware ドキュメント のテンプレートを仮想マシンに変換するに 従ってください。 注記- テンプレートから変換したら、仮想マシンをパワーオンしないでください。 
- VMware vSphere クライアントで仮想マシン (VM) を更新します。Upgrade the Compatibility of a Virtual Machine Manually (VMware vSphere ドキュメント) に記載されている手順を完了します。 重要- 仮想マシン設定を変更した場合、新しい仮想ハードウェアに移動すると、その変更がリセットされる可能性があります。次の手順に進む前に、アップグレード後も設定したすべての設定がそのまま維持されていることを確認してください。 
- vSphere クライアントで仮想マシンを右クリックし、Template - Convert to Template を選択して、仮想マシンをテンプレートに変換します。 重要- 仮想マシンをテンプレートに変換する手順は、今後の vSphere ドキュメントのバージョンで変更される可能性があります。 
3.7.2. vSphere での仮想ハードウェアの更新のスケジューリング
仮想マシンの電源がオンまたは再起動時に、仮想ハードウェアの更新をスケジュールできます。VMware ドキュメントの 仮想マシンの互換性アップグレードのスケジュール に従い、仮想ハードウェアの更新だけを vCenter でスケジュールできます。
OpenShift Container Platform の更新実行前に、更新をスケジュールする場合には、OpenShift Container Platform の更新中にノードが再起動されると、仮想ハードウェアが更新されます。