7.4. クラスター外でのレイヤー化を使用してカスタムレイヤーイメージを適用する


特定のマシン設定プール内のノードで、Red Hat Enterprise Linux CoreOS (RHCOS) イメージのレイヤー化を簡単に設定できます。Machine Config Operator (MCO) は、ベースの Red Hat Enterprise Linux CoreOS (RHCOS) イメージを上書きして、新しいカスタムレイヤーイメージでこれらのノードを再起動します。

カスタムレイヤーイメージをクラスターに適用するには、クラスターがアクセスできるリポジトリーにカスタムレイヤーイメージが必要です。次に、カスタムレイヤーイメージを指す MachineConfig オブジェクトを作成します。設定するマシン設定プールごとに個別の MachineConfig オブジェクトが必要です。

重要

カスタムレイヤーイメージを設定すると、OpenShift Container Platform は、カスタムレイヤーイメージを使用するノードを自動的に更新しなくなりました。必要に応じてノードを手動で更新する必要があります。カスタムレイヤーをロールバックすると、OpenShift Container Platform は再びノードを自動的に更新します。カスタムレイヤーイメージを使用するノードの更新に関する重要な情報は、以下の追加リソースセクションを参照してください。

前提条件

  • タグではなく、OpenShift Container Platform イメージダイジェストに基づくカスタムレイヤーイメージを作成する必要があります。

    注記

    クラスターの残りの部分にインストールされているのと同じ RHCOS の基本イメージを使用する必要があります。oc adm release info --image-for rhel-coreos コマンドを使用して、クラスターで使用されている基本イメージを取得します。

    たとえば、次の Containerfile は、OpenShift Container Platform 4.16 イメージからカスタムレイヤーイメージを作成し、カーネルパッケージを CentOS 9 Stream のカーネルパッケージでオーバーライドします。

    カスタムレイヤーイメージの Containerfile の例

    # Using a 4.16.0 image
    FROM quay.io/openshift-release/ocp-release@sha256... 
    1
    
    #Install hotfix rpm
    RUN rpm-ostree override replace http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/kernel-{,core-,modules-,modules-core-,modules-extra-}5.14.0-295.el9.x86_64.rpm && \ 
    2
    
        rpm-ostree cleanup -m && \
        ostree container commit
    Copy to Clipboard

    1
    クラスターの RHCOS 基本イメージを指定します。
    2
    カーネルパッケージを置き換えます。
    注記

    Containerfile の作成方法は、このドキュメントの範囲外です。

  • カスタムレイヤーイメージをビルドするプロセスはクラスターの外部で実行されるため、Podman または Buildah で --authfile/path/to/pull-secret オプションを使用する必要があります。あるいは、これらのツールでプルシークレットを自動的に読み取るようにするには、デフォルトのファイルの場所のいずれかに追加できます。~/.docker/config.json$XDG_RUNTIME_DIR/containers/auth.json~/.docker/config.json、または ~/.dockercfg。詳細は、containers-auth.json のマニュアルページを参照してください。
  • カスタムレイヤーイメージを、クラスターがアクセスできるリポジトリーにプッシュする必要があります。

手順

  1. マシン設定ファイルを作成します。

    1. 以下のような YAML ファイルを作成します。

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfig
      metadata:
        labels:
          machineconfiguration.openshift.io/role: worker 
      1
      
        name: os-layer-custom
      spec:
        osImageURL: quay.io/my-registry/custom-image@sha256... 
      2
      Copy to Clipboard
      1
      カスタムレイヤーイメージをデプロイするためのマシン設定プールを指定します。
      2
      リポジトリー内のカスタムレイヤーイメージへのパスを指定します。
    2. MachineConfig オブジェクトを作成します。

      $ oc create -f <file_name>.yaml
      Copy to Clipboard
      重要

      クラスターにロールアウトする前に、実稼働環境の外でイメージをテストすることを強く推奨します。

検証

次のチェックのいずれかを実行することで、カスタムレイヤーイメージが適用されていることを確認できます。

  1. ワーカーマシン設定プールが新しいマシン設定でロールアウトされていることを確認します。

    1. 新しいマシン設定が作成されたことを確認します。

      $ oc get mc
      Copy to Clipboard

      出力例

      NAME                                               GENERATEDBYCONTROLLER                      IGNITIONVERSION   AGE
      00-master                                          5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      00-worker                                          5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      01-master-container-runtime                        5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      01-master-kubelet                                  5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      01-worker-container-runtime                        5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      01-worker-kubelet                                  5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      99-master-generated-registries                     5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      99-master-ssh                                                                                 3.2.0             98m
      99-worker-generated-registries                     5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      99-worker-ssh                                                                                 3.2.0             98m
      os-layer-custom                                                                                                 10s 
      1
      
      rendered-master-15961f1da260f7be141006404d17d39b   5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      rendered-worker-5aff604cb1381a4fe07feaf1595a797e   5bdb57489b720096ef912f738b46330a8f577803   3.4.0             95m
      rendered-worker-5de4837625b1cbc237de6b22bc0bc873   5bdb57489b720096ef912f738b46330a8f577803   3.4.0             4s  
      2
      Copy to Clipboard

      1
      新しいマシン設定
      2
      新しいレンダリング済みマシン設定
    2. 新しいマシン設定の osImageURL 値が予測されるイメージを指していることを確認します。

      $ oc describe mc rendered-worker-5de4837625b1cbc237de6b22bc0bc873
      Copy to Clipboard

      出力例

      Name:         rendered-worker-5de4837625b1cbc237de6b22bc0bc873
      Namespace:
      Labels:       <none>
      Annotations:  machineconfiguration.openshift.io/generated-by-controller-version: 5bdb57489b720096ef912f738b46330a8f577803
                    machineconfiguration.openshift.io/release-image-version: 4.16.0-ec.3
      API Version:  machineconfiguration.openshift.io/v1
      Kind:         MachineConfig
      ...
        Os Image URL: quay.io/my-registry/custom-image@sha256...
      Copy to Clipboard

    3. 関連するマシン設定プールが新しいマシン設定で更新されていることを確認します。

      $ oc get mcp
      Copy to Clipboard

      出力例

      NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
      master   rendered-master-15961f1da260f7be141006404d17d39b   True      False      False      3              3                   3                     0                      39m
      worker   rendered-worker-5de4837625b1cbc237de6b22bc0bc873   True      False      False      3              0                   0                     0                      39m 
      1
      Copy to Clipboard

      1
      UPDATING フィールドが True の場合、マシン設定プールは新しいマシン設定で更新されます。この場合、新しいマシン設定は出力にリストされません。フィールドが False になると、ワーカーマシン設定プールが新しいマシン設定にロールアウトされます。
    4. ノードをチェックして、ノードのスケジューリングが無効になっていることを確認します。これは、変更が適用されていることを示しています。

      $ oc get nodes
      Copy to Clipboard

      出力例

      NAME                                         STATUS                     ROLES                  AGE   VERSION
      ip-10-0-148-79.us-west-1.compute.internal    Ready                      worker                 32m   v1.29.4
      ip-10-0-155-125.us-west-1.compute.internal   Ready,SchedulingDisabled   worker                 35m   v1.29.4
      ip-10-0-170-47.us-west-1.compute.internal    Ready                      control-plane,master   42m   v1.29.4
      ip-10-0-174-77.us-west-1.compute.internal    Ready                      control-plane,master   42m   v1.29.4
      ip-10-0-211-49.us-west-1.compute.internal    Ready                      control-plane,master   42m   v1.29.4
      ip-10-0-218-151.us-west-1.compute.internal   Ready                      worker                 31m   v1.29.4
      Copy to Clipboard

  2. ノードが Ready 状態に戻ったら、ノードがカスタムレイヤーイメージを使用していることを確認します。

    1. ノードへの oc debug セッションを開きます。以下に例を示します。

      $ oc debug node/ip-10-0-155-125.us-west-1.compute.internal
      Copy to Clipboard
    2. /host をデバッグシェル内のルートディレクトリーとして設定します。

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

      sh-4.4# sudo rpm-ostree status
      Copy to Clipboard

      出力例

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

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat