6.3.2. ブートイメージの更新


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 クラスターでのみ利用可能で、Cluster CAPI Operator が管理するクラスターではサポートされていません。

重要

Google Cloud クラスターのブートイメージ更新機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

クラスターで使用されている現在のブートイメージを表示するには、マシンセットを調べます。

ブートイメージ参照を含むマシンセット例

apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
  name: ci-ln-hmy310k-72292-5f87z-worker-a
  namespace: openshift-machine-api
spec:
# ...
  template:
# ...
    spec:
# ...
      providerSpec:
# ...
        value:
          disks:
          - autoDelete: true
            boot: true
            image: projects/rhcos-cloud/global/images/rhcos-412-85-202203181601-0-gcp-x86-64 
1

# ...

1
このブートイメージは、クラスターの現在のバージョンに関係なく、最初にインストールされた OpenShift Container Platform バージョン (この例では OpenShift Container Platform 4.12) と同じです。providerSpec フィールドの構造はプラットフォームごとに異なるため、マシンセット内でブートイメージが表現される方法はプラットフォームによって異なります。

ブートイメージを更新するようにクラスターを設定すると、マシンセットで参照されるブートイメージはクラスターの現在のバージョンと一致します。

前提条件

  • フィーチャーゲートを使用して TechPreviewNoUpgrade 機能セットを有効にしている。詳細は、「関連情報」セクションの「フィーチャーゲートを使用した機能の有効化」を参照してください。

手順

  1. 次のコマンドを実行して、cluster という名前の MachineConfiguration オブジェクトを編集し、ブートイメージの更新を有効にします。

    $ oc edit MachineConfiguration cluster
    1. オプション: すべてのマシンセットのブートイメージ更新機能を設定します。

      apiVersion: operator.openshift.io/v1
      kind: MachineConfiguration
      metadata:
        name: cluster
        namespace: openshift-machine-config-operator
      spec:
      # ...
        managedBootImages: 
      1
      
          machineManagers:
          - resource: machinesets
            apiGroup: machine.openshift.io
            selection:
              mode: All 
      2
      1
      ブートイメージ更新機能を有効にします。
      2
      クラスター内のすべてのマシンセットを更新することを指定します。
    2. オプション: 特定のマシンセットのブートイメージ更新機能を設定します。

      apiVersion: operator.openshift.io/v1
      kind: MachineConfiguration
      metadata:
        name: cluster
        namespace: openshift-machine-config-operator
      spec:
      # ...
        managedBootImages: 
      1
      
          machineManagers:
          - resource: machinesets
            apiGroup: machine.openshift.io
            selection:
              mode: Partial
                partial:
                  machineResourceSelector:
                    matchLabels:
                      update-boot-image: "true" 
      2
      1
      ブートイメージ更新機能を有効にします。
      2
      このラベルが設定されたマシンすべてを更新するように指定します。
      ヒント

      マシンセットに適切なラベルが存在しない場合は、次のようなコマンドを実行してキー/値のペアを追加します。

      $ oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a update-boot-image=true -n openshift-machine-api

検証

  1. 次のコマンドを実行してブートイメージのバージョンを取得します。

    $ 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/rhcos-416-92-202402201450-0-gcp-x86-64 
    1
    
    # ...

    1
    このブートイメージは、現在の OpenShift Container Platform バージョンと同じです。

6.3.2.1. ブートイメージ更新の無効化

ブートイメージ管理機能を無効にすることで、Machine Config Operator (MCO) が対象となるマシンセットのブートイメージを管理または更新しなくなります。たとえば、変更したくないカスタムブートイメージを使用するために、ワーカーノードに対してこの機能を無効化できます。

新しいブートイメージバージョンでいくつかのノードが作成された後にこの機能を無効にすると、既存のノードは現在のブートイメージを保持します。この機能をオフにしても、ノードまたはマシンセットは元々インストールされたブートイメージにロールバックされません。マシンセットは、機能が有効になったときに存在していたブートイメージバージョンを保持し、今後クラスターが新しい OpenShift Container Platform バージョンにアップグレードされても再度更新されません。

手順

  1. MachineConfiguration オブジェクトを編集して、ブートイメージ更新を無効にします。

    $ oc edit MachineConfiguration cluster
  2. machineManagers パラメーターを空の配列にします。

    apiVersion: operator.openshift.io/v1
    kind: MachineConfiguration
    metadata:
      name: cluster
      namespace: openshift-machine-config-operator
    spec:
    # ...
      managedBootImages:
        machineManagers: []

    machineManagers の下にリストされているパラメーターを削除し、[] 文字を追加してブートイメージの更新を無効にします。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る