1.2.12.2. PXE または iPXE ブートによる Red Hat Enterprise Linux CoreOS (RHCOS) マシンの作成

ユーザーによってプロビジョニングされるベアメタルインフラストラクチャーにクラスターをインストールする前に、それが使用する RHCOS マシンを作成する必要があります。PXE または iPXE ブートを使用してマシンを作成することができます。

前提条件

  • クラスターの Ignition 設定ファイルを取得していること。
  • PXE または iPXE インフラストラクチャーを提供するのに必要な DHCP、TFTP、および HTTP サービスの設定についての理解。
  • 使用しているコンピューターからアクセス可能な HTTP サーバーおよび TFTP サーバーへのアクセスがあること。

手順

  1. インストールプログラムが作成したマスター、ワーカーおよびブートストラップの Ignition 設定を HTTP サーバーにアップロードします。これらのファイルの URL をメモします。

    重要

    インストールの完了後にコンピュートマシンをさらにクラスターに追加する予定の場合には、これらのファイルを削除しないでください。

  2. Red Hat カスタマーポータルの「製品のダウンロード」ページまたは「RHCOS イメージミラー」ページから圧縮された metal RAW イメージ、kernel および initramfs ファイルを取得します。

    重要

    RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。利用可能な場合は、OpenShift Container Platform バージョンに一致するイメージのバージョンを使用します。この手順には RAW イメージのみを使用します。RHCOS qcow2 イメージは、ベアメタルのインストールではサポートされません。

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

    • 圧縮されたメタル RAW イメージ: rhcos-<version>-<architecture>-metal.<architecture>.raw.gz
    • kernel: rhcos-<version>-<architecture>-installer-kernel-<architecture>
    • initramfs: rhcos-<version>-<architecture>-installer-initramfs.<architecture>.img
  3. RAW イメージを HTTP サーバーにアップロードします。
  4. 使用する起動方法に必要な追加ファイルをアップロードします。

    • 従来の PXE の場合、kernel および initramfs ファイルを TFTP サーバーにアップロードします。
    • iPXE の場合、kernel および initramfs ファイルを HTTP サーバーにアップロードします。
    重要

    インストールの完了後にコンピュートマシンをさらにクラスターに追加する予定の場合には、これらのファイルを削除しないでください。

  5. RHCOS のインストール後にマシンがローカルディスクから起動されるようにネットワークブートインフラストラクチャーを設定します。
  6. RHCOS イメージに PXE または iPXE インストールを設定します。

    ご使用の環境についての以下の例で示されるメニューエントリーのいずれかを変更し、イメージおよび Ignition ファイルが適切にアクセスできることを確認します。

    • PXE の場合:

      DEFAULT pxeboot
      TIMEOUT 20
      PROMPT 0
      LABEL pxeboot
          KERNEL rhcos-<version>-<architecture>-installer-kernel-<architecture> 1
          APPEND ip=dhcp rd.neednet=1 initrd=rhcos-<version>-<architecture>-installer-initramfs.<architecture>.img coreos.inst=yes coreos.inst.install_dev=sda coreos.inst.image_url=http://<HTTP_server>/rhcos-<version>-<architecture>-metal.<architecture>.raw.gz coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign 2 3
      1
      TFTP サーバーで利用可能な kernel ファイルの場所を指定します。
      2
      複数の NIC を使用する場合、ip オプションに単一インターフェースを指定します。たとえば、eno1 という名前の NIC で DHCP を使用するには、ip=eno1:dhcp を設定します。
      3
      HTTP または TFTP サーバーにアップロードした RHCOS ファイルの場所を指定します。initrd パラメーター値は、TFTP サーバーの initramfs ファイルの場所です。coreos.inst.image_url パラメーター値は、HTTP サーバーの圧縮されたメタル RAW イメージの場所であり、 coreos.inst.ignition_url パラメーター値は HTTP サーバーのブートストラップ Ignition 設定ファイルの場所になります。
      注記

      この設定では、グラフィカルコンソールを使用するマシンでシリアルコンソールアクセスを有効にしません。別のコンソールを設定するには、APPEND 行に 1 つ以上の console= 引数を追加します。たとえば、console=tty0 console=ttyS0 を追加して、最初の PC シリアルポートをプライマリーコンソールとして、グラフィカルコンソールをセカンダリーコンソールとして設定します。詳細は、「How does one set up a serial terminal and/or console in Red Hat Enterprise Linux?」を参照してください。

    • iPXE の場合:

      kernel  http://<HTTP_server>/rhcos-<version>-<architecture>-installer-kernel-<architecture> ip=dhcp rd.neednet=1 initrd=rhcos-<version>-<architecture>-installer-initramfs.<architecture>.img coreos.inst=yes coreos.inst.install_dev=sda coreos.inst.image_url=http://<HTTP_server>/rhcos-<version>-<architecture>-metal.<architecture>.raw.gz coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign 1 2
      initrd http://<HTTP_server>/rhcos-<version>-<architecture>-installer-initramfs.<architecture>.img 3
      boot
      1
      HTTP サーバーにアップロードした RHCOS ファイルの場所を指定します。kernel パラメーター値は kernel ファイルの場所であり、initrd パラメーター値は、以下の initrd 行で提供される initramfs ファイルの名前を参照し、coreos.inst.image_url パラメーター値は圧縮されたメタル RAW イメージの場所、 coreos.inst.ignition_url パラメーター値はブートストラップ Ignition 設定ファイルの場所になります。
      2
      複数の NIC を使用する場合、ip オプションに単一インターフェースを指定します。たとえば、eno1 という名前の NIC で DHCP を使用するには、ip=eno1:dhcp を設定します。
      3
      HTTP サーバーにアップロードした initramfs ファイルの場所を指定します。
      注記

      この設定では、グラフィカルコンソールを使用するマシンでシリアルコンソールアクセスを有効にしません。別のコンソールを設定するには、kernel 行に console= 引数を 1 つ以上追加します。たとえば、console=tty0 console=ttyS0 を追加して、最初の PC シリアルポートをプライマリーコンソールとして、グラフィカルコンソールをセカンダリーコンソールとして設定します。詳細は、「How does one set up a serial terminal and/or console in Red Hat Enterprise Linux?」を参照してください。

  7. UEFI を使用する場合は、以下の操作を実行します。

    1. システムの起動に必要な EFI バイナリーおよび grub.cfg ファイルを提供します。shim.efi バイナリーと grubx64.efi バイナリーが必要です。

      • RHCOS ISO をホストにマウントし、images/efiboot.img ファイルをホストにマウントして、必要な EFI バイナリーを展開します。efiboot.img マウントポイントから、EFI/redhat/shimx64.efi および EFI/redhat/grubx64.efi ファイルを TFTP サーバーにコピーします。

        # mkdir -p /mnt/{iso,efiboot}
        # mount -o loop rhcos-installer.x86_64.iso /mnt/iso
        # mount -o loop,ro /mnt/iso/images/efiboot.img /mnt/efiboot
        # cp /mnt/efiboot/EFI/redhat/{shimx64.efi,grubx64.efi} .
        # umount /mnt/{efiboot,iso}
    2. RHCOS ISO に含まれている EFI/redhat/grub.cfg ファイルを TFTP サーバーにコピーします。
    3. grub.cfg ファイルを編集し、以下の引数を追加します。

      menuentry 'Install Red Hat Enterprise Linux CoreOS' --class fedora --class gnu-linux --class gnu --class os {
      	linux rhcos-<version>-<architecture>-installer-kernel-<architecture> nomodeset rd.neednet=1 coreos.inst=yes coreos.inst.install_dev=sda coreos.inst.image_url=http://<HTTP_server>/rhcos-<version>-<architecture>-metal.<architecture>.raw.gz coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign 1
      	initrd rhcos-<version>-<architecture>-installer-initramfs.<architecture>.img 2
      }
      1
      linux 行の項目の最初の引数は、TFTP サーバーにアップロードした kernel ファイルの場所です。coreos.inst.image_url パラメーター値には、HTTP サーバーにアップロードした圧縮されたメタル RAW イメージの場所を指定します。coreos.inst.ignition_url パラメーターには、HTTP サーバーにアップロードしたブートストラップ Ingition 設定ファイルの場所を指定します。
      2
      TFTP サーバーにアップロードした initramfs ファイルの場所を指定します。
  8. 継続してクラスターのマシンを作成します。

    重要

    この時点でブートストラップおよびコントロールプレーンマシンを作成する必要があります。コントロールプレーンマシンがデフォルトのスケジュール対象にされていない場合、クラスターのインストール前に少なくとも 2 つのコンピュートマシンを作成します。