6.9. ブートイメージ管理


Google Cloud および Amazon Web Services (AWS)クラスターの場合、デフォルトでは、Machine Config Operator (MCO)はノードのスケールアップに使用されるブートイメージを管理し、更新します。つまり、デフォルトでは、クラスターをアップグレードするたびに、MCO によってブートイメージが更新されます。

VMware vSphere では、ブートイメージ管理をテクノロジープレビュー機能として有効にできます。

その他のすべてのプラットフォームでは、MCO はクラスターの更新ごとにブートイメージを更新しません。

重要

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

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

6.9.1. ブートイメージ管理について

デフォルトでは、Google Cloud および Amazon Web Services (AWS)クラスターの場合、Machine Config Operator (MCO)はクラスターを更新するたびに、クラスター内のマシンセットのブートイメージを更新します。

VMware vSphere では、ブートイメージ管理をテクノロジープレビュー機能として有効にできます。この機能を有効にする方法は、「ブートイメージ管理の有効化」を参照してください。

重要

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

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

ブートイメージ管理機能は、必要に応じて無効にできます。この機能が無効になっていると、ブートイメージはクラスターで更新されなくなります。たとえば、この機能を無効にすると、クラスターが元々 OpenShift Container Platform 4.16 で作成されていた場合、クラスターがそれ以降のバージョンであっても、MCO がノードの作成に使用するブートイメージは同じ 4.16 バージョンになります。

ただし、古いブートイメージを使用すると、次の問題が発生する可能性があります。

  • ノードの起動に余分に時間がかかる
  • 証明書の有効期限の問題が発生する
  • バージョンスキューの問題が発生する

この機能を無効にする方法は、「ブートイメージ管理の無効化」を参照してください。この機能を無効にした場合は、いつでも再有効化できます。詳細は、「ブートイメージ管理の有効化」を参照してください。

注記

ブートイメージ管理を設定する機能は、Google Cloud および AWS クラスターでのみ使用できます。Cluster CAPI Operator によって管理されるクラスターではサポートされません。

機能を無効化した後、または再有効化した後のクラスターの動作は、次のシナリオを含め、変更を行ったタイミングによって異なります。

  • 新しい OpenShift Container Platform バージョンに更新する前にこの機能を無効にすると、次のようになります。

    • マシンセットで使用されるブートイメージのバージョンは、機能が無効にされたときと同じ OpenShift Container Platform バージョンのままになります。
    • ノードをスケールアップすると、新しいノードは同じ OpenShift Container Platform バージョンを使用します。
  • 新しい OpenShift Container Platform バージョンに更新した後にこの機能を無効にすると、次のようになります。

    • マシンセットで使用されるブートイメージバージョンは、更新された OpenShift Container Platform バージョンと一致するように更新されます。
    • ノードをスケールアップすると、新しいノードは更新された OpenShift Container Platform バージョンを使用します。
    • 新しい OpenShift Container Platform バージョンに更新すると、マシンセット内のブートイメージのバージョンは、現在のバージョンのままとなり、クラスターとともに更新されません。
  • 機能を無効にした後に有効にすると、次のようになります。

    • マシンセットで使用されるブートイメージバージョンが異なる場合は、現在の OpenShift Container Platform バージョンに更新されます。
    • ノードをスケールアップすると、新しいノードはクラスター内の現在の OpenShift Container Platform バージョンを使用します。
注記

ブートイメージはノードがスケールアップされるときにのみ使用されるため、この機能は既存のノードには影響しません。

クラスターで使用されている現在のブートイメージを表示するには、プラットフォームに応じて次のいずれかの方法を使用します。

  • Google Cloud と AWS の場合は、マシンセットを検査できます。

    注記

    マシンセット内のブートイメージの場所と形式は、プラットフォームによって異なります。ただし、ブートイメージは常に spec.template.spec.providerSpec. パラメーターにリスト表示されます。

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

    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
    
    # ...
    Copy to Clipboard Toggle word wrap

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

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

    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:
              ami:
                id: ami-0e8fd9094e487d1ff
    # ...
    Copy to Clipboard Toggle word wrap

  • VMware vSphere の場合は、ノードへの oc debug セッションを開き、rpm-ostree status コマンドを使用して、影響を受けるノードを調べます。

    sh-5.1# rpm-ostree status
    Copy to Clipboard Toggle word wrap

    ブートイメージ参照を含む AWS ノードの例

    State: idle
    Deployments:
    * ostree-unverified-registry:quay.io/my-registry/...
                       Digest: sha256:...
    Copy to Clipboard Toggle word wrap

重要

