第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 によって管理されるクラスターではサポートされません。

重要

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

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

マシンセットでデフォルトのユーザーデータシークレット (worker-user-data という名前) を使用していない場合、または worker-user-data シークレットを変更した場合は、管理されたブートイメージの更新を使用しないでください。これは、Machine Config Operator (MCO) が、シークレットの管理バージョンを使用するようにマシンセットを更新するためです。管理されたブートイメージ機能を使用すると、マシンセットオブジェクトに保存されているシークレットをカスタマイズする機能が失われます。

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

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

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 フィールドの構造はプラットフォームごとに異なるため、マシンセット内でブートイメージが表現される方法はプラットフォームによって異なります。

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

5.1. ブートイメージ更新の設定

デフォルトでは、ブートイメージは OpenShift Container Platform によって管理されません。MachineConfiguration オブジェクトを変更することで、クラスターを更新するたびにブートイメージが更新されるようにクラスターを設定できます。

現在、ブートイメージを更新する機能は、Google Cloud Platform (GCP) クラスターでのみ利用可能であり、Amazon Web Services (AWS) クラスターではテクノロジープレビュー機能として利用できます。Cluster CAPI Operator によって管理されるクラスターではサポートされません。

重要

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

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

手順

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

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

      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
      クラスター内のすべてのマシンセットを更新することを指定します。
    • オプション: 特定のマシンセットのブートイメージ更新機能を設定します。

      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 machineconfiguration cluster -n openshift-machine-api -o yaml

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

    kind: MachineConfiguration
    metadata:
      name: cluster
    # ...
    status:
      conditions:
      - lastTransitionTime: "2024-09-09T13:51:37Z" 1
        message: Reconciled 1 of 2 MAPI MachineSets | Reconciled 0 of 0 CAPI MachineSets
          | Reconciled 0 of 0 CAPI MachineDeployments
        reason: BootImageUpdateConfigurationAdded
        status: "True"
        type: BootImageUpdateProgressing
      - lastTransitionTime: "2024-09-09T13:51:37Z" 2
        message: 0 Degraded MAPI MachineSets | 0 Degraded CAPI MachineSets | 0 CAPI MachineDeployments
        reason: BootImageUpdateConfigurationAdded
        status: "False"
        type: BootImageUpdateDegraded

    1
    ブートイメージの更新のステータス。Cluster CAPI Operator のマシンセットとマシンのデプロイメントは、現在、ブートイメージの更新ではサポートされていません。
    2
    ブートイメージの更新が失敗したかどうかを示します。いずれかの更新が失敗すると、Machine Config Operator の機能が低下します。この場合、手動による介入が必要になる可能性があります。
  2. 次のコマンドを実行してブートイメージのバージョンを取得します。

    $ 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 バージョンと同じです。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.