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
出力例
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
コントロールプレーンノードの名前を書き留めておきます。
コントロールプレーンノードにスケジュール対象外 (unschedulable) のマークを付けます。
$ oc adm cordon <control_plane_node>
-
コントロールプレーンノードに関連付けられた仮想マシンをシャットダウンします。仮想マシンを右クリックし、Power
Shut Down Guest OS を選択して、vSphere クライアントでこれを実行します。安全にシャットダウンされない場合があるため、Power Off を使用して仮想マシンをシャットダウンしないでください。 - vSphere クライアントで VM を更新します。詳細は、VMware ドキュメントの 仮想マシンの互換性を手動でアップグレードするに 従ってください。
- コントロールプレーンノードに関連付けられた仮想マシンの電源を入れます。仮想マシンを右クリックし、Power On を選択して、vSphere クライアントでこれを実行します。
ノードが
Ready
として報告されるまで待機します。$ oc wait --for=condition=Ready node/<control_plane_node>
コントロールプレーンノードを再度スケジュール対象としてマークします。
$ oc adm uncordon <control_plane_node>
- クラスター内のコントロールプレーンノードごとに、この手順を繰り返します。
3.7.1.2. vSphere でのコンピュートノードの仮想ハードウェア更新
ダウンタイムのリスクを軽減するには、コンピュートノードを順次更新することが推奨されます。
ワークロードでは、NotReady
の状態の複数のノードに対応できるという前提で、複数のコンピュートノードを並行して更新できます。管理者が責任を持って、必要なコンピュートノードを利用できる状態にしてください。
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 7.0U2 以降を使用している。
手順
クラスターのコンピュートノードをリスト表示します。
$ oc get nodes -l node-role.kubernetes.io/worker
出力例
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
コンピュートノードの名前を書き留めておきます。
コンピュートノードにスケジュール対象外 (unschedulable) のマークを付けます。
$ oc adm cordon <compute_node>
コンピュートノードから Pod を退避します。これにはいくつかの方法があります。たとえば、ノードですべてまたは選択した Pod を退避できます。
$ oc adm drain <compute_node> [--pod-selector=<pod_selector>]
ノードから Pod を退避させる方法は、「ノードの Pod を退避する方法」のセクションを参照してください。
-
コンピュートノードに関連付けられた仮想マシンをシャットダウンします。仮想マシンを右クリックし、Power
Shut Down Guest OS を選択して、vSphere クライアントでこれを実行します。安全にシャットダウンされない場合があるため、Power Off を使用して仮想マシンをシャットダウンしないでください。 - vSphere クライアントで VM を更新します。詳細は、VMware ドキュメントの 仮想マシンの互換性を手動でアップグレードするに 従ってください。
- コンピュートノードに関連付けられた仮想マシンの電源を入れます。仮想マシンを右クリックし、Power On を選択して、vSphere クライアントでこれを実行します。
ノードが
Ready
として報告されるまで待機します。$ oc wait --for=condition=Ready node/<compute_node>
コンピュートノードを再度スケジュール対象としてマークします。
$ oc adm uncordon <compute_node>
- クラスター内のコンピュートノードごとに、この手順を繰り返します。
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 の更新中にノードが再起動されると、仮想ハードウェアが更新されます。