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.17 イメージからカスタムレイヤーイメージを作成し、カーネルパッケージを CentOS 9 Stream のカーネルパッケージでオーバーライドします。
カスタムレイヤーイメージの Containerfile の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Containerfile の作成方法は、このドキュメントの範囲外です。
-
カスタムレイヤーイメージをビルドするプロセスはクラスターの外部で実行されるため、Podman または Buildah で
--authfile/path/to/pull-secretオプションを使用する必要があります。あるいは、これらのツールでプルシークレットを自動的に読み取るようにするには、デフォルトのファイルの場所のいずれかに追加できます。~/.docker/config.json、$XDG_RUNTIME_DIR/containers/auth.json、~/.docker/config.json、または~/.dockercfg。詳細は、containers-auth.jsonのマニュアルページを参照してください。 - カスタムレイヤーイメージを、クラスターがアクセスできるリポジトリーにプッシュする必要があります。
手順
マシン設定プールを作成します。
以下のような YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MachineConfigオブジェクトを作成します。oc create -f <file_name>.yaml
$ oc create -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要クラスターにロールアウトする前に、実稼働環境の外でイメージをテストすることを強く推奨します。
検証
次のチェックのいずれかを実行することで、カスタムレイヤーイメージが適用されていることを確認できます。
ワーカーマシン設定プールが新しいマシン設定でロールアウトされていることを確認します。
新しいマシン設定が作成されたことを確認します。
oc get mc
$ oc get mcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいマシン設定の
osImageURL値が予測されるイメージを指していることを確認します。oc describe mc rendered-worker-5de4837625b1cbc237de6b22bc0bc873
$ oc describe mc rendered-worker-5de4837625b1cbc237de6b22bc0bc873Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 関連するマシン設定プールが新しいマシン設定で更新されていることを確認します。
oc get mcp
$ oc get mcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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
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 39m1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
UPDATINGフィールドがTrueの場合、マシン設定プールは新しいマシン設定で更新されます。この場合、新しいマシン設定は出力にリストされません。フィールドがFalseになると、ワーカーマシン設定プールが新しいマシン設定にロールアウトされます。
ノードをチェックして、ノードのスケジューリングが無効になっていることを確認します。これは、変更が適用されていることを示しています。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ノードが
Ready状態に戻ったら、ノードがカスタムレイヤーイメージを使用していることを確認します。ノードへの
oc debugセッションを開きます。以下に例を示します。oc debug node/ip-10-0-155-125.us-west-1.compute.internal
$ oc debug node/ip-10-0-155-125.us-west-1.compute.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow /hostをデバッグシェル内のルートディレクトリーとして設定します。chroot /host
sh-4.4# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow rpm-ostree statusコマンドを実行して、カスタムレイヤーイメージが使用されていることを確認します。sudo rpm-ostree status
sh-4.4# sudo rpm-ostree statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
State: idle Deployments: * ostree-unverified-registry:quay.io/my-registry/... Digest: sha256:...State: idle Deployments: * ostree-unverified-registry:quay.io/my-registry/... Digest: sha256:...Copy to Clipboard Copied! Toggle word wrap Toggle overflow