RHEL Image Mode を使用したインストール


Red Hat build of MicroShift 4.19

MicroShift を bootc イメージに埋め込む

Red Hat OpenShift Documentation Team

概要

Image Mode for Red Hat Enterprise Linux (RHEL) を使用して、MicroShift を bootc イメージに埋め込むことができます。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 を使用するワークフローには、次の手順が含まれます。

  1. 事前に構築された MicroShift コンテナーイメージを見つけ、これを使用して RHEL をインストールします。
  2. 事前に構築された MicroShift コンテナーイメージをカスタマイズする必要がある場合は、カスタム MicroShift コンテナーイメージを構築します。
  3. コンテナーイメージを実行します。
重要

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 レジストリーにアクセスできる。

手順

  1. Red Hat Ecosystem Catalog に移動します。
  2. microshift-bootc キーワードを使用して、MicroShift コンテナーイメージを検索します。
  3. MicroShift コンテナーイメージのコンテナーイメージページを開きます。
  4. イメージの詳細は、Overview タブと Technical Information タブを参照してください。
  5. Get this image タブを選択して、イメージのダウンロード手順を表示します。
  6. 次のコマンドを使用してレジストリーにログインして、x86_64 および AArch64 プラットフォームの最新イメージにアクセスします。

    $ sudo podman login registry.redhat.io
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行して、bootc イメージをダウンロードします。

    $ podman pull registry.redhat.io/openshift4/microshift-bootc-rhel9:v4.19
    Copy to Clipboard Toggle word wrap

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 チームから支援を受ける場合に必要です。

手順

  1. 以下の命令を含む Containerfile を作成します。

    RHEL Image Mode の Containerfile の例

    FROM registry.redhat.io/rhel9/rhel-bootc:9.6
    
    ARG USHIFT_VER=4.19
    RUN dnf config-manager \
            --set-enabled rhocp-${USHIFT_VER}-for-rhel-9-$(uname -m)-rpms \
            --set-enabled fast-datapath-for-rhel-9-$(uname -m)-rpms
    RUN dnf install -y firewalld microshift && \
        systemctl enable microshift && \
        dnf clean all
    
    # Create a default 'redhat' user with the specified password.
    # Add it to the 'wheel' group to allow for running sudo commands.
    ARG USER_PASSWD
    RUN if [ -z "${USER_PASSWD}" ] ; then \
            echo USER_PASSWD is a mandatory build argument && exit 1 ; \
        fi
    RUN useradd -m -d /var/home/redhat -G wheel redhat && \
        echo "redhat:${USER_PASSWD}" | chpasswd
    
    # Mandatory firewall configuration
    RUN firewall-offline-cmd --zone=public --add-port=22/tcp && \
        firewall-offline-cmd --zone=trusted --add-source=10.42.0.0/16 && \
        firewall-offline-cmd --zone=trusted --add-source=169.254.169.1
    
    # Create a systemd unit to recursively make the root filesystem subtree
    # shared as required by OVN images
    RUN cat > /etc/systemd/system/microshift-make-rshared.service <<'EOF'
    [Unit]
    Description=Make root filesystem shared
    Before=microshift.service
    ConditionVirtualization=container
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/mount --make-rshared /
    [Install]
    WantedBy=multi-user.target
    EOF
    RUN systemctl enable microshift-make-rshared.service
    Copy to Clipboard Toggle word wrap

Podman は、コンテナーイメージをビルドするときに、コンテナー内のホストのサブスクリプション情報とリポジトリーを使用します。rhocp および fast-datapath リポジトリーがホスト上で利用できないと、ビルドは失敗します。

  1. PULL_SECRET 環境変数を設定します。

    $ PULL_SECRET=~/.pull-secret.json
    Copy to Clipboard Toggle word wrap
  2. USER_PASSWD 環境変数を設定します。

    $ USER_PASSWD=<redhat_user_password> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <redhat_user_password> は、実際のパスワードに置き換えます。
  3. IMAGE_NAME 環境変数を設定します。

    $ IMAGE_NAME=microshift-4.19-bootc
    Copy to Clipboard Toggle word wrap
  4. 次のイメージビルドコマンドを実行して、ローカル bootc イメージを作成します。

    $ sudo podman build --authfile "${PULL_SECRET}" -t "${IMAGE_NAME}" \
        --build-arg USER_PASSWD="${USER_PASSWD}" \
        -f Containerfile
    Copy to Clipboard Toggle word wrap
    重要

    イメージビルド中にシークレットが使用される方法

    • registry.redhat.io レジストリーからベース rhel-bootc:9.6 イメージをプルするには、podman --authfile 引数が必要です。
    • ビルド USER_PASSWD 引数は、redhat ユーザーのパスワードを設定するために使用されます。

検証

  1. 次のコマンドを実行して、ローカルの MicroShift ブートイメージが作成されたことを確認します。

    $ sudo podman images "${IMAGE_NAME}"
    Copy to Clipboard Toggle word wrap

    出力例

    REPOSITORY                       TAG         IMAGE ID      CREATED        SIZE
    localhost/microshift-4.19-bootc  latest      193425283c00  2 minutes ago  2.31 GB
    Copy to Clipboard Toggle word wrap

2.3. bootc イメージをリモートレジストリーに公開する

bootc イメージをリモートレジストリーに公開すると、別のホストでコンテナーを実行する場合や、bootc イメージレイヤーを使用して新しいオペレーティングシステムをインストールする場合に、イメージを使用できるようになります。

前提条件

  • sudo パーミッションを持つユーザー認証情報を使用して、イメージが構築された RHEL 9.6 ホストにログインしている。
  • bootc イメージを保存およびアクセスするための Red Hat Quay などのリモートレジストリーがある。
  • Containerfile を作成し、イメージをビルドしている。

手順

  1. 次のコマンドを実行して、イメージの REGISTRY_URL 変数を設定します。

    $ REGISTRY_URL=<quay.io> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <quay.io> は、イメージレジストリーの URL に置き換えます。
  2. 次のコマンドを実行して、リモートレジストリーにログインします。

    $ sudo podman login "${REGISTRY_URL}"
    Copy to Clipboard Toggle word wrap
  3. 以下のコマンドを実行して、イメージの IMAGE_NAME 変数を設定します。

    $ IMAGE_NAME=<microshift-4.19-bootc> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <microshift-4.19-bootc> は、公開するイメージの名前に置き換えます。
  4. 次のコマンドを実行して、イメージの REGISTRY_IMG 変数を設定します。

    $ REGISTRY_IMG=<myorg/mypath>/"${IMAGE_NAME}" 
    1
    Copy to Clipboard Toggle word wrap
    1
    <myorg/mypath> を、リモートレジストリーの組織名とパスに置き換えます。
  5. 以下のコマンドを実行してイメージを公開します。

    $ sudo podman push localhost/"${IMAGE_NAME}" "${REGISTRY_URL}/${REGISTRY_IMG}"
    Copy to Clipboard Toggle word wrap

検証

  1. 「MicroShift bootc コンテナーの実行」セクションで説明されているように、レジストリーにプッシュしたイメージを使用してコンテナーを実行します。

第3章 仮想マシンでの bootc イメージの実行

起動可能なコンテナーイメージをインストールソースとして使用して、Red Hat Enterprise Linux (RHEL) 仮想マシンをセットアップします。

3.1. キックスタートファイルの作成

インストール時に使用するキックスタートファイルを作成する必要があります。

前提条件

  • root ユーザーアクセス権がある。
  • 物理ハイパーバイザーホストにログインしている。

手順

  1. 次のコマンドを実行して、kickstart.ks ファイル内のシークレットファイルを参照して、プライベートコンテナーレジストリーアクセスを認証するように AUTH_CONFIG 環境変数を設定します。

    $ AUTH_CONFIG=~/.quay-auth.json
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、PULL_SECRET 環境変数を設定して kickstart.ks ファイル内のシークレットファイルを参照し、OpenShift Container Platform レジストリーアクセスを認証します。

    $ PULL_SECRET=~/.pull-secret.json
    Copy to Clipboard Toggle word wrap
  3. 以下のコマンドを実行して、インストール時に使用するコンテナーイメージのイメージモードを参照する IMAGE_REF 環境変数を設定します。

    $ IMAGE_REF="quay.io/<myorg>/<mypath>/microshift-4.19-bootc" 
    1
    Copy to Clipboard Toggle word wrap
    1
    <myorg/mypath> は、リモートレジストリーの組織名とパスに置き換えます。
  4. 次のスクリプトを実行して、インストール中に使用する kickstart.ks ファイルを作成します。

    $ cat > kickstart.ks <<EOFKS
    lang en_US.UTF-8
    keyboard us
    timezone UTC
    text
    reboot
    
    # Partition the disk with hardware-specific boot and swap partitions, adding an
    # LVM volume that contains a 10GB+ system root. The remainder of the volume will
    # be used by the CSI driver for storing data.
    zerombr
    clearpart --all --initlabel
    # Create boot and swap partitions as required by the current hardware platform
    reqpart --add-boot
    # Add an LVM volume group and allocate a system root logical volume
    part pv.01 --grow
    volgroup rhel pv.01
    logvol / --vgname=rhel --fstype=xfs --size=10240 --name=root
    
    # Lock root user account
    rootpw --lock
    
    # Configure network to use DHCP and activate on boot
    network --bootproto=dhcp --device=link --activate --onboot=on
    
    %pre-install --log=/dev/console --erroronfail
    
    # Create a 'bootc' image registry authentication file
    mkdir -p /etc/ostree
    cat > /etc/ostree/auth.json <<'EOF'
    $(cat "${AUTH_CONFIG}")
    EOF
    
    %end
    
    # Pull a 'bootc' image from a remote registry
    ostreecontainer --url "${IMAGE_REF}"
    
    %post --log=/dev/console --erroronfail
    
    # Create an OpenShift pull secret file
    cat > /etc/crio/openshift-pull-secret <<'EOF'
    $(cat "${PULL_SECRET}")
    EOF
    chmod 600 /etc/crio/openshift-pull-secret
    
    %end
    EOFKS
    Copy to Clipboard Toggle word wrap

3.2. 仮想マシンの作成

Red Hat Enterprise Linux (RHEL) ブート ISO イメージを使用して、仮想マシンを作成できます。

前提条件

  • キックスタートファイルを作成している。
  • OpenShift CLI (oc) がインストールされている。
  • redhat 認証情報がある。

手順

  1. Red Hat Enterprise Linux (RHEL) ブート ISO イメージを Red Hat Enterprise Linux のダウンロード からダウンロードします。
  2. ダウンロードしたファイルを /var/lib/libvirt/images ディレクトリーにコピーします。
  3. 次のコマンドを実行して、VMNAME 環境変数を独自の値に設定します。

    $ VMNAME=microshift-4.19-bootc
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して、NETNAME 環境変数を独自の値に設定します。

    $ NETNAME=default
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、2 コア、2 GB の RAM、20 GB のストレージを備えた RHEL 仮想マシンを作成します。

    $ sudo virt-install \
        --name ${VMNAME} \
        --vcpus 2 \
        --memory 2048 \
        --disk path=/var/lib/libvirt/images/${VMNAME}.qcow2,size=20 \
        --network network=${NETNAME},model=virtio \
        --events on_reboot=restart \
        --location /var/lib/libvirt/images/rhel-9.6-$(uname -m)-boot.iso \
        --initrd-inject kickstart.ks \
        --extra-args "inst.ks=file://kickstart.ks" \
        --wait
    Copy to Clipboard Toggle word wrap
    注記

    sudo virt-install コマンドは、キックスタートファイルを使用してリモートレジストリーから bootc イメージを取得し、RHEL オペレーティングシステムをインストールします。

  6. redhat 認証情報を使用して仮想マシンにログインします。

検証

  1. 次のコマンドを入力して、すべての MicroShift Pod がエラーなしで実行されていることを確認します。

    $ watch sudo oc get pods -A \
        --kubeconfig /var/lib/microshift/resources/kubeadmin/kubeconfig
    Copy to Clipboard Toggle word wrap

    出力例

    NAMESPACE                  NAME                                       READY   STATUS    RESTARTS      AGE
    kube-system                csi-snapshot-controller-7cfb9df49c-kc9dx   1/1     Running   0             31s
    openshift-dns              dns-default-rpnlt                          2/2     Running   0             14s
    openshift-dns              node-resolver-rxvdk                        1/1     Running   0             31s
    openshift-ingress          router-default-69cd7b5545-7zcw7            1/1     Running   0             29s
    openshift-ovn-kubernetes   ovnkube-master-c7hlh                       4/4     Running   1 (16s ago)   31s
    openshift-ovn-kubernetes   ovnkube-node-mkpht                         1/1     Running   1 (17s ago)   31s
    openshift-service-ca       service-ca-5d5d96459d-5pd5s                1/1     Running   0             28s
    openshift-storage          topolvm-controller-677cbfcdb9-28dqr        5/5     Running   0             31s
    openshift-storage          topolvm-node-6fzbl                         3/3     Running   0             14s
    Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat