6.3. ブートイメージ管理を有効にする
サポートされているプラットフォームの場合、Machine Config Operator (MCO) は各ノードのブートイメージを管理および更新し、ブートイメージの Red Hat Enterprise Linux CoreOS(RHCOS) バージョンが、クラスターに適した Red Hat Enterprise Linux CoreOS(RHCOS) バージョンと一致するようにします。
デフォルトでは、Google Cloud および Amazon Web Services (AWS) クラスターの場合、クラスターを更新するたびに、Machine Config Operator (MCO) がクラスター内のマシンセットのブートイメージを更新します。
ブートイメージ管理機能を無効化してブートイメージが更新されないようにした場合は、MachineConfiguration オブジェクトを編集し、機能を再有効化できます。
VMware vSphere では、ブートイメージ管理をテクノロジープレビュー機能として有効にできます。
vSphere でのブートイメージ管理は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
この機能を有効化すると、ブートイメージが現在の OpenShift Container Platform バージョンに更新されます。今後クラスターが新しい OpenShift Container Platform バージョンに再度更新されると、ブートイメージも再度更新されます。機能の有効化後に作成された新しいノードは、更新されたブートイメージを使用します。この機能は既存のノードには影響しません。
前提条件
-
vSphere の場合、クラスターで
TechPreviewNoUpgrade機能セットを有効にします。詳細は、「フィーチャーゲートを使用した機能の有効化」を参照してください。
手順
clusterという名前のMachineConfigurationオブジェクトを編集して、一部またはすべてのマシンセットのブートイメージ管理機能を有効化します。$ oc edit MachineConfiguration clusterオプション: すべてのマシンセットに対してブートイメージ管理機能を有効化します。
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: name: cluster spec: # ... managedBootImages: machineManagers: - apiGroup: machine.openshift.io resource: machinesets selection: mode: Allここでは、以下のようになります。
spec.managedBootImages- ブートイメージ管理機能を設定します。
spec.managedBootImages.machineManagers.selection.mode- クラスター内のすべてのマシンセットを更新することを指定します。
オプション: 特定のマシンセットに対してブートイメージ管理機能を有効化します。
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: name: cluster spec: # ... managedBootImages: machineManagers: - apiGroup: machine.openshift.io resource: machinesets selection: mode: Partial partial: machineResourceSelector: matchLabels: region: "east"ここでは、以下のようになります。
spec.managedBootImages- ブートイメージ管理機能を設定します。
spec.managedBootImages.machineManagers.selection.partial.machineResourceSelector.matchLabelsこのラベルが設定されたマシンすべてを更新するように指定します。
ヒントマシンセットに適切なラベルが存在しない場合は、次のようなコマンドを実行してキーと値のペアを追加します。
$ oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a region="east" -n openshift-machine-api
検証
影響を受けるノードが
READY状態に戻ったら、マシン設定オブジェクトを表示して、ブートイメージ管理機能の現在の状態を確認します。$ oc get machineconfiguration cluster -o yamlブートイメージ参照を含むマシンセット例
kind: MachineConfiguration metadata: name: cluster # ... status: conditions: - lastTransitionTime: "2025-05-01T20:11:49Z" message: Reconciled 2 of 4 MAPI MachineSets | Reconciled 0 of 0 CAPI MachineSets | Reconciled 0 of 0 CAPI MachineDeployments reason: BootImageUpdateConfigurationUpdated status: "True" type: BootImageUpdateProgressing - lastTransitionTime: "2025-05-01T19:30:13Z" message: 0 Degraded MAPI MachineSets | 0 Degraded CAPI MachineSets | 0 CAPI MachineDeployments reason: BootImageUpdateConfigurationUpdated status: "False" type: BootImageUpdateDegraded managedBootImagesStatus: machineManagers: - apiGroup: machine.openshift.io resource: machinesets selection: mode: All影響を受けるノードが
READY状態に戻ったら、次のいずれかの方法を使用して現在のブートイメージを確認します。Google Cloud および AWS の場合、次のコマンドを実行してブートイメージのバージョンを取得します。マシンセット内のブートイメージの場所と形式は、プラットフォームによって異なります。ただし、ブートイメージは常に
spec.template.spec.providerSpec.パラメーターにリスト表示されます。$ oc get machinesets <machineset_name> -n openshift-machine-api -o yamlブートイメージ参照を含むマシンセット例
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: ci-ln-77hmkpt-72292-d4pxp update-boot-image: "true" name: ci-ln-77hmkpt-72292-d4pxp-worker-a namespace: openshift-machine-api spec: # ... template: # ... spec: # ... providerSpec: # ... value: disks: - autoDelete: true boot: true image: projects/rhcos-cloud/global/images/<boot_image>1 # ...- 1
- このブートイメージは、現在の OpenShift Container Platform バージョンと同じです。
VMware vSphere の場合は、影響を受けるノードからブートイメージのバージョンを取得します。
次のようなコマンドを実行して、ノードへの
oc debugセッションを開きます。$ oc debug node/<node_name>次のコマンドを実行して、デバッグシェル内のルートディレクトリーとして
/hostを設定します。sh-5.1# chroot /hostrpm-ostree statusコマンドを実行して、カスタムレイヤーイメージが使用されていることを確認します。sh-5.1# rpm-ostree status出力例
State: idle Deployments: * ostree-unverified-registry:quay.io/my-registry/... Digest: sha256:...