RHEL Image Mode を使用したインストール
MicroShift を bootc イメージに埋め込む
概要
第1章 MicroShift を使用した image mode for RHEL について リンクのコピーリンクがクリップボードにコピーされました!
Image Mode for Red Hat Enterprise Linux (RHEL) を使用して、MicroShift をオペレーティングシステムイメージに埋め込むことができます。
1.1. Image Mode for Red Hat Enterprise Linux (RHEL) について リンクのコピーリンクがクリップボードにコピーされました!
Image Mode for RHEL を使用すると、アプリケーションコンテナーで使用するのと同じツールとテクニックをオペレーティングシステムにも使用できます。Image Mode for RHEL は、コンテナーネイティブアプローチを使用して、オペレーティングシステムを rhel-bootc イメージとして構築、デプロイ、管理するデプロイメント方法です。
- このコンテナーイメージは、ベースオペレーティングシステムの更新の転送および配信形式として、標準の OCI または Docker コンテナーを使用します。
- bootc イメージには、オペレーティングシステムの起動に使用される Linux カーネルが含まれています。
- bootc コンテナーを使用すると、開発者、運用管理者、ソリューションプロバイダーはすべて、同じコンテナーネイティブのツールとテクニックを使用できます。
Image Mode for RHEL では、ソフトウェア変更の作成とインストールが 2 つの手順に分割されます。つまり、ビルドシステム上と実行中のターゲットシステム上の 2 つに分割されます。
- ビルドシステムのステップでは、Podman ビルドがインストールに使用可能な RPM ファイルを検査し、依存関係を判別して、完了するための連鎖的な手順の順序付きリストを作成します。その他のシステム設定手順が実行されると、最終的にはインストール可能な新しいオペレーティングシステムが完成します。
- running-target-system ステップでは、bootc update によって新しいオペレーティングシステムがダウンロードされ、展開され、現在稼働中のシステムと並行して起動できるように準備されます。ローカル設定の変更は、新しいオペレーティングシステムに引き継がれます。これらの変更は、システムが再起動され、新しいオペレーティングシステムイメージが以前実行されていたイメージを置き換えた場合にのみ有効になります。
1.2. イメージ構築の準備 リンクのコピーリンクがクリップボードにコピーされました!
Image Builder ツールを使用して、エッジデプロイメント用に最適化されたカスタマイズ済みの MicroShift bootc イメージを作成します。まず開発とテスト用に、Image Mode for RHEL でアプリケーションを使用して MicroShift クラスターを実行し、その後、ソリューション全体をエッジ実稼働環境で使用できます。
Image Mode for RHEL の使用に関する詳細を理解するには、次の RHEL ドキュメントを参照してください。
1.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
第2章 レジストリーへの bootc イメージのインストールと公開 リンクのコピーリンクがクリップボードにコピーされました!
MicroShift は、イメージモードコンテナーとしてビルドおよび公開されています。MicroShift を使用して Red Hat Enterprise Linux (RHEL) のブート可能なコンテナーイメージをインストールする場合は、事前に構築されたブート可能なコンテナーイメージを使用するか、独自のカスタムブート可能なコンテナーイメージを構築します。
2.1. MicroShift ワークフローを使用する image mode for RHEL リンクのコピーリンクがクリップボードにコピーされました!
Image Mode for RHEL を使用する前に、次のリソースが利用可能であることを確認してください。
- MicroShift bootc イメージを構築するための、アクティブな Red Hat サブスクリプションを備えた RHEL 9.6 ホスト。
-
rhel-bootcイメージを保存およびアクセスするためのリモートレジストリー。 - AArch64 または x86_64 システムアーキテクチャー。
MicroShift で Image Mode for RHEL を使用するワークフローには、次の手順が含まれます。
- 事前に構築された MicroShift コンテナーイメージを見つけ、これを使用して RHEL をインストールします。
- 事前に構築された MicroShift コンテナーイメージをカスタマイズする必要がある場合は、カスタム MicroShift コンテナーイメージを構築します。
- コンテナーイメージを実行します。
RHEL for Edge で使用される rpm-ostree ファイルシステムは、Image Mode for RHEL ではサポートされていません。Image Mode for RHEL を使用するデプロイメントを変更する目的で rpm-ostree ファイルシステムを使用しないでください。
2.2. bootc イメージの取得または構築 リンクのコピーリンクがクリップボードにコピーされました!
既存の bootc イメージを取得するか、新しいイメージを作成して、そのイメージをリモートレジストリーに公開して使用できます。
2.2.1. MicroShift の公開された bootc イメージの取得 リンクのコピーリンクがクリップボードにコピーされました!
MicroShift コンテナーイメージを使用して、Image Mode for RHEL をインストールできます。
前提条件
- x86_64 または AArch64 プラットフォームがある。
-
registry.redhat.ioレジストリーにアクセスできる。
手順
- Red Hat Ecosystem Catalog に移動します。
-
microshift-bootcキーワードを使用して、MicroShift コンテナーイメージを検索します。 - MicroShift コンテナーイメージのコンテナーイメージページを開きます。
-
イメージの詳細は、
OverviewタブとTechnical Informationタブを参照してください。 -
Get this imageタブを選択して、イメージのダウンロード手順を表示します。 次のコマンドを使用してレジストリーにログインして、x86_64 および AArch64 プラットフォームの最新イメージにアクセスします。
sudo podman login registry.redhat.io
$ sudo podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、bootc イメージをダウンロードします。
podman pull registry.redhat.io/openshift4/microshift-bootc-rhel9:v4.19
$ podman pull registry.redhat.io/openshift4/microshift-bootc-rhel9:v4.19Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. bootc イメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
Containerfile を使用して、MicroShift を含む Red Hat Enterprise Linux (RHEL) を起動可能なコンテナーイメージとして構築します。
前提条件
- MicroShift bootc イメージを構築し、コンテナーを実行するための、アクティブな Red Hat サブスクリプションを備えた RHEL 9.6 ホストがある。
-
sudoパーミッションを持つユーザー認証情報を使用して RHEL 9.6 ホストにログインしている。 -
rhocpおよびfast-datapathリポジトリーは、ホストサブスクリプションでアクセスできる。リポジトリーは必ずしもホスト上で有効にする必要はありません。 - bootc イメージを保存およびアクセスするための Red Hat Quay などのリモートレジストリーがある。
-
dnf install -y container-toolsコマンドを使用して、ホストにcontainer-toolsメタパッケージをインストールしている。メタパッケージには、追加のサポートとトラブルシューティングのための Podman、Buildah、Skopeo などのすべてのコンテナーツールが含まれています。これらのツールは、イメージを構築およびインストールする際に Red Hat Support チームから支援を受ける場合に必要です。
手順
以下の命令を含む Containerfile を作成します。
RHEL Image Mode の Containerfile の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Podman は、コンテナーイメージをビルドするときに、コンテナー内のホストのサブスクリプション情報とリポジトリーを使用します。rhocp および fast-datapath リポジトリーがホスト上で利用できないと、ビルドは失敗します。
PULL_SECRET環境変数を設定します。PULL_SECRET=~/.pull-secret.json
$ PULL_SECRET=~/.pull-secret.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow USER_PASSWD環境変数を設定します。USER_PASSWD=<redhat_user_password>
$ USER_PASSWD=<redhat_user_password>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <redhat_user_password> は、実際のパスワードに置き換えます。
IMAGE_NAME環境変数を設定します。IMAGE_NAME=microshift-4.19-bootc
$ IMAGE_NAME=microshift-4.19-bootcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のイメージビルドコマンドを実行して、ローカル bootc イメージを作成します。
sudo podman build --authfile "${PULL_SECRET}" -t "${IMAGE_NAME}" \ --build-arg USER_PASSWD="${USER_PASSWD}" \ -f Containerfile$ sudo podman build --authfile "${PULL_SECRET}" -t "${IMAGE_NAME}" \ --build-arg USER_PASSWD="${USER_PASSWD}" \ -f ContainerfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要イメージビルド中にシークレットが使用される方法
-
registry.redhat.ioレジストリーからベースrhel-bootc:9.6イメージをプルするには、podman--authfile引数が必要です。 -
ビルド
USER_PASSWD引数は、redhatユーザーのパスワードを設定するために使用されます。
-
検証
次のコマンドを実行して、ローカルの MicroShift ブートイメージが作成されたことを確認します。
sudo podman images "${IMAGE_NAME}"$ sudo podman images "${IMAGE_NAME}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/microshift-4.19-bootc latest 193425283c00 2 minutes ago 2.31 GB
REPOSITORY TAG IMAGE ID CREATED SIZE localhost/microshift-4.19-bootc latest 193425283c00 2 minutes ago 2.31 GBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. bootc イメージをリモートレジストリーに公開する リンクのコピーリンクがクリップボードにコピーされました!
bootc イメージをリモートレジストリーに公開すると、別のホストでコンテナーを実行する場合や、bootc イメージレイヤーを使用して新しいオペレーティングシステムをインストールする場合に、イメージを使用できるようになります。
前提条件
-
sudoパーミッションを持つユーザー認証情報を使用して、イメージが構築された RHEL 9.6 ホストにログインしている。 - bootc イメージを保存およびアクセスするための Red Hat Quay などのリモートレジストリーがある。
- Containerfile を作成し、イメージをビルドしている。
手順
次のコマンドを実行して、イメージの
REGISTRY_URL変数を設定します。REGISTRY_URL=<quay.io>
$ REGISTRY_URL=<quay.io>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <quay.io> は、イメージレジストリーの URL に置き換えます。
次のコマンドを実行して、リモートレジストリーにログインします。
sudo podman login "${REGISTRY_URL}"$ sudo podman login "${REGISTRY_URL}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、イメージの
IMAGE_NAME変数を設定します。IMAGE_NAME=<microshift-4.19-bootc>
$ IMAGE_NAME=<microshift-4.19-bootc>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <microshift-4.19-bootc> は、公開するイメージの名前に置き換えます。
次のコマンドを実行して、イメージの
REGISTRY_IMG変数を設定します。REGISTRY_IMG=<myorg/mypath>/"${IMAGE_NAME}"$ REGISTRY_IMG=<myorg/mypath>/"${IMAGE_NAME}"1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <myorg/mypath> を、リモートレジストリーの組織名とパスに置き換えます。
以下のコマンドを実行してイメージを公開します。
sudo podman push localhost/"${IMAGE_NAME}" "${REGISTRY_URL}/${REGISTRY_IMG}"$ sudo podman push localhost/"${IMAGE_NAME}" "${REGISTRY_URL}/${REGISTRY_IMG}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- 「MicroShift bootc コンテナーの実行」セクションで説明されているように、レジストリーにプッシュしたイメージを使用してコンテナーを実行します。
第3章 仮想マシンでの bootc イメージの実行 リンクのコピーリンクがクリップボードにコピーされました!
起動可能なコンテナーイメージをインストールソースとして使用して、Red Hat Enterprise Linux (RHEL) 仮想マシンをセットアップします。
3.1. キックスタートファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
インストール時に使用するキックスタートファイルを作成する必要があります。
前提条件
- root ユーザーアクセス権がある。
- 物理ハイパーバイザーホストにログインしている。
手順
次のコマンドを実行して、
kickstart.ksファイル内のシークレットファイルを参照して、プライベートコンテナーレジストリーアクセスを認証するようにAUTH_CONFIG環境変数を設定します。AUTH_CONFIG=~/.quay-auth.json
$ AUTH_CONFIG=~/.quay-auth.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
PULL_SECRET環境変数を設定してkickstart.ksファイル内のシークレットファイルを参照し、OpenShift Container Platform レジストリーアクセスを認証します。PULL_SECRET=~/.pull-secret.json
$ PULL_SECRET=~/.pull-secret.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、インストール時に使用するコンテナーイメージのイメージモードを参照する
IMAGE_REF環境変数を設定します。IMAGE_REF="quay.io/<myorg>/<mypath>/microshift-4.19-bootc"
$ IMAGE_REF="quay.io/<myorg>/<mypath>/microshift-4.19-bootc"1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <myorg/mypath> は、リモートレジストリーの組織名とパスに置き換えます。
次のスクリプトを実行して、インストール中に使用する
kickstart.ksファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux (RHEL) ブート ISO イメージを使用して、仮想マシンを作成できます。
前提条件
- キックスタートファイルを作成している。
-
OpenShift CLI (
oc) がインストールされている。 -
redhat認証情報がある。
手順
- Red Hat Enterprise Linux (RHEL) ブート ISO イメージを Red Hat Enterprise Linux のダウンロード からダウンロードします。
-
ダウンロードしたファイルを
/var/lib/libvirt/imagesディレクトリーにコピーします。 次のコマンドを実行して、VMNAME 環境変数を独自の値に設定します。
VMNAME=microshift-4.19-bootc
$ VMNAME=microshift-4.19-bootcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NETNAME 環境変数を独自の値に設定します。
NETNAME=default
$ NETNAME=defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、2 コア、2 GB の RAM、20 GB のストレージを備えた RHEL 仮想マシンを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記sudo virt-installコマンドは、キックスタートファイルを使用してリモートレジストリーから bootc イメージを取得し、RHEL オペレーティングシステムをインストールします。-
redhat認証情報を使用して仮想マシンにログインします。
検証
次のコマンドを入力して、すべての MicroShift Pod がエラーなしで実行されていることを確認します。
watch sudo oc get pods -A \ --kubeconfig /var/lib/microshift/resources/kubeadmin/kubeconfig$ watch sudo oc get pods -A \ --kubeconfig /var/lib/microshift/resources/kubeadmin/kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow