4.12. RHCOS のインストールおよび OpenShift Container Platform ブートストラッププロセスの開始


OpenShift Container Platform をプロビジョニングする IBM Z® インフラストラクチャーにインストールするには、Red Hat Enterprise Linux CoreOS (RHCOS) を Red Hat Enterprise Linux (RHEL) ゲスト仮想マシンとしてインストールする必要があります。RHCOS のインストール時に、インストールするマシンのタイプに、OpenShift Container Platform インストールプログラムによって生成された Ignition 設定ファイルを指定する必要があります。適切なネットワーク、DNS、および負荷分散インフラストラクチャーが設定されている場合、OpenShift Container Platform ブートストラッププロセスは RHCOS マシンの再起動後に自動的に開始されます。

事前にパッケージ化された QEMU コピーオンライト (QCOW2) ディスクイメージを使用する RHCOS の高速インストールを実行できます。または、新規の QCOW2 ディスクイメージでフルインストールを実行できます。

システムのセキュリティーをさらに強化するために、ファストトラックインストールに進む前に、オプションで IBM® Secure Execution を使用して RHCOS をインストールできます。

4.12.1. IBM Secure Execution を使用した RHCOS のインストール

IBM® Secure Execution を使用して RHCOS をインストールする前に、基礎となるインフラストラクチャーを準備する必要があります。

前提条件

  • IBM® z15 以降、または IBM® LinuxONE III 以降。
  • Red Hat Enterprise Linux (RHEL) 8 以降
  • ブートストラップ Ignition ファイルがあります。ファイルは保護されていないため、他のユーザーが表示および編集できます。
  • インストール後にブートイメージが変更されていないことを確認しました。
  • すべてのノードを IBM® Secure Execution ゲストとして実行する必要があります。

手順

  1. RHEL KVM ホストを準備して、IBM® Secure Execution をサポートします。

    • デフォルトでは、KVM ホストは IBM® Secure Execution モードのゲストをサポートしません。ゲストを IBM® Secure Execution モードでサポートするには、KVM ホストを LPAR モードで起動し、カーネルパラメーターを prot_virt=1 に指定する必要があります。RHEL 8 で prot_virt=1 を有効にするには、次の手順に従います。

      1. /boot/loader/entries/ に移動して、ブートローダー設定ファイル *.conf を変更します。
      2. カーネルコマンドラインパラメーター prot_virt=1 を追加します。
      3. zipl コマンドを実行し、システムを再起動します。

        IBM® Secure Execution for Linux のサポートを使用して正常に始動する KVM ホストは、次のカーネルメッセージを発行します。

        prot_virt: Reserving <amount>MB as ultravisor base storage.
        Copy to Clipboard
      4. KVM ホストが IBM® Secure Execution をサポートするようになったことを確認するには、次のコマンドを実行します。

        # cat /sys/firmware/uv/prot_virt_host
        Copy to Clipboard

        出力例

        1
        Copy to Clipboard

        環境がセキュアホストの環境と一致していると検出された Linux インスタンスの場合、この属性の値は 1 です。他のインスタンスの場合、値は 0 です。

  2. Ignition を介して KVM ゲストにホストキーを追加します。

    最初の起動時に、RHCOS はホストキーを探して、それを使用して自身を再暗号化します。RHCOS は、/etc/se-hostkeys ディレクトリーで ibm-z-hostkey- で始まるファイルを検索します。クラスターが実行されている各マシンのすべてのホストキーは、管理者がディレクトリーにロードする必要があります。最初の起動後、他のマシンで VM を実行することはできません。

    注記

    安全なシステムで Ignition ファイルを準備する必要があります。例えば、別の IBM® Secure Execution ゲストです。

    以下に例を示します。

    {
      "ignition": { "version": "3.0.0" },
      "storage": {
        "files": [
          {
            "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt",
            "contents": {
              "source": "data:;base64,<base64 encoded hostkey document>"
            },
            "mode": 420
          },
          {
            "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt",
            "contents": {
              "source": "data:;base64,<base64 encoded hostkey document>"
            },
            "mode": 420
          }
        ]
      }
    }
    ```
    Copy to Clipboard
    注記

    ノードを複数の IBM Z® マシンで実行できるようにする場合は、必要な数のホストキーを追加できます。

  3. Base64 でエンコードされた文字列を生成するには、次のコマンドを実行します。

    base64 <your-hostkey>.crt
    Copy to Clipboard

    IBM® Secure Execution を実行していないゲストと比較すると、イグニションフェーズの前にイメージ全体がランダムに生成された LUKS パスフレーズで暗号化されるため、マシンの最初のブートに時間がかかります。

  4. Ignition 保護の追加

    Ignition 設定ファイルに保存されているシークレットが読み取られたり変更されたりしないようにするには、Ignition 設定ファイルを暗号化する必要があります。

    注記

    必要なセキュリティーを実現するために、IBM® Secure Execution の実行時は、Ignition ロギングとローカルログインがデフォルトで無効になります。

    1. 次のコマンドを実行して、secex-qemu.qcow2 イメージの公開 GPG キーを取得し、そのキーを使用して Ignition 設定を暗号化します。

      gpg --recipient-file /path/to/ignition.gpg.pub --yes --output /path/to/config.ign.gpg --verbose --armor --encrypt /path/to/config.ign
      Copy to Clipboard
  5. RHCOS の高速インストールに従って、IBM® Secure Execution QCOW イメージを使用してノードをインストールします。

    注記

    仮想マシンを起動する前に、serial=ignitionserial=ignition_crypted に置き換え、launchSecurity パラメーターを追加します。

検証

RHCOS の高速インストールが完了し、最初の起動時に Ignition が実行したら、復号化が成功したか確認します。

  • 復号化が成功すると、次の例のような出力が予想されます。

    出力例

    [    2.801433] systemd[1]: Starting coreos-ignition-setup-user.service - CoreOS Ignition User Config Setup...
    
    [    2.803959] coreos-secex-ignition-decrypt[731]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported
    [    2.808874] coreos-secex-ignition-decrypt[740]: gpg: encrypted with rsa4096 key, ID <key_name>, created <yyyy-mm-dd>
    [  OK  ] Finished coreos-secex-igni…S Secex Ignition Config Decryptor.
    Copy to Clipboard

  • 復号化に失敗した場合は、次の例のような出力が予想されます。

    出力例

    Starting coreos-ignition-s…reOS Ignition User Config Setup...
    [    2.863675] coreos-secex-ignition-decrypt[729]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported
    [    2.869178] coreos-secex-ignition-decrypt[738]: gpg: encrypted with RSA key, ID <key_name>
    [    2.870347] coreos-secex-ignition-decrypt[738]: gpg: public key decryption failed: No secret key
    [    2.870371] coreos-secex-ignition-decrypt[738]: gpg: decryption failed: No secret key
    Copy to Clipboard

4.12.2. IBM Z または IBM& LinuxONE 環境での静的 IP を使用した NBDE の設定

IBM Z® または IBM® LinuxONE 環境で NBDE ディスク暗号化を有効にするには、追加の手順が必要です。このセクションで詳しく説明します。

前提条件

  • 外部 Tang サーバーをセットアップした。手順については、Network-Bound Disk Encryption (NBDE) を参照してください。
  • butane ユーティリティーをインストールした。
  • Butane でマシン設定を作成する手順を確認した。

手順

  1. コントロールプレーンとコンピュートノードの Butane 設定ファイルを作成します。

    次のコントロールプレーンノードの Butane 設定の例では、ディスク暗号化用に master-storage.bu という名前のファイルを作成します。

    variant: openshift
    version: 4.14.0
    metadata:
      name: master-storage
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      luks:
        - clevis:
            tang:
              - thumbprint: QcPr_NHFJammnRCA3fFMVdNBwjs
                url: http://clevis.example.com:7500
            options: 
    1
    
               - --cipher
               - aes-cbc-essiv:sha256
          device: /dev/disk/by-partlabel/root
          label: luks-root
          name: root
          wipe_volume: true
      filesystems:
        - device: /dev/mapper/root
          format: xfs
          label: root
          wipe_filesystem: true
    openshift:
      fips: true 
    2
    Copy to Clipboard
    1
    暗号オプションは、FIPS モードが有効な場合にのみ必要です。FIPS が無効になっている場合は、エントリーを省略します。
    2
    FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
  2. 次のコマンドを実行して、マシンを起動するためのカスタマイズされた initramfs ファイルを作成します。

    $ coreos-installer pxe customize \
        /root/rhcos-bootfiles/rhcos-<release>-live-initramfs.s390x.img \
        --dest-device /dev/disk/by-id/scsi-<serial-number> --dest-karg-append \
        ip=<ip-address>::<gateway-ip>:<subnet-mask>::<network-device>:none \
        --dest-karg-append nameserver=<nameserver-ip> \
        --dest-karg-append rd.neednet=1 -o \
        /root/rhcos-bootfiles/<Node-name>-initramfs.s390x.img
    Copy to Clipboard
    注記

    最初のブートの前に、クラスター内の各ノードの initramfs をカスタマイズし、PXE カーネルパラメーターを追加する必要があります。

  3. ignition.platform.id=metal および ignition.firstboot を含むパラメーターファイルを作成します。

    コントロールプレーンマシンのカーネルパラメーターファイルの例:

    rd.neednet=1 \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal \
    coreos.live.rootfs_url=http://10.19.17.25/redhat/ocp/rhcos-413.86.202302201445-0/rhcos-413.86.202302201445-0-live-rootfs.s390x.img \
    coreos.inst.ignition_url=http://bastion.ocp-cluster1.example.com:8080/ignition/master.ign \
    ip=10.19.17.2::10.19.17.1:255.255.255.0::enbdd0:none nameserver=10.19.17.1 \
    zfcp.allow_lun_scan=0 \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.zfcp=0.0.5677,0x600606680g7f0056,0x034F000000000000
    Copy to Clipboard

    注記

    パラメーターファイルのすべてのオプションを 1 行で記述し、改行文字がないことを確認します。

4.12.3. 事前にパッケージ化された QCOW2 ディスクイメージを使用した高速インストール

Red Hat Enterprise Linux CoreOS (RHCOS) の高速インストールでマシンを作成するには、事前にパッケージ化された Red Hat Enterprise Linux CoreOS (RHCOS )QEMU コピーオンライト (QCOW2) ディスクイメージをインポートします。

前提条件

  • この手順では RHEL KVM ホストと呼ばれる、KVM を使用する RHEL 8.6 以降で実行されている少なくとも 1 つの LPAR。
  • KVM/QEMU ハイパーバイザーが RHEL KVM ホストにインストーされている
  • ノードのホスト名および逆引き参照を実行できるドメインネームサーバー (DNS)。
  • IP アドレスを提供する DHCP サーバー。

手順

  1. Red Hat カスタマーポータルの 製品のダウンロード ページまたは RHCOS イメージミラー ページから RHEL QEMU コピーオンライト (QCOW2) ディスクイメージファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な RHCOS QCOW2 イメージのみを使用します。

  2. QCOW2 ディスクイメージおよび Ignition ファイルを RHEL KVM ホストの共通ディレクトリーにダウンロードします。

    例: /var/lib/libvirt/images

    注記

    Ignition ファイルは OpenShift Container Platform インストーラーによって生成されます。

  3. 各 KVM ゲストノードの QCOW2 ディスクイメージバッキングファイルで、新しいディスクイメージを作成します。

    $ qemu-img create -f qcow2 -F qcow2 -b /var/lib/libvirt/images/{source_rhcos_qemu} /var/lib/libvirt/images/{vmname}.qcow2 {size}
    Copy to Clipboard
  4. Ignition ファイルと新規ディスクイメージを使用して、新規 KVM ゲストノードを作成します。

    $ virt-install --noautoconsole \
       --connect qemu:///system \
       --name {vm_name} \
       --memory {memory} \
       --vcpus {vcpus} \
       --disk {disk} \
       --launchSecurity type="s390-pv" \ 
    1
    
       --import \
       --network network={network},mac={mac} \
       --disk path={ign_file},format=raw,readonly=on,serial=ignition,startup_policy=optional 
    2
    Copy to Clipboard
    1
    IBM® Secure Execution が有効な場合は、launchSecurity type="s390-pv" パラメーターを追加します。
    2
    IBM® Secure Execution が有効な場合は、serial=ignitionserial=ignition_crypted に置き換えます。

4.12.4. 新規 QCOW2 ディスクイメージへのフルインストール

新規 QEMU copy-on-write (QCOW2) ディスクイメージのフルインストールでマシンを作成するには、以下の手順を実施します。

前提条件

  • この手順では RHEL KVM ホストと呼ばれる、KVM を使用する RHEL 8.6 以降で実行されている少なくとも 1 つの LPAR。
  • KVM/QEMU ハイパーバイザーが RHEL KVM ホストにインストーされている
  • ノードのホスト名および逆引き参照を実行できるドメインネームサーバー (DNS)。
  • HTTP または HTTPS サーバーが設定されている。

手順

  1. Red Hat カスタマーポータルの 製品のダウンロード ページ、または RHCOS イメージミラー ページから RHEL カーネル、initramfs、および rootfs ファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。この手順で説明されている適切な RHCOS QCOW2 イメージのみを使用します。

    ファイル名には、OpenShift Container Platform のバージョン番号が含まれます。以下の例のようになります。

    • kernel: rhcos-<version>-live-kernel-<architecture>
    • initramfs: rhcos-<version>-live-initramfs.<architecture>.img
    • rootfs: rhcos-<version>-live-rootfs.<architecture>.img
  2. virt-install を起動する前に、ダウンロードした RHEL ライブカーネル、initramfs、および rootfs、および Ignition ファイルを HTTP または HTTPS サーバーに移動します。

    注記

    Ignition ファイルは OpenShift Container Platform インストーラーによって生成されます。

  3. RHEL カーネル、initramfs、および Ignition ファイル、新規ディスクイメージ、および調整された parm 引数を使用して、新規 KVM ゲストノードを作成します。

    • --location には、HTTP サーバーまたは HTTPS サーバーのカーネル/initrd の場所を指定します。
    • coreos.inst.ignition_url= の場合、マシンロールの Ignition ファイルを指定します。bootstrap.ignmaster.ign、または worker.ign を使用します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    • coreos.live.rootfs_url= の場合、起動しているカーネルおよび initramfs の一致する rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。

      $ virt-install \
         --connect qemu:///system \
         --name {vm_name} \
         --vcpus {vcpus} \
         --memory {memory_mb} \
         --disk {vm_name}.qcow2,size={image_size| default(10,true)} \
         --network network={virt_network_parm} \
         --boot hd \
         --location {media_location},kernel={rhcos_kernel},initrd={rhcos_initrd} \
         --extra-args "rd.neednet=1 coreos.inst.install_dev=/dev/vda coreos.live.rootfs_url={rhcos_liveos} ip={ip}::{default_gateway}:{subnet_mask_length}:{vm_name}:enc1:none:{MTU} nameserver={dns} coreos.inst.ignition_url={rhcos_ign}" \
         --noautoconsole \
         --wait
      Copy to Clipboard

4.12.5. 詳細の RHCOS インストールリファレンス

このセクションでは、Red Hat Enterprise Linux CoreOS (RHCOS) の手動インストールプロセスを変更できるようにするネットワーク設定および他の高度なオプションを説明します。以下の表では、RHCOS ライブインストーラーおよび coreos-installer コマンドで使用できるカーネル引数およびコマンドラインのオプションを説明します。

4.12.5.1. ISO インストールのネットワークオプション

ISO イメージから RHCOS をインストールする場合、そのイメージを起動してノードのネットワークを設定する際に手動でカーネル引数を追加できます。ネットワークの引数が指定されていない場合、RHCOS が Ignition 設定ファイルを取得するためにネットワークが必要であることを検知する際に、DHCP が initramfs でアクティベートされます。

重要

ネットワーク引数を手動で追加する場合は、rd.neednet=1 カーネル引数を追加して、ネットワークを initramfs で有効にする必要があります。

以下の表は、ISO インストール用に RHCOS ノードでネットワークおよびボンディングを設定する例を示しています。この例では、ip= および nameserver= カーネル引数の使用方法を説明します。

注記

カーネル引数 ( ip= and nameserver=) を追加するときは、順序付けが重要です。

ネットワークオプションは、システムの起動時に dracut ツールに渡されます。dracut でサポートされるネットワークオプションの詳細は、man ページの dracut.cmdline を参照してください。

次の例は、ISO インストールのネットワークオプションです。

DHCP または静的 IP アドレスの設定

IP アドレスを設定するには、DHCP (ip=dhcp) を使用するか、個別の静的 IP アドレス (ip=<host_ip>) を設定します。静的 IP を設定する場合、各ノードで DNS サーバー IP アドレス (nameserver=<dns_ip>) を特定する必要があります。次の例では、以下を設定します。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • ホスト名: core0.example.com
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard
注記

DHCP を使用して RHCOS マシンの IP アドレスを設定する場合、マシンは DHCP を介して DNS サーバー情報も取得します。DHCP ベースのデプロイメントの場合、DHCP サーバー設定を使用して RHCOS ノードが使用する DNS サーバーアドレスを定義できます。

静的ホスト名を使用しない IP アドレスの設定

静的ホスト名を割り当てずに IP アドレスを設定できます。静的ホスト名がユーザーによって設定されていない場合は、逆引き DNS ルックアップによって取得され、自動的に設定されます。静的ホスト名なしで IP アドレスを設定するには、次の例を参照してください。

  • ノードの IP アドレス: 10.10.10.2
  • ゲートウェイアドレス: 10.10.10.254
  • ネットワーク: 255.255.255.0
  • DNS サーバーアドレス: 4.4.4.41
  • auto-configuration の値を none に設定します。IP ネットワークが静的に設定されている場合には、自動設定は必要ありません。
ip=10.10.10.2::10.10.10.254:255.255.255.0::enp1s0:none
nameserver=4.4.4.41
Copy to Clipboard
複数のネットワークインターフェイスの指定

複数の ip= エントリーを設定することで、複数のネットワークインターフェイスを指定できます。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=10.10.10.3::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard
デフォルトゲートウェイとルートの設定

オプション: rd.route= value を設定して、追加のネットワークへのルートを設定できます。

注記

1 つまたは複数のネットワークを設定する場合、1 つのデフォルトゲートウェイが必要です。追加のネットワークゲートウェイがプライマリーネットワークゲートウェイと異なる場合、デフォルトゲートウェイはプライマリーネットワークゲートウェイである必要があります。

  • 次のコマンドを実行して、デフォルトゲートウェイを設定します。

    ip=::10.10.10.254::::
    Copy to Clipboard
  • 次のコマンドを入力して、追加ネットワークのルートを設定します。

    rd.route=20.20.20.0/24:20.20.20.254:enp2s0
    Copy to Clipboard
単一インターフェイスでの DHCP の無効化

2 つ以上のネットワークインターフェイスがあり、1 つのインターフェイスのみが使用される場合などに、1 つのインターフェイスで DHCP を無効にします。この例では、enp1s0 インターフェイスには静的ネットワーク設定があり、使用されていない enp2s0 では DHCP が無効になっています。

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
ip=::::core0.example.com:enp2s0:none
Copy to Clipboard
DHCP と静的 IP 設定の組み合わせ

以下のように、複数のネットワークインターフェイスを持つシステムで、DHCP および静的 IP 設定を組み合わせることができます。

ip=enp1s0:dhcp
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none
Copy to Clipboard
個々のインターフェイスでの VLAN の設定

オプション: vlan= パラメーターを使用して、個別のインターフェイスに VLAN を設定できます。

  • ネットワークインターフェイスで VLAN を設定し、静的 IP アドレスを使用するには、次のコマンドを実行します。

    ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0.100:none
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard
  • ネットワークインターフェイスで VLAN を設定し、DHCP を使用するには、次のコマンドを実行します。

    ip=enp2s0.100:dhcp
    vlan=enp2s0.100:enp2s0
    Copy to Clipboard
複数の DNS サーバーの指定

以下のように、各サーバーに nameserver= エントリーを追加して、複数の DNS サーバーを指定できます。

nameserver=1.1.1.1
nameserver=8.8.8.8
Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat