第3章 オフラインで使用するための RHEL for Edge イメージへの埋め込み
rpm-ostree
コミットに MicroShift コンテナーを埋め込むと、エアギャップ環境、非接続環境、またはオフライン環境でクラスターを実行できます。MicroShift コンテナーを Red Hat Enterprise Linux for Edge (RHEL for Edge) イメージに埋め込むことで、コンテナーエンジンがコンテナーレジストリーからネットワーク経由でイメージをプルする必要がなくなります。ネットワーク接続がなくても、ワークロードをすぐに起動できます。
3.1. オフラインデプロイ用の MicroShift コンテナーの埋め込み
Image Builder を使用して、組み込みの MicroShift コンテナーイメージで RHEL for Edge イメージを作成できます。コンテナーイメージを埋め込むには、Image Builder ブループリントファイルにイメージ参照を追加する必要があります。
前提条件
- ビルドホストへの root ユーザーアクセス権がある。
- ビルドホストが Image Builder のシステム要件を満たしている。
-
Image Builder と
composer-cli
ツールをインストールしてセットアップしている。 - RHEL for Edge イメージのブループリントを作成している。
- jq がインストールされている。
手順
-
デプロイする MicroShift バージョンで使用されるコンテナーイメージ参照の正確なリストを取得します。手順 2 に従って
microshift-release-info
RPM パッケージをインストールするか、手順 3 に従って RPM をダウンロードして展開します。 microshift-release-info
RPM パッケージをインストールするには、以下を実行します。次のコマンドを実行して、
microshift-release-info
RPM パッケージをインストールします。$ sudo dnf install -y microshift-release-info-<release_version>
<release_version>
は、デプロイするリリースの番号に置き換えます。完全なバージョン番号 (4.18.1
など) を使用してください。次のコマンドを実行して、
/usr/share/microshift/release
ディレクトリーの内容をリスト表示し、リリース情報ファイルの存在を確認します。$ sudo ls /usr/share/microshift/release
出力例
release-x86_64.json release-aarch64.json
microshift-release-info
RPM をインストールしている場合は、ステップ 4 に進みます。
手順 2 を完了していない場合は、
microshift-release-info
RPM をインストールせずにダウンロードして展開します。次のコマンドを実行して、RPM パッケージをダウンロードします。
$ sudo dnf download microshift-release-info-<release_version> 1
- 1
- <
;release_version>
; を、4.18.1 などのバージョン番号全体を使用して、デプロイするリリースの数値に置き換えます
。
RPM の出力例
microshift-release-info-4.18.1.-202511101230.p0.g7dc6a00.assembly.4.18.1.el9.noarch.rpm
次のコマンドを実行して、RPM パッケージをインストールせずに展開します。
$ rpm2cpio <my_microshift_release_info> | cpio -idmv 1 ./usr/share/microshift/release/release-aarch64.json ./usr/share/microshift/release/release-x86_64.json
- 1
- &
lt;my_microshift_release_info>
; を前の手順の RPM パッケージの名前に置き換えます。
次のコマンドを実行して、コンテナー参照情報が含まれる JSON ファイルの場所を定義します。
$ RELEASE_FILE=</path/to/your/release-$(uname -m).json> 1
- 1
- &
lt;/path/to/your/release-$(uname -m).json>
を JSON ファイルへのフルパスに置き換えます。必ずアーキテクチャーに必要なファイルを使用してください。
次のコマンドを実行して、イメージをビルドする手順が含まれる TOML ファイルの場所を定義します。
$ BLUEPRINT_FILE=</path/to/your/blueprint.toml> 1
- 1
- &
lt;/path/to/your/blueprint.toml>
を TOML ファイルへのフルパスに置き換えます。
次のコマンドを実行して、コンテナーイメージ参照を生成し、ブループリント TOML ファイルに埋め込みます。
$ jq -r '.images | .[] | ("[[containers]]\nsource = \"" + . + "\"\n")' "${RELEASE_FILE}" >> "${BLUEPRINT_FILE}"
コンテナー参照を示す生成される TOML フラグメントの例
[[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db" [[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db"
次の例を使用して、Image Builder のブループリントファイルに追加することで、コンテナーイメージを手動で埋め込むことができます。
コンテナーイメージをブループリントに手動で埋め込むセクションの例
[[containers]] source = "<my_image_pullspec_with_tag_or_digest>"
&
lt;my_image_pullspec_with_tag_or_digest
> を、デプロイする MicroShift バージョンで使用されるコンテナーイメージへの正確な参照に置き換えます。