ブートイメージ管理を有効にするマシンセットのいずれかが Ignition バージョン 2.2.0 に基づく *-user-data シークレットを使用している場合、この機能を有効にすると、Machine Config Operator によって Ignition バージョンが 3.4.0 に変換されます。OpenShift Container Platform バージョン 4.5 以下では、Ignition バージョン 2.2.0 が使用されます。この変換が失敗すると、MCO またはクラスターのパフォーマンスが低下する可能性があります。oc get ClusterOperator machine-config コマンドの出力に、err: converting ignition stub failed: failed to parse Ignition config を含むエラーメッセージが追加されました。この問題を修正するには、次の一般的な手順を実行します。

  1. ブートイメージ管理機能を無効にします。詳細は、「ブートイメージ管理の無効化」を参照してください。
  2. Ignition バージョン 3.2.0 を使用するには、*-user-data シークレットを手動で更新します。
  3. ブートイメージ管理機能を有効にします。詳細は、「ブートイメージ管理の有効化」を参照してください。

6.9.2. ブートイメージ管理の無効化

デフォルトでは、Google Cloud および Amazon Web Services (AWS)クラスターの場合、Machine Config Operator (MCO)はクラスターを更新するたびにクラスター内のマシンセットのブートイメージを管理し、更新します。VMware vSphere では、ブートイメージ管理をテクノロジープレビュー機能として有効にできます。

MachineConfiguration オブジェクトを編集することで、クラスターのブートイメージ管理機能を無効化できます。無効化すると、Machine Config Operator (MCO) はクラスター内のブートイメージを管理しなくなり、クラスターの更新ごとにブートイメージを更新しなくなります。

この機能を無効にしても、ノードまたはマシンセットは元々インストールされたブートイメージにロールバックされません。マシンセットは、機能が無効化されたときに存在していたブートイメージバージョンを保持し、今後クラスターが新しい OpenShift Container Platform バージョンにアップグレードされても更新されません。この機能は既存のノードには影響しません。

この機能を無効にした後、いつでも再有効化できます。詳細は、「更新されたブートイメージの有効化」を参照してください。

手順

  1. MachineConfiguration オブジェクトを編集して、一部またはすべてのマシンセットのブートイメージ管理機能を無効化します。

    $ oc edit MachineConfiguration cluster
    Copy to Clipboard Toggle word wrap
    • オプション: すべてのマシンセットの機能を無効にします。

      apiVersion: operator.openshift.io/v1
      kind: MachineConfiguration
      metadata:
        name: cluster
        namespace: openshift-machine-config-operator
      spec:
      # ...
        managedBootImages: 
      1
      
          machineManagers:
          - apiGroup: machine.openshift.io 
      2
      
            resource: machinesets 
      3
      
            selection:
              mode: None 
      4
      Copy to Clipboard Toggle word wrap
      1
      ブートイメージ管理機能を設定します。
      2
      API グループを指定します。これは machine.openshift.io である必要があります。
      3
      変更を適用する、指定された API グループ内のリソースを指定します。これは machinesets である必要があります。
      4
      この機能がクラスター内のすべてのマシンセットで無効化されていることを指定します。

検証

  • 影響を受けるノードが READY 状態に戻ったら、マシン設定オブジェクトを表示して、ブートイメージ管理機能の現在の状態を確認します。

    $ oc get machineconfiguration cluster -o yaml
    Copy to Clipboard Toggle word wrap

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

    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
    Copy to Clipboard Toggle word wrap

  • 影響を受けるノードが READY 状態に戻ったら、次のいずれかの方法を使用して現在のブートイメージを確認します。

    • Google Cloud と AWS の場合は、次のコマンドを実行してブートイメージバージョンを取得します。マシンセット内のブートイメージの場所と形式は、プラットフォームによって異なります。ただし、ブートイメージは常に spec.template.spec.providerSpec. パラメーターにリスト表示されます。

      $ oc get machinesets <machineset_name> -n openshift-machine-api -o yaml
      Copy to Clipboard Toggle word wrap

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

      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
      
      # ...
      Copy to Clipboard Toggle word wrap

      1
      このブートイメージは、現在の OpenShift Container Platform バージョンと同じです。
    • VMware vSphere の場合は、影響を受けるノードからブートイメージのバージョンを取得します。

      1. 次のようなコマンドを実行して、ノードへの oc debug セッションを開きます。

        $ oc debug node/<node_name>
        Copy to Clipboard Toggle word wrap
      2. 次のコマンドを実行して、デバッグシェル内のルートディレクトリーとして /host を設定します。

        sh-5.1# chroot /host
        Copy to Clipboard Toggle word wrap
      3. rpm-ostree status コマンドを実行して、カスタムレイヤーイメージが使用されていることを確認します。

        sh-5.1# rpm-ostree status
        Copy to Clipboard Toggle word wrap

        出力例

        State: idle
        Deployments:
        * ostree-unverified-registry:quay.io/my-registry/...
                           Digest: sha256:...
        Copy to Clipboard Toggle word wrap

6.9.3. ブートイメージ管理の有効化

