第15章 vSphere で稼働するノードでのハードウェアの更新
vSphere で実行されているノードが OpenShift Container Platform でサポート対象のハードウェアバージョンで実行されていることを確認する必要があります。現時点で、ハードウェアバージョン 15 以降は、クラスター内の vSphere 仮想マシンでサポートされます。
仮想ハードウェアを直ちに更新したり、vCenter で更新をスケジュールしたりできます。
- OpenShift Container Platform のバージョン 4.13 には、VMware 仮想ハードウェアバージョン 15 以降が必要です。
- OpenShift 4.12 を OpenShift 4.13 にアップグレードする前に、vSphere を v7.0.2 以降 に更新する必要があります。それ以外の場合、OpenShift 4.12 クラスターは un-upgradeable とマークされます。
15.1. vSphere での仮想ハードウェアの更新
VMware vSphere 上の仮想マシンのハードウェアを更新するには、仮想マシンを個別に更新し、クラスターのダウンタイムのリスクを軽減します。
OpenShift Container Platform 4.13 の時点で、VMware 仮想ハードウェアバージョン 13 はサポート対象外になりました。機能をサポートするには、VMware バージョン 15 以降に更新する必要があります。
15.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.26.0 control-plane-node-1 Ready master 75m v1.26.0 control-plane-node-2 Ready master 75m v1.26.0
コントロールプレーンノードの名前を書き留めておきます。
コントロールプレーンノードにスケジュール対象外 (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>
- クラスター内のコントロールプレーンノードごとに、この手順を繰り返します。
15.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.26.0 compute-node-1 Ready worker 30m v1.26.0 compute-node-2 Ready worker 30m v1.26.0
コンピュートノードの名前を書き留めておきます。
コンピュートノードにスケジュール対象外 (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>
- クラスター内のコンピュートノードごとに、この手順を繰り返します。
15.1.3. vSphere 上のテンプレートの仮想ハードウェアの更新
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 7.0U2 以降を使用している。
手順
RHCOS テンプレートが vSphere テンプレートとして設定されている場合は、次のステップの前に、VMware ドキュメント のテンプレートを仮想マシンに変換するに 従ってください。
注記テンプレートから変換したら、仮想マシンをパワーオンしないでください。
- vSphere クライアントで VM を更新します。詳細は、VMware ドキュメントの 仮想マシンの互換性を手動でアップグレードするに 従ってください。
- vSphere クライアントの VM を VM からテンプレートに変換します。詳細は、VMware ドキュメント の vSphere Client で仮想マシンをテンプレートに変換するに 従ってください。
関連情報