第11章 vSphere で稼働するノードでのハードウェアの更新
vSphere で実行されているノードが OpenShift Container Platform でサポート対象のハードウェアバージョンで実行されていることを確認する必要があります。現時点で、ハードウェアバージョン 13 以降は、クラスター内の vSphere 仮想マシンでサポートされます。
仮想ハードウェアを直ちに更新したり、vCenter で更新をスケジュールしたりできます。
vSphere で実行しているクラスターノード用にハードウェアバージョン 13 を使用することは非推奨となりました。これらのバージョンは引き続き完全にサポートされていますが、サポートは OpenShift Container Platform の今後のバージョンで削除されます。ハードウェアバージョン 15 が、OpenShift Container Platform の vSphere 仮想マシンのデフォルトになりました。
11.1. vSphere での仮想ハードウェアの更新
VMware vSphere 上の仮想マシンのハードウェアを更新するには、仮想マシンを個別に更新し、クラスターのダウンタイムのリスクを軽減します。
11.1.1. vSphere でのコントロールプレーンノードの仮想ハードウェアの更新
ダウンタイムのリスクを軽減するには、コントロールプレーンノードを順次更新することが推奨されます。これにより、Kubernetes API が利用可能な状態を保ち、etcd はクォーラム (定足数) を維持します。
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 6.7U3 以降を使用している。
手順
クラスターのコントロールプレーンノードを一覧表示します。
$ oc get nodes -l node-role.kubernetes.io/master
出力例
NAME STATUS ROLES AGE VERSION control-plane-node-0 Ready master 75m v1.22.1 control-plane-node-1 Ready master 75m v1.22.1 control-plane-node-2 Ready master 75m v1.22.1
コントロールプレーンノードの名前を書き留めておきます。
コントロールプレーンノードにスケジュール対象外 (unschedulable) のマークを付けます。
$ oc adm cordon <control_plane_node>
-
コントロールプレーンノードに関連付けられた仮想マシンをシャットダウンします。仮想マシンを右クリックし、Power
Shut Down Guest OS を選択して、vSphere クライアントでこれを実行します。安全にシャットダウンされない場合があるため、Power Off を使用して仮想マシンをシャットダウンしないでください。 - vSphere クライアントで VM を更新します。詳細は、VMware ドキュメントの Upgrading a virtual machine to the latest hardware version を参照してください。
- コントロールプレーンノードに関連付けられた仮想マシンの電源を入れます。仮想マシンを右クリックし、Power On を選択して、vSphere クライアントでこれを実行します。
ノードが
Ready
として報告されるまで待機します。$ oc wait --for=condition=Ready node/<control_plane_node>
コントロールプレーンノードを再度スケジュール対象としてマークします。
$ oc adm uncordon <control_plane_node>
- クラスター内のコントロールプレーンノードごとに、この手順を繰り返します。
11.1.2. vSphere でのコンピュートノードの仮想ハードウェア更新
ダウンタイムのリスクを軽減するには、コンピュートノードを順次更新することが推奨されます。
ワークロードでは、NotReady
の状態の複数のノードに対応できるという前提で、複数のコンピュートノードを並行して更新できます。管理者が責任を持って、必要なコンピュートノードを利用できる状態にしてください。
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 6.7U3 以降を使用している。
手順
クラスターのコンピュートノードを一覧表示します。
$ oc get nodes -l node-role.kubernetes.io/worker
出力例
NAME STATUS ROLES AGE VERSION compute-node-0 Ready worker 30m v1.22.1 compute-node-1 Ready worker 30m v1.22.1 compute-node-2 Ready worker 30m v1.22.1
コンピュートノードの名前を書き留めておきます。
コンピュートノードにスケジュール対象外 (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 ドキュメントの Upgrading a virtual machine to the latest hardware version を参照してください。
- コンピュートノードに関連付けられた仮想マシンの電源を入れます。仮想マシンを右クリックし、Power On を選択して、vSphere クライアントでこれを実行します。
ノードが
Ready
として報告されるまで待機します。$ oc wait --for=condition=Ready node/<compute_node>
コンピュートノードを再度スケジュール対象としてマークします。
$ oc adm uncordon <compute_node>
- クラスター内のコンピュートノードごとに、この手順を繰り返します。
11.1.3. vSphere 上のテンプレートの仮想ハードウェアの更新
前提条件
- OpenShift Container Platform クラスターをホストする vCenter インスタンスで必要なパーミッションを実行するためのクラスター管理者パーミッションがある。
- vSphere ESXi ホストがバージョン 6.7U3 以降を使用している。
手順
- RHCOS テンプレートが vSphere テンプレートとして設定されている場合は、次のステップの前に、VMware ドキュメント のテンプレートを仮想マシンに変換するに 従ってください。
テンプレートから変換したら、仮想マシンをパワーオンしないでください。
- vSphere クライアントで VM を更新します。詳細は、VMware ドキュメントの Upgrading a virtual machine to the latest hardware version を参照してください。
- vSphere クライアントの VM を VM からテンプレートに変換します。詳細については、VMware ドキュメント の vSphere Client で仮想マシンをテンプレートに変換するに 従ってください。
関連情報