第5章 ブートイメージ更新
Machine Config Operator (MCO) は、ブートイメージを使用して Red Hat Enterprise Linux CoreOS (RHCOS) ノードを起動します。デフォルトでは、ブートイメージは OpenShift Container Platform によって管理されません。
そのため、クラスター内のブートイメージはクラスターとともに更新されません。たとえば、クラスターが元々 OpenShift Container Platform 4.12 で作成されていた場合、クラスターがノードを作成するために使用するブートイメージは、クラスターがそれ以降のバージョンであっても、同じ 4.12 バージョンになります。クラスターが後で 4.13 以降にアップグレードされた場合、新しいノードは同じ 4.12 イメージを使用してスケーリングを継続します。
このプロセスにより、以下の問題が発生する可能性があります。
- ノードの起動に余分に時間がかかる
- 証明書の有効期限の問題が発生する
- バージョンスキューの問題が発生する
これらの問題を回避するには、クラスターを更新するたびにブートイメージも更新するようにクラスターを設定できます。MachineConfiguration
オブジェクトを変更することで、この機能を有効にできます。現在、ブートイメージを更新する機能は、Google Cloud Platform (GCP) および Amazon Web Services (AWS) クラスターでのみ利用できます。Cluster CAPI Operator によって管理されるクラスターではサポートされません。
マシンセットでデフォルトのユーザーデータシークレット (worker-user-data
という名前) を使用していない場合、または worker-user-data
シークレットを変更した場合は、管理されたブートイメージの更新を使用しないでください。これは、Machine Config Operator (MCO) が、シークレットの管理バージョンを使用するようにマシンセットを更新するためです。管理されたブートイメージ機能を使用すると、マシンセットオブジェクトに保存されているシークレットをカスタマイズする機能が失われます。
クラスターで使用されている現在のブートイメージを表示するには、マシンセットを調べます。
ブートイメージ参照を含むマシンセット例
- 1
- このブートイメージは、クラスターの現在のバージョンに関係なく、最初にインストールされた OpenShift Container Platform バージョン (この例では OpenShift Container Platform 4.12) と同じです。
providerSpec
フィールドの構造はプラットフォームごとに異なるため、マシンセット内でブートイメージが表現される方法はプラットフォームによって異なります。
ブートイメージを更新するようにクラスターを設定すると、マシンセットで参照されるブートイメージはクラスターの現在のバージョンと一致します。
5.1. ブートイメージ更新の設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ブートイメージは OpenShift Container Platform によって管理されません。MachineConfiguration
オブジェクトを変更することで、クラスターを更新するたびにブートイメージが更新されるようにクラスターを設定できます。
現在、ブートイメージを更新する機能は、Google Cloud Platform (GCP) および Amazon Web Services (AWS) クラスターでのみ利用できます。Cluster CAPI Operator によって管理されるクラスターではサポートされません。
手順
次のコマンドを実行して、
cluster
という名前のMachineConfiguration
オブジェクトを編集し、ブートイメージの更新を有効にします。oc edit MachineConfiguration cluster
$ oc edit MachineConfiguration cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: すべてのマシンセットのブートイメージ更新機能を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 特定のマシンセットのブートイメージ更新機能を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントマシンセットに適切なラベルが存在しない場合は、次のようなコマンドを実行してキーと値のペアを追加します。
oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a update-boot-image=true -n openshift-machine-api
$ oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a update-boot-image=true -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
マシン設定オブジェクトを表示して、ブートイメージ更新の現在の状態を確認します。
oc get machineconfiguration cluster -n openshift-machine-api -o yaml
$ oc get machineconfiguration cluster -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブートイメージ参照を含むマシンセット例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してブートイメージのバージョンを取得します。
oc get machinesets <machineset_name> -n openshift-machine-api -o yaml
$ oc get machinesets <machineset_name> -n openshift-machine-api -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブートイメージ参照を含むマシンセット例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このブートイメージは、現在の OpenShift Container Platform バージョンと同じです。