デフォルトでは、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 機能セットを有効にします。詳細は、「フィーチャーゲートを使用した機能の有効化」を参照してください。

    注記

    TechPreviewNoUpgrade 機能セットを有効にすると元に戻すことができなくなり、マイナーバージョンの更新ができなくなります。これらの機能セットは、実稼働クラスターでは推奨されません。

    MachineConfiguration オブジェクトの managedBootImagesStatus スタンザが表示されるまで待ちます。

    apiVersion: operator.openshift.io/v1
    kind: MachineConfiguration
    metadata:
      name: cluster
    # ...
    status:
    # ...
      managedBootImagesStatus:
        machineManagers:
        - apiGroup: machine.openshift.io
          resource: machinesets
          selection:
            mode: None
    Copy to Clipboard Toggle word wrap

手順

  1. cluster という名前の MachineConfiguration オブジェクトを編集して、一部またはすべてのマシンセットのブートイメージ管理機能を有効化します。

    $ oc edit MachineConfiguration cluster
    Copy to Clipboard Toggle word wrap
    • オプション: すべてのマシンセットに対してブートイメージ管理機能を有効化します。

      apiVersion: operator.openshift.io/v1
      kind: MachineConfiguration
      metadata:
        name: cluster
        namespace: openshift-machine-config-operator
      spec:
      # ...
        managedBootImages: 
      1
      
          machineManagers:
          - apiGroup: machine.openshift.io 
      2
      
            resource: machinesets 
      3
      
            selection:
              mode: All 
      4
      Copy to Clipboard Toggle word wrap
      1
      ブートイメージ管理機能を設定します。
      2
      API グループを指定します。これは machine.openshift.io である必要があります。
      3
      変更を適用する、指定された API グループ内のリソースを指定します。これは machinesets である必要があります。
      4
      クラスター内のすべてのマシンセットに対して機能が有効化されるように指定します。
    • オプション: 特定のマシンセットに対してブートイメージ管理機能を有効化します。

      apiVersion: operator.openshift.io/v1
      kind: MachineConfiguration
      metadata:
        name: cluster
        namespace: openshift-machine-config-operator
      spec:
      # ...
        managedBootImages: 
      1
      
          machineManagers:
          - apiGroup: machine.openshift.io 
      2
      
            resource: machinesets 
      3
      
            selection:
              mode: Partial 
      4
      
              partial:
                machineResourceSelector:
                  matchLabels:
                    region: "east"
      Copy to Clipboard Toggle word wrap
      1
      ブートイメージの更新機能を設定します。
      2
      API グループを指定します。これは machine.openshift.io である必要があります。
      3
      変更を適用する、指定された API グループ内のリソースを指定します。これは machinesets である必要があります。
      4
      指定されたラベルを持つマシンセットに対して機能が有効であることを指定します。
      ヒント

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

      $ oc label machineset.machine ci-ln-hmy310k-72292-5f87z-worker-a region="east" -n openshift-machine-api
      Copy to Clipboard Toggle word wrap

検証

  • 影響を受けるノードが READY 状態に戻ったら、マシン設定オブジェクトを表示して、ブートイメージ管理機能の現在の状態を確認します。

    $ oc get machineconfiguration cluster -o yaml
    Copy to Clipboard Toggle word wrap

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

    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
    Copy to Clipboard Toggle word wrap

  • 影響を受けるノードが READY 状態に戻ったら、次のいずれかの方法を使用して現在のブートイメージを確認します。

    • Google Cloud と AWS の場合は、次のコマンドを実行してブートイメージバージョンを取得します。マシンセット内のブートイメージの場所と形式は、プラットフォームによって異なります。ただし、ブートイメージは常に spec.template.spec.providerSpec. パラメーターにリスト表示されます。

      $ oc get machinesets <machineset_name> -n openshift-machine-api -o yaml
      Copy to Clipboard Toggle word wrap

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

      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
      
      # ...
      Copy to Clipboard Toggle word wrap

      1
      このブートイメージは、現在の OpenShift Container Platform バージョンと同じです。
    • VMware vSphere の場合は、影響を受けるノードからブートイメージのバージョンを取得します。

      1. 次のようなコマンドを実行して、ノードへの oc debug セッションを開きます。

        $ oc debug node/<node_name>
        Copy to Clipboard Toggle word wrap
      2. 次のコマンドを実行して、デバッグシェル内のルートディレクトリーとして /host を設定します。

        sh-5.1# chroot /host
        Copy to Clipboard Toggle word wrap
      3. rpm-ostree status コマンドを実行して、カスタムレイヤーイメージが使用されていることを確認します。

        sh-5.1# rpm-ostree status
        Copy to Clipboard Toggle word wrap

        出力例

        State: idle
        Deployments:
        * ostree-unverified-registry:quay.io/my-registry/...
                           Digest: sha256:...
        Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat