RHEL for Edge イメージへの埋め込み


Red Hat build of MicroShift 4.19

RHEL for Edge イメージへの埋め込み

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、サポートされているバージョンの RHEL を搭載したマシンに RPM パッケージから MicroShift をインストールする方法を説明します。

第1章 Image Builder を使用した RHEL for Edge イメージへの埋め込み

このガイドを使用して、MicroShift を含む RHEL イメージを構築します。

1.1. イメージ構築の準備

Image Builder ツールを使用して、エッジデプロイメントに最適化となるようにカスタマイズされた Red Hat Enterprise Linux for Edge (RHEL for Edge) イメージを作成します。まず開発とテストのために、RHEL for Edge 仮想マシン上でアプリケーションを含む MicroShift クラスターを実行し、その後、ソリューション全体をエッジ実稼働環境で使用できます。

RHEL for Edge の使用に関する詳細は、次の RHEL ドキュメントを参照してください。

1.2. イメージ構築のための拡張サポートリポジトリーの有効化

MicroShift または Red Hat Enterprise Linux (RHEL) の Extended Update Support (EUS) リリースをお持ちの場合は、Image Builder が使用できるように RHEL EUS リポジトリーを有効にする必要があります。EUS バージョンをお持ちでない場合は、これらの手順をスキップできます。

前提条件

警告

Red Hat Device Edge のサポートされている設定でコンポーネントのバージョンを維持するには、MicroShift と RHEL を同時に更新する必要がある場合があります。特に 2 つのマイナーバージョン間で MicroShift を更新する場合は、更新先の MicroShift のバージョンと、RHEL のバージョンの互換性があることを確認してください。そうしないと、サポートされていない設定を作成したり、クラスターを破損させたり、あるいはその両方を引き起こす可能性があります。詳細は、Red Hat Device Edge リリースの互換性に関する表 を参照してください。

手順

  1. 次のコマンドを実行して、/etc/osbuild-composer/repositories ディレクトリーを作成します。

    $ sudo mkdir -p /etc/osbuild-composer/repositories
  2. 次のコマンドを実行して、/usr/share/osbuild-composer/repositories/rhel-9.6.json ファイルを /etc/osbuild-composer/repositories ディレクトリーにコピーします。

    $ sudo cp /usr/share/osbuild-composer/repositories/rhel-9.6.json /etc/osbuild-composer/repositories/rhel-9.6.json
  3. 次の値で /etc/osbuild-composer/repositories/rhel-9.6.json ファイルを変更して、baseos ソースを更新します。

    # ...
    "baseurl": "https://cdn.redhat.com/content/eus/rhel9/9.6//baseos/os", 
    1
    
    # ...
    1
    この例の値と異なる場合は、9 を、使用している RHEL のメジャーバージョンに置き換え、9.6<major.minor> バージョンに置き換えることができます。選択した RHEL バージョンが、使用している MicroShift バージョンと互換性があることを確認してください。
  4. オプション: 以下のコマンドを実行して baseos 更新を適用します。

    $ sudo sed -i "s,dist/rhel9/9.6/$(uname -m)/baseos/,eus/rhel9/9.6/$(uname -m)/baseos/,g" \
    /etc/osbuild-composer/repositories/rhel-9.6.json 
    1
    1
    この例の値と異なる場合は、9 を、使用している RHEL のメジャーバージョンに置き換え、9.6<major.minor> バージョンに置き換えることができます。選択した RHEL バージョンが、使用している MicroShift バージョンと互換性があることを確認してください。
  5. /etc/osbuild-composer/repositories/rhel-<major.minor>.json ファイルを次の値に変更して、appstream ソースを更新します。

    # ...
    "baseurl": "https://cdn.redhat.com/content/eus/rhel9/9.6//appstream/os", 
    1
    
    # ...
    1
    この例の値と異なる場合は、9 を、使用している RHEL のメジャーバージョンに置き換え、9.6<major.minor> バージョンに置き換えることができます。選択した RHEL バージョンが、使用している MicroShift バージョンと互換性があることを確認してください。
  6. オプション: 以下のコマンドを実行して appstream の更新を適用します。

    $ sudo sed -i "s,dist/rhel9/9.6/$(uname -m)/appstream/,eus/rhel9/9.6/$(uname -m)/appstream/,g" \
    /etc/osbuild-composer/repositories/rhel-9.6.json 
    1
    1
    この例の値と異なる場合は、9 を、使用している RHEL のメジャーバージョンに置き換え、9.6<major.minor> バージョンに置き換えることができます。選択した RHEL バージョンが、使用している MicroShift バージョンと互換性があることを確認してください。

検証

composer-cli ツールを使用してソースに関する情報を表示することで、リポジトリーを検証できます。

  1. 以下のコマンドを実行して baseos ソースを確認します。

    $ sudo composer-cli sources info baseos | grep 'url ='

    出力例

    url = "https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/baseos/os"

  2. 以下のコマンドを実行して appstream ソースを確認します。

    $ sudo composer-cli sources info appstream | grep 'url ='

    出力例

    url = "https://cdn.redhat.com/content/eus/rhel9/9.6/x86_64/appstream/os"

1.3. Image Builder への MicroShift リポジトリーの追加

次の手順を使用して、ビルドホスト上の Image Builder に MicroShift リポジトリーを追加します。

前提条件

  • ビルドホストが Image Builder のシステム要件を満たしている。
  • Image Builder と composer-cli ツールをインストールしてセットアップしている。
  • ビルドホストへの root ユーザーアクセス権がある。

手順

  1. 次のコマンドを実行して、MicroShift の RPM をプルするために必要な rhocp-4.19 RPM リポジトリーソースを追加するための Image Builder 設定ファイルを作成します。

    cat > rhocp-4.19.toml <<EOF
    id = "rhocp-4.19"
    name = "Red Hat OpenShift Container Platform 4.19 for RHEL 9"
    type = "yum-baseurl"
    url = "https://cdn.redhat.com/content/dist/layered/rhel9/$(uname -m)/rhocp/4.19/os"
    check_gpg = true
    check_ssl = true
    system = false
    rhsm = true
    EOF
  2. 次のコマンドを実行して、fast-datapath RPM リポジトリーを追加した Image Builder 設定ファイルを作成します。

    cat > fast-datapath.toml <<EOF
    id = "fast-datapath"
    name = "Fast Datapath for RHEL 9"
    type = "yum-baseurl"
    url = "https://cdn.redhat.com/content/dist/layered/rhel9/$(uname -m)/fast-datapath/os"
    check_gpg = true
    check_ssl = true
    system = false
    rhsm = true
    EOF
  3. 次のコマンドを実行して、Image Builder にソースを追加します。

    $ sudo composer-cli sources add rhocp-4.19.toml
    $ sudo composer-cli sources add fast-datapath.toml

検証

  • 以下のコマンドを実行して、ソースが適切に追加されたことを確認します。

    $ sudo composer-cli sources list

    出力例

    appstream
    baseos
    fast-datapath
    rhocp-4.19

1.4. ブループリントへの MicroShift サービスの追加

MicroShift RPM パッケージを Image Builder ブループリントに追加すると、MicroShift が埋め込まれた RHEL for Edge イメージをビルドできるようになります。

手順

  1. /usr/share/microshift/blueprint ディレクトリーにインストールされている、プラットフォームアーキテクチャーに固有のブループリントを使用します。ブループリントセクションの説明は、次のサンプルスニペットを参照してください。

    生成された Image Builder ブループリントのサンプルスニペット

    name = "microshift_blueprint"
    description = "MicroShift 4.19.1 on x86_64 platform"
    version = "0.0.1"
    modules = []
    groups = []
    
    [[packages]] 
    1
    
    name = "microshift"
    version = "4.19.1"
    ...
    ...
    
    [customizations.services] 
    2
    
    enabled = ["microshift"]
    
    [customizations.firewall]
    ports = ["ssh"]
    ...
    ...
    
    [[containers]] 
    3
    
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f41e79c17e8b41f1b0a5a32c3e2dd7cd15b8274554d3f1ba12b2598a347475f4"
    
    [[containers]]
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:dbc65f1fba7d92b36cf7514cd130fe83a9bd211005ddb23a8dc479e0eea645fd"
    ...
    …
    EOF

    1
    microshift-release-info RPM と互換性のある同じバージョンを使用する、オプション以外のすべての MicroShift RPM パッケージの参照。
    2
    システム起動時に MicroShift を自動的に有効にし、デフォルトのネットワーク設定を適用するための参照。
    3
    オフラインデプロイメントに必要なオプション以外のすべての MicroShift コンテナーイメージの参照。SHA は使用しているリリースにより異なります。
  2. 次のコマンドを実行して、Image Builder にブループリントを追加します。

    $ sudo composer-cli blueprints push microshift_blueprint.toml

検証

  1. 次のコマンドを実行して、MicroShift パッケージのみをリストした Image Builder 設定を確認します。

    $ sudo composer-cli blueprints depsolve microshift_blueprint | grep microshift

    出力例

    blueprint: microshift_blueprint v0.0.1
        microshift-release-info-4.19.1-202511250827.p0.g4105d3b.assembly.4.19.1.el9.noarch
        microshift-4.19.1-202511250827.p0.g4105d3b.assembly.4.19.1.el9.x86_64

  2. オプション: 次のコマンドを実行して、インストールするすべてのコンポーネントをリストした Image Builder 設定を確認します。

    $ sudo composer-cli blueprints depsolve microshift_blueprint

1.5. ブループリントへのその他のパッケージの追加

オプションの RPM パッケージの参照を ostree ブループリントに追加して有効にします。

前提条件

  • Image Builder のブループリントファイルを作成している。

手順

  1. 次のコマンドを実行して、ostree ブループリントを編集します。

    $ vi <microshift_blueprint.toml> 
    1
    1
    <microshift_blueprint.toml> は、MicroShift サービスに使用されるブループリントファイルの名前に置き換えます。
  2. 以下のサンプルテキストをブループリントに追加します。

    [[packages]] 
    1
    
    name = "<microshift-additional-package-name>" 
    2
    
    version = "*"
    1
    追加するサービスごとに 1 つのスタンザを含めます。
    2
    <microshift-additional-package-name> は、追加するサービスの RPM の名前に置き換えます。たとえば、microshift-olm です。

次のステップ

  1. 必要に応じて、ブループリントにカスタム証明局を追加します。
  2. ブループリントへの追加が完了したら、新しい ostree システムを構築してクライアントにデプロイすることで、マニフェストをアクティブなクラスターに適用できます。

    • ISO の作成
    • ブループリントの追加、ISO のビルド
    • ISO のダウンロードおよび使用準備
    • 必要なプロビジョニングの実行

1.6. 認証局バンドルの追加

MicroShift は、クライアントがサーバー証明書を評価するときにホスト信頼バンドルを使用します。カスタマイズされたセキュリティー証明書チェーンを使用して、デプロイメント固有のクライアントとエンドポイント証明書の互換性を向上させることもできます。これを行うには、ルート証明書と中間証明書を含む認証局 (CA) バンドルを Red Hat Enterprise Linux for Edge (RHEL for Edge) システム全体の信頼ストアに追加できます。

1.6.1. rpm-ostree イメージへの認証局バンドルの追加

イメージの作成に使用するブループリントに別の信頼できる認証局 (CA) を追加することで、Red Hat Enterprise Linux for Edge (RHEL for Edge) rpm-ostree イメージに追加の信頼できる認証局 (CA) を含めることができます。次の手順を使用すると、イメージレジストリーからイメージを取得するときにオペレーティングシステムによって信頼される別の CA が設定されます。

注記

この手順では、ブループリントで CA バンドルのカスタマイズを設定してから、キックスタートファイルに手順を追加してバンドルを有効にする必要があります。次の手順では、data がキーで、<value> は PEM エンコードされた証明書を表します。

前提条件

  • ビルドホストへの root ユーザーアクセス権がある。
  • ビルドホストが Image Builder のシステム要件を満たしている。
  • Image Builder と composer-cli ツールをインストールしてセットアップしている。

手順

  1. 次のカスタム値をブループリントに追加して、ディレクトリーを追加します。

    1. イメージがビルドされるホスト上のブループリントに指示を追加して、証明書バンドル用のディレクトリー (/etc/pki/ca-trust/source/anchors/ など) を作成します。

      [[customizations.directories]]
      path = "/etc/pki/ca-trust/source/anchors"
    2. イメージが起動したら、証明書バンドル (/etc/pki/ca-trust/source/anchors/cert1.pem など) を作成します。

      [[customizations.files]]
      path = "/etc/pki/ca-trust/source/anchors/cert1.pem"
      data = "<value>"
  2. システム全体のトラストストア設定で証明書バンドルを有効にするには、以下のように、使用しているイメージが起動されているホストで update-ca-trust コマンドを使用します。

    $ sudo update-ca-trust
    注記

    update-ca-trust コマンドは、MicroShift ホストのインストールに使用されるキックスタートファイルの %post セクションに含まれている場合があります。この設定により、最初の起動時に必要なすべての証明書の信頼が有効になります。キックスタートファイルに手順を追加してバンドルを有効にする前に、ブループリントで CA バンドルのカスタマイズを設定する必要があります。

    %post
    # Update certificate trust storage in case new certificates were
    # installed at /etc/pki/ca-trust/source/anchors directory
    update-ca-trust
    %end

1.7. Image Builder を使用した RHEL for Edge イメージの作成

ISO を作成するには、以下の手順を使用します。RHEL for Edge Installer イメージは、実行中のコンテナーからコミットをプルし、埋め込みの rpm-ostree コミットを使用するように設定されたキックスタートファイルを持つ、インストール可能なブート ISO を作成します。

前提条件

  • ビルドホストが Image Builder のシステム要件を満たしている。
  • Image Builder と composer-cli ツールをインストールしてセットアップしている。
  • ビルドホストへの root ユーザーアクセス権がある。
  • podman ツールがインストールされている。

手順

  1. 次のコマンドを実行して、ostree コンテナーイメージビルドを開始します。

    $ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}') 
    1
    1
    <microshift_blueprint> は、ブループリントの名前に置き換えます。

    このコマンドは、監視対象のビルドの ID (ID) も返します。

  2. 次のコマンドを実行して、ビルドのステータスを定期的に確認できます。

    $ sudo composer-cli compose status

    実行中のビルドの出力例

    ID                                     Status     Time                     Blueprint                 Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   RUNNING    Wed Jun 7 12:26:23 2023  microshift_blueprint      0.0.1     edge-container

    完了したビルドの出力例

    ID                                     Status     Time                      Blueprint              Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   FINISHED   Wed Jun 7 12:32:37 2023   microshift_blueprint   0.0.1     edge-container

    注記

    起動および停止方法を理解している場合は、watch コマンドを使用してビルドを監視できます。

  3. ID を使用してコンテナーイメージをダウンロードし、次のコマンドを実行して、使用可能なイメージを取得します。

    $ sudo composer-cli compose image ${BUILDID}
  4. 次のコマンドを実行して、ダウンロードしたコンテナーイメージの所有権を現在のユーザーに変更します。

    $ sudo chown $(whoami). ${BUILDID}-container.tar
  5. 次のコマンドを実行して、現在のユーザーの読み取り権限をイメージに追加します。

    $ sudo chmod a+r ${BUILDID}-container.tar
  6. 次の手順を実行して、ostree コンテナーイメージが ISO ビルドで使用されるようにポート 8085 でサーバーをブートストラップします。

    1. 次のコマンドを実行して、IMAGEID 変数の結果を取得します。

      $ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
    2. IMAGEID 変数の結果をもとに、次のコマンドを実行して podman コマンドを実行します。

      $ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}

      このコマンドは、監視用に IMAGEID 変数に保存されているコンテナーの ID も返します。

  7. 次のコマンドを実行して、インストーラーブループリントファイルを生成します。

    cat > microshift-installer.toml <<EOF
    name = "microshift-installer"
    
    description = ""
    version = "0.0.0"
    modules = []
    groups = []
    packages = []
    EOF

1.8. Image Builder へのブループリントの追加および ISO の構築

  1. 次のコマンドを実行して、Image Builder にブループリントを追加します。

    $ sudo composer-cli blueprints push microshift-installer.toml
  2. 以下のコマンドを実行して ostree ISO ビルドを開始します。

    $ BUILDID=$(sudo composer-cli compose start-ostree --url http://localhost:8085/repo/ --ref "rhel/9/$(uname -m)/edge" microshift-installer edge-installer | awk '{print $2}')

    このコマンドは、監視対象のビルドの ID (ID) も返します。

  3. 次のコマンドを実行して、ビルドのステータスを定期的に確認できます。

    $ sudo composer-cli compose status

    実行中のビルドの出力例

    ID                                     Status     Time                      Blueprint              Version   Type               Size
    c793c24f-ca2c-4c79-b5b7-ba36f5078e8d   RUNNING    Wed Jun 7 13:22:20 2023   microshift-installer   0.0.0     edge-installer

    完了したビルドの出力例

    ID                                     Status     Time                      Blueprint              Version   Type               Size
    c793c24f-ca2c-4c79-b5b7-ba36f5078e8d   FINISHED   Wed Jun 7 13:34:49 2023   microshift-installer   0.0.0     edge-installer

1.9. ISO のダウンロードおよび使用準備

  1. 以下のコマンドを実行して、ID を使用して ISO をダウンロードします。

    $ sudo composer-cli compose image ${BUILDID}
  2. 次のコマンドを実行して、ダウンロードしたコンテナーイメージの所有権を現在のユーザーに変更します。

    $ sudo chown $(whoami). ${BUILDID}-installer.iso
  3. 次のコマンドを実行して、現在のユーザーの読み取り権限をイメージに追加します。

    $ sudo chmod a+r ${BUILDID}-installer.iso

次のステップ

  • キックスタートファイルを使用して仮想マシンをプロビジョニングします。

1.9.1. ISO へのキックスタートファイルの埋め込み

MicroShift に付属のキックスタートファイルを使用することも、既存の RHEL for Edge Installer (ISO) キックスタートファイルを更新することもできます。準備ができたら、キックスタートファイルを ISO に埋め込みます。キックスタートファイルには、ユーザーを作成する方法と、RHEL for Edge イメージを取得してデプロイする方法の詳細が含まれている必要があります。

前提条件

  • MicroShift を使用して RHEL for Edge コミットを含む RHEL for Edge Installer (ISO) イメージを作成している。
  • 既存のキックスタートファイルの更新の準備が完了している。MicroShift RPM に付属する microshift-starter.ks キックスタートファイルを使用できます。

手順

  1. キックスタートファイルのメインセクションで、システムルートに少なくとも 10GB が指定されている rhel という名前の LVM ボリュームグループが含まれるように、ファイルシステムのセットアップを更新します。LVMS CSI ドライバーがワークロードのデータを格納するために使用する空き領域を残します。

    ファイルシステムを設定するキックスタートファイルスニペットの例

    # Partition disk such that it contains an LVM volume group called `rhel` with a
    # 10GB+ system root but leaving free space for the LVMS CSI driver for storing data.
    #
    # For example, a 20GB disk would be partitioned in the following way:
    #
    # NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    # sda             8:0    0  20G  0 disk
    # ├─sda1          8:1    0 200M  0 part /boot/efi
    # ├─sda1          8:1    0 800M  0 part /boot
    # └─sda2          8:2    0  19G  0 part
    #  └─rhel-root  253:0    0  10G  0 lvm  /sysroot
    #
    ostreesetup --nogpg --osname=rhel --remote=edge \
    --url=file:///run/install/repo/ostree/repo --ref=rhel/<RHEL VERSION NUMBER>/x86_64/edge
    zerombr
    clearpart --all --initlabel
    part /boot/efi --fstype=efi --size=200
    part /boot --fstype=xfs --asprimary --size=800
    # Uncomment this line to add a SWAP partition of the recommended size
    #part swap --fstype=swap --recommended
    part pv.01 --grow
    volgroup rhel pv.01
    logvol / --vgname=rhel --fstype=xfs --size=10000 --name=root
    # To add users, use a line such as the following
    user --name=<YOUR_USER_NAME> \
    --password=<YOUR_HASHED_PASSWORD> \
    --iscrypted --groups=<YOUR_USER_GROUPS>

  2. キックスタートファイルの %post セクションで、プルシークレットと必須のファイアウォールルールを追加します。

    プルシークレットとファイアウォールルールを追加するキックスタートスニペットの例

    %post --log=/var/log/anaconda/post-install.log --erroronfail
    
    # Add the pull secret to CRI-O and set root user-only read/write permissions
    cat > /etc/crio/openshift-pull-secret << EOF
    YOUR_OPENSHIFT_PULL_SECRET_HERE
    EOF
    chmod 600 /etc/crio/openshift-pull-secret
    
    # Configure the firewall with the mandatory rules for MicroShift
    firewall-offline-cmd --zone=trusted --add-source=10.42.0.0/16
    firewall-offline-cmd --zone=trusted --add-source=169.254.169.1
    
    %end

  3. 次のコマンドを実行して、mkksiso ツールをインストールします。

    $ sudo yum install -y lorax
  4. 次のコマンドを実行して、新しいキックスタートファイルで ISO を更新します。

    $ sudo mkksiso <your_kickstart>.ks <your_installer>.iso <updated_installer>.iso

1.10. MicroShift クラスターへのアクセス方法

このセクションの手順に従って、OpenShift CLI (oc) を使用して MicroShift クラスターにアクセスします。

  • MicroShift サービスを実行している同じマシンからでも、リモートの場所からでも、クラスターにアクセスできます。
  • このアクセス権を使用して、ワークロードを監視および管理できます。
  • 次の手順を使用する場合は、接続するホスト名または IP アドレスが含まれている kubeconfig ファイルを選択し、関連するディレクトリーに配置します。

1.10.1. MicroShift クラスターへのローカルアクセス

以下の手順に従って、kubeconfig ファイルを使用して MicroShift クラスターをローカルでアクセスします。

前提条件

  • OpenShift CLI (oc) がインストールされている。

手順

  1. オプション: Red Hat Enterprise Linux (RHEL) マシンに ~/.kube/ フォルダーがない場合は、次のコマンドを実行してこのフォルダーを作成します。

    $ mkdir -p ~/.kube/
  2. 次のコマンドを実行して、生成されたローカルアクセス kubeconfig ファイルを ~/.kube/ ディレクトリーにコピーします。

    $ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
  3. 次のコマンドを実行して、~/.kube/config ファイルの権限を更新します。

    $ chmod go-r ~/.kube/config

検証

  • 次のコマンドを入力して、MicroShift が実行されていることを確認します。

    $ oc get pods -A

    出力例

    NAMESPACE                   NAME                                                     READY   STATUS   RESTARTS  AGE
    default                     i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr  1/1     Running  0		    46m
    kube-system                 csi-snapshot-controller-5c6586d546-lprv4                 1/1     Running  0		    51m
    openshift-dns               dns-default-45jl7                                        2/2     Running  0		    50m
    openshift-dns               node-resolver-7wmzf                                      1/1     Running  0		    51m
    openshift-ingress           router-default-78b86fbf9d-qvj9s                          1/1     Running  0		    51m
    openshift-ovn-kubernetes    ovnkube-master-5rfhh                                     4/4     Running  0		    51m
    openshift-ovn-kubernetes    ovnkube-node-gcnt6                                       1/1     Running  0		    51m
    openshift-service-ca        service-ca-bf5b7c9f8-pn6rk                               1/1     Running  0		    51m
    openshift-storage           topolvm-controller-549f7fbdd5-7vrmv                      5/5     Running  0		    51m
    openshift-storage           topolvm-node-rht2m                                       3/3     Running  0		    50m

    注記

    この出力例は、基本的な MicroShift を示しています。オプションの RPM をインストールしている場合は、それらのサービスを実行している Pod のステータスも出力に表示されるはずです。

1.10.2. MicroShift クラスターへのリモートアクセス用にファイアウォールを開く

リモートユーザーが MicroShift クラスターにアクセスできるように、次の手順を使用してファイアウォールを開きます。この手順は、ワークステーションユーザーがリモートでクラスターにアクセスする前に完了する必要があります。

この手順では、user@microshift は、MicroShift ホストマシン上のユーザーであり、別のワークステーション上のリモートユーザーがアクセスできるようにそのマシンをセットアップする責任があります。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • クラスター管理者の権限がある。

手順

  • MicroShift ホストの user@microshift として、次のコマンドを実行して、Kubernetes API サーバー (6443/tcp) のファイアウォールポートを開きます。

    [user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload

検証

  • user@microshift として次のコマンドを実行して、MicroShift が入力されていることを確認します。

    $ oc get pods -A

    出力例

    NAMESPACE                   NAME                                                     READY   STATUS   RESTARTS  AGE
    default                     i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr  1/1     Running  0		    46m
    kube-system                 csi-snapshot-controller-5c6586d546-lprv4                 1/1     Running  0		    51m
    openshift-dns               dns-default-45jl7                                        2/2     Running  0		    50m
    openshift-dns               node-resolver-7wmzf                                      1/1     Running  0		    51m
    openshift-ingress           router-default-78b86fbf9d-qvj9s                          1/1     Running  0		    51m
    openshift-ovn-kubernetes    ovnkube-master-5rfhh                                     4/4     Running  0		    51m
    openshift-ovn-kubernetes    ovnkube-node-gcnt6                                       1/1     Running  0		    51m
    openshift-service-ca        service-ca-bf5b7c9f8-pn6rk                               1/1     Running  0		    51m
    openshift-storage           topolvm-controller-549f7fbdd5-7vrmv                      5/5     Running  0		    51m
    openshift-storage           topolvm-node-rht2m                                       3/3     Running  0		    50m

    注記

    この出力例は、基本的な MicroShift を示しています。オプションの RPM をインストールしている場合は、それらのサービスを実行している Pod のステータスも出力に表示されるはずです。

1.10.3. MicroShift クラスターへのリモートアクセス

以下の手順に従って、kubeconfig ファイルを使用してリモートロケーションから MicroShift クラスターにアクセスします。

user@workstation ログインは、ホストマシンにリモートからアクセスするのに使用されます。手順の <user> 値は、user@workstation が MicroShift ホストにログインするユーザーの名前になります。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • user@microshift は、ローカルホストからファイアウォールを開いている。

手順

  1. user@workstation として、Red Hat Enterprise Linux (RHEL) マシンに ~/.kube/ フォルダーがない場合は、次のコマンドを実行してこのフォルダーを作成します。

    [user@workstation]$ mkdir -p ~/.kube/
  2. user@workstation として、次のコマンドを実行して、MicroShift ホストのホスト名の変数を設定します。

    [user@workstation]$ MICROSHIFT_MACHINE=<microshift_hostname> 
    1
    1
    <MicroShift_hostname> の値は、実行しているホストの名前または IP アドレスに置き換えます。
  3. user@workstation として、次のコマンドを実行して、MicroShift を実行している RHEL マシンからローカルマシンに接続するホスト名または IP アドレスを含む生成された kubeconfig ファイルをコピーします。

    [user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config 
    1
    1
    <user> は、SSH ログイン認証情報に置き換えます。
    注記

    この手順の kubeconfig ファイルを生成するには、リモートアクセス用の kubeconfig ファイルの追加生成 を参照してください。

  4. user@workstation として、次のコマンドを実行して ~/.kube/config ファイルのパーミッションを更新します。

    $ chmod go-r ~/.kube/config

検証

  • user@workstation として、次のコマンドを入力して、MicroShift が実行されていることを確認します。

    $ oc get pods -A

    出力例

    NAMESPACE                   NAME                                                     READY   STATUS   RESTARTS  AGE
    default                     i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr  1/1     Running  0		    46m
    kube-system                 csi-snapshot-controller-5c6586d546-lprv4                 1/1     Running  0		    51m
    openshift-dns               dns-default-45jl7                                        2/2     Running  0		    50m
    openshift-dns               node-resolver-7wmzf                                      1/1     Running  0		    51m
    openshift-ingress           router-default-78b86fbf9d-qvj9s                          1/1     Running  0		    51m
    openshift-ovn-kubernetes    ovnkube-master-5rfhh                                     4/4     Running  0		    51m
    openshift-ovn-kubernetes    ovnkube-node-gcnt6                                       1/1     Running  0		    51m
    openshift-service-ca        service-ca-bf5b7c9f8-pn6rk                               1/1     Running  0		    51m
    openshift-storage           topolvm-controller-549f7fbdd5-7vrmv                      5/5     Running  0		    51m
    openshift-storage           topolvm-node-rht2m                                       3/3     Running  0		    50m

    注記

    この出力例は、基本的な MicroShift を示しています。オプションの RPM をインストールしている場合は、それらのサービスを実行している Pod のステータスも出力に表示されるはずです。

第2章 オフラインで使用するための RHEL for Edge イメージへの埋め込み

rpm-ostree コミットに MicroShift コンテナーを埋め込むと、エアギャップ環境、非接続環境、またはオフライン環境でクラスターを実行できます。Red Hat Enterprise Linux for Edge (RHEL for Edge) イメージに Red Hat build of MicroShift コンテナーを埋め込むことで、コンテナーエンジンがネットワーク経由でコンテナーレジストリーからイメージをプルする必要がなくなります。ネットワーク接続がなくても、ワークロードをすぐに起動できます。

2.1. オフラインデプロイ用の MicroShift コンテナーの埋め込み

Image Builder を使用して、MicroShift コンテナーイメージが埋め込まれた RHEL for Edge イメージを作成できます。コンテナーイメージを埋め込むには、Image Builder ブループリントファイルにイメージ参照を追加する必要があります。

前提条件

  • ビルドホストへの root ユーザーアクセス権がある。
  • ビルドホストが Image Builder のシステム要件を満たしている。
  • Image Builder と composer-cli ツールをインストールしてセットアップしている。
  • RHEL for Edge イメージのブループリントを作成した。
  • jq がインストールされている。

手順

  1. デプロイする MicroShift バージョンで使用されるコンテナーイメージ参照の正確なリストを取得します。手順 2 に従って microshift-release-info RPM パッケージをインストールするか、手順 3 に従って RPM をダウンロードして展開します。
  2. microshift-release-info RPM パッケージをインストールするには、以下を実行します。

    1. 次のコマンドを実行して、microshift-release-info RPM パッケージをインストールします。

      $ sudo dnf install -y microshift-release-info-<release_version>

      <release_version> は、デプロイするリリースの番号に置き換えます。完全なバージョン番号 (4.19.1 など) を使用してください。

    2. 次のコマンドを実行して、/usr/share/microshift/release ディレクトリーの内容をリスト表示し、リリース情報ファイルの存在を確認します。

      $ sudo ls /usr/share/microshift/release

      出力例

      release-x86_64.json
      release-aarch64.json

      microshift-release-info RPM をインストールした場合は、ステップ 4 に進みます。

  3. 手順 2 を完了していない場合は、microshift-release-info RPM をインストールせずにダウンロードして展開します。

    1. 次のコマンドを実行して、RPM パッケージをダウンロードします。

      $ sudo dnf download microshift-release-info-<release_version> 
      1
      1
      <release_version> は、デプロイするリリースの番号に置き換えます。完全なバージョン番号 (4.19.1 など) を使用してください。

      RPM の出力例

      microshift-release-info-4.18.1.-202511101230.p0.g7dc6a00.assembly.4.18.1.el9.noarch.rpm

    2. 次のコマンドを実行して、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
      <my_microshift_release_info> は、前の手順の RPM パッケージの名前に置き換えます。
  4. 次のコマンドを実行して、コンテナー参照情報が含まれる JSON ファイルの場所を定義します。

    $ RELEASE_FILE=</path/to/your/release-$(uname -m).json> 
    1
    1
    </path/to/your/release-$(uname -m).json> は、JSON ファイルへのフルパスに置き換えます。必ずアーキテクチャーに必要なファイルを使用してください。
  5. 次のコマンドを実行して、イメージをビルドする手順が含まれる TOML ファイルの場所を定義します。

    $ BLUEPRINT_FILE=</path/to/your/blueprint.toml> 
    1
    1
    </path/to/your/blueprint.toml> は、TOML ファイルへのフルパスに置き換えます。
  6. 次のコマンドを実行して、コンテナーイメージ参照を生成し、ブループリント 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"

  7. 次の例を使用して、Image Builder のブループリントファイルに追加して、コンテナーイメージを手動で埋め込むことができます。

    コンテナーイメージをブループリントに手動で埋め込むセクションの例

    [[containers]]
    source = "<my_image_pullspec_with_tag_or_digest>"

    <my_image_pullspec_with_tag_or_digest> は、デプロイする MicroShift バージョンで使用されるコンテナーイメージへの正確な参照に置き換えます。

2.2. イメージ構築の準備としてのレジストリー認証の追加

ブループリントを更新した後、MicroShift コンテナーが埋め込まれたイメージをビルドするには、コンテナーレジストリーの認証を追加する必要があります。これを行うには、Image Builder 設定の一部である systemd サービスファイルの 1 つを更新します。

前提条件

  • ビルドホストへの root ユーザーアクセス権がある。
  • ビルドホストが Image Builder のシステム要件を満たしている。
  • Image Builder と composer-cli ツールをインストールしてセットアップしている。
注記

/etc/osbuild-worker/osbuild-worker.toml ディレクトリーと設定ファイルが存在しない場合は、作成してください。

手順

  1. /etc/osbuild-worker/osbuild-worker.toml 設定ファイルの [containers] セクションで auth_file_path を設定して、レジストリーへの認証用のプルシークレットを追加します。

    [containers]
    auth_file_path = "/etc/osbuild-worker/pull-secret.json"
  2. 設定の変更を適用するには、ホストを再起動します。

2.3. オフラインデプロイ用の rpm-ostree イメージのビルドと使用

Image Builder を使用して、MicroShift コンテナーイメージが埋め込まれた rpm-ostree システムイメージを作成できます。コンテナーイメージを埋め込むには、Image Builder ブループリントにイメージ参照を追加する必要があります。必要に応じて、ユースケースに合わせてコミットと ISO を作成できます。

後述する手順の前提条件に加えて、次の前提条件を満たす必要があります。

2.3.1. オフラインデプロイの追加の前提条件

  • オフラインで使用するための RHEL for Edge イメージブループリントを作成および更新している。次の手順では、コンテナーイメージを使用して作成したブループリントの例を使用します。「オフラインデプロイ用の MicroShift コンテナーの埋め込み」手順で作成した更新済みのブループリントを使用する必要があります。
  • /etc/osbuild-worker/osbuild-worker.toml 設定ファイルをオフラインで使用するために更新している。
重要

次の手順の minimal-microshift.toml は、オフラインで使用するために更新した TOML の名前 <my_blueprint_name> に置き換えます。

2.3.2. ブループリントへの MicroShift サービスの追加

MicroShift RPM パッケージを Image Builder ブループリントに追加すると、MicroShift が埋め込まれた RHEL for Edge イメージをビルドできるようになります。

手順

  1. /usr/share/microshift/blueprint ディレクトリーにインストールされている、プラットフォームアーキテクチャーに固有のブループリントを使用します。ブループリントセクションの説明は、次のサンプルスニペットを参照してください。

    生成された Image Builder ブループリントのサンプルスニペット

    name = "microshift_blueprint"
    description = "MicroShift 4.19.1 on x86_64 platform"
    version = "0.0.1"
    modules = []
    groups = []
    
    [[packages]] 
    1
    
    name = "microshift"
    version = "4.19.1"
    ...
    ...
    
    [customizations.services] 
    2
    
    enabled = ["microshift"]
    
    [customizations.firewall]
    ports = ["ssh"]
    ...
    ...
    
    [[containers]] 
    3
    
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f41e79c17e8b41f1b0a5a32c3e2dd7cd15b8274554d3f1ba12b2598a347475f4"
    
    [[containers]]
    source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:dbc65f1fba7d92b36cf7514cd130fe83a9bd211005ddb23a8dc479e0eea645fd"
    ...
    …
    EOF

    1
    microshift-release-info RPM と互換性のある同じバージョンを使用する、オプション以外のすべての MicroShift RPM パッケージの参照。
    2
    システム起動時に MicroShift を自動的に有効にし、デフォルトのネットワーク設定を適用するための参照。
    3
    オフラインデプロイメントに必要なオプション以外のすべての MicroShift コンテナーイメージの参照。SHA は使用しているリリースにより異なります。
  2. 次のコマンドを実行して、Image Builder にブループリントを追加します。

    $ sudo composer-cli blueprints push microshift_blueprint.toml

検証

  1. 次のコマンドを実行して、MicroShift パッケージのみをリストした Image Builder 設定を確認します。

    $ sudo composer-cli blueprints depsolve microshift_blueprint | grep microshift

    出力例

    blueprint: microshift_blueprint v0.0.1
        microshift-release-info-4.19.1-202511250827.p0.g4105d3b.assembly.4.19.1.el9.noarch
        microshift-4.19.1-202511250827.p0.g4105d3b.assembly.4.19.1.el9.x86_64

  2. オプション: 次のコマンドを実行して、インストールするすべてのコンポーネントをリストした Image Builder 設定を確認します。

    $ sudo composer-cli blueprints depsolve microshift_blueprint

2.3.3. Image Builder を使用した RHEL for Edge イメージの作成

ISO を作成するには、以下の手順を使用します。RHEL for Edge Installer イメージは、実行中のコンテナーからコミットをプルし、埋め込みの rpm-ostree コミットを使用するように設定されたキックスタートファイルを持つ、インストール可能なブート ISO を作成します。

前提条件

  • ビルドホストが Image Builder のシステム要件を満たしている。
  • Image Builder と composer-cli ツールをインストールしてセットアップしている。
  • ビルドホストへの root ユーザーアクセス権がある。
  • podman ツールがインストールされている。

手順

  1. 次のコマンドを実行して、ostree コンテナーイメージビルドを開始します。

    $ BUILDID=$(sudo composer-cli compose start-ostree --ref "rhel/{op-system-version-major}/$(uname -m)/edge" <microshift_blueprint> edge-container | awk '/^Compose/ {print $2}') 
    1
    1
    <microshift_blueprint> は、ブループリントの名前に置き換えます。

    このコマンドは、監視対象のビルドの ID (ID) も返します。

  2. 次のコマンドを実行して、ビルドのステータスを定期的に確認できます。

    $ sudo composer-cli compose status

    実行中のビルドの出力例

    ID                                     Status     Time                     Blueprint                 Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   RUNNING    Wed Jun 7 12:26:23 2023  microshift_blueprint      0.0.1     edge-container

    完了したビルドの出力例

    ID                                     Status     Time                      Blueprint              Version   Type               Size
    cc3377ec-4643-4483-b0e7-6b0ad0ae6332   FINISHED   Wed Jun 7 12:32:37 2023   microshift_blueprint   0.0.1     edge-container

    注記

    起動および停止方法を理解している場合は、watch コマンドを使用してビルドを監視できます。

  3. ID を使用してコンテナーイメージをダウンロードし、次のコマンドを実行して、使用可能なイメージを取得します。

    $ sudo composer-cli compose image ${BUILDID}
  4. 次のコマンドを実行して、ダウンロードしたコンテナーイメージの所有権を現在のユーザーに変更します。

    $ sudo chown $(whoami). ${BUILDID}-container.tar
  5. 次のコマンドを実行して、現在のユーザーの読み取り権限をイメージに追加します。

    $ sudo chmod a+r ${BUILDID}-container.tar
  6. 次の手順を実行して、ostree コンテナーイメージが ISO ビルドで使用されるようにポート 8085 でサーバーをブートストラップします。

    1. 次のコマンドを実行して、IMAGEID 変数の結果を取得します。

      $ IMAGEID=$(cat < "./${BUILDID}-container.tar" | sudo podman load | grep -o -P '(?<=sha256[@:])[a-z0-9]*')
    2. IMAGEID 変数の結果をもとに、次のコマンドを実行して podman コマンドを実行します。

      $ sudo podman run -d --name=minimal-microshift-server -p 8085:8080 ${IMAGEID}

      このコマンドは、監視用に IMAGEID 変数に保存されているコンテナーの ID も返します。

  7. 次のコマンドを実行して、インストーラーブループリントファイルを生成します。

    cat > microshift-installer.toml <<EOF
    name = "microshift-installer"
    
    description = ""
    version = "0.0.0"
    modules = []
    groups = []
    packages = []
    EOF

法律上の通知

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る