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