7.3.11.2. 通过 PXE 或 iPXE 启动来创建 Red Hat Enterprise Linux CoreOS (RHCOS) 机器

在安装使用手动置备 RHCOS 节点(如裸机)的集群前,您必须创建 RHCOS 机器供其使用。您可以使用 PXE 或 iPXE 启动来创建机器。

先决条件

  • 获取集群的 Ignition 配置文件。
  • 配置合适的 PXE 或 iPXE 基础架构。
  • 具有 HTTP 服务器的访问权限,以便您可从计算机进行访问。

流程

  1. 将安装程序创建的 master、worker 和 bootstrap Ignition 配置文件上传到 HTTP 服务器。记下这些文件的 URL。

    重要

    您可以在 Ignition 配置中添加或更改配置设置,然后将其保存到 HTTP 服务器。如果您计划在安装完成后在集群中添加更多计算机器,请不要删除这些文件。

  2. 从红帽客户门户网站上的产品下载页面或 RHCOS 镜像页面,获取 RHCOS kernelinitramfsrootfs 文件。

    重要

    RHCOS 工件(artifact)可能不会随着 OpenShift Container Platform 的每个发行版本而改变。您必须下载最高版本的工件,其版本号应小于或等于您安装的 OpenShift Container Platform 版本。这个过程只使用下面描述的正确 kernelinitramfsrootfs 工件。此安装类型不支持 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
  3. 上传引导方法所需的额外文件:

    • 对于传统的 PXE,将 kernelinitramfs 文件上传到 TFTP 服务器,并将 rootfs 文件上传到 HTTP 服务器。
    • 对于 iPXE,将 kernelinitram fs 和 rootfs 文件上传到 HTTP 服务器。

      重要

      如果您计划在安装完成后在集群中添加更多计算机器,请不要删除这些文件。

  4. 配置网络启动基础架构,以便在安装 RHCOS 后机器可从本地磁盘启动。
  5. 为 RHCOS 镜像配置 PXE 或 iPXE 安装。

    针对您的环境修改以下示例菜单条目之一,并验证能否正确访问镜像和 Ignition 文件:

    • 对于 PXE:

      DEFAULT pxeboot
      TIMEOUT 20
      PROMPT 0
      LABEL pxeboot
          KERNEL http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> 1
          APPEND initrd=http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign 2 3
      1
      指定上传到 HTTP 服务器的 live kernel 文件位置。URL 必须是 HTTP、TFTP 或者 FTP ; 不支持 HTTPS 和 NFS。
      2
      如果您使用多个 NIC,请在 ip 选项中指定一个接口。例如,要在名为 eno1 的 NIC 上使用 DHCP,请设置 ip=eno1:dhcp
      3
      指定上传到 HTTP 服务器的 RHCOS 文件的位置。initrd 参数值是 initramfs 文件的位置,coreos.live.rootfs_url 参数值是 rootfs 文件的位置,coreos.inst.ignition_url 参数值是 bootstrap Ignition 配置文件的位置。您还可以在 APPEND 行中添加更多内核参数来配置联网或其他引导选项。
      注意

      这个配置不会在使用图形控制台的机器上启用串口控制台访问。要配置不同的控制台,请在 APPEND 行中添加一个或多个 console= 参数。例如,添加 console=tty0 console=ttyS0 将第一个 PC 串口设置为主控制台,图形控制台作为二级控制台。如需更多信息,请参阅如何在 Red Hat Enterprise Linux 中设置串行终端和(或)控制台?

    • 对于 iPXE:

      kernel http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> initrd=main coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign 1 2
      initrd --name main http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img 3
      boot
      1
      指定上传到 HTTP 服务器的 RHCOS 文件的位置。kernel 参数值是 kernel 文件的位置,在 UEFI 系统中引导时需要 initrd=main 参数。 coreos.live.rootfs_url 参数值是 rootfs 文件的位置, coreos.inst.ignition_url 参数值则是 bootstrap Ignition 配置文件的位置。
      2
      如果您使用多个 NIC,请在 ip 选项中指定一个接口。例如,要在名为 eno1 的 NIC 上使用 DHCP,请设置 ip=eno1:dhcp
      3
      指定上传到 HTTP 服务器的 initramfs 文件的位置。
      注意

      这个配置不会在使用图形控制台的机器上启用串口控制台访问。要配置不同的控制台,请在 kerne 行中添加一个或多个 console= 参数。例如,添加 console=tty0 console=ttyS0 将第一个 PC 串口设置为主控制台,图形控制台作为二级控制台。如需更多信息,请参阅如何在 Red Hat Enterprise Linux 中设置串行终端和(或)控制台?

  6. 如果使用 PXE UEFI,请执行以下操作:

    1. 提供引导系统所需的 shim x64.efi 和 grubx64 .efi EFI 二进制文件以及 grub.cfg 文件。

      • 通过将 RHCOS ISO 挂载到主机,然后将 images/efiboot.img 文件挂载到您的主机来提取所需的 EFI 二进制文件:

        $ mkdir -p /mnt/iso
        $ mkdir -p /mnt/efiboot
        $ mount -o loop rhcos-installer.x86_64.iso /mnt/iso
        $ mount -o loop,ro /mnt/iso/images/efiboot.img /mnt/efiboot
      • efiboot.img 挂载点,将 EFI/redhat/shimx64.efiEFI/redhat/grubx64.efi 文件复制到 TFTP 服务器中:

        $ cp /mnt/efiboot/EFI/redhat/shimx64.efi .
        $ cp /mnt/efiboot/EFI/redhat/grubx64.efi .
        $ umount /mnt/efiboot
        $ umount /mnt/iso
      • 将 RHCOS ISO 中包含的 EFI/redhat/grub.cfg 文件复制到您的 TFTP 服务器中。
    2. 编辑 grub.cfg 文件使其包含类似如下的参数:

      menuentry 'Install Red Hat Enterprise Linux CoreOS' --class fedora --class gnu-linux --class gnu --class os {
      	linuxefi rhcos-<version>-live-kernel-<architecture> coreos.inst.install_dev=/dev/sda coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.ignition_url=http://<HTTP_server>/bootstrap.ign
      	initrdefi rhcos-<version>-live-initramfs.<architecture>.img
      }

      其中:

      rhcos-<version>-live-kernel-<architecture>
      指定上传到 TFTP 服务器的 内核 文件。
      http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img
      指定上传到 HTTP 服务器的 live rootfs 镜像的位置。
      http://<HTTP_server>/bootstrap.ign
      指定上传到 HTTP 服务器的 bootstrap Ignition 配置文件的位置。
      rhcos-<version>-live-initramfs.<architecture>.img
      指定上传到 TFTP 服务器的 initramfs 文件的位置。
      注意

      有关如何为 UEFI 引导配置 PXE 服务器的更多信息,请参阅红帽知识库文章: 如何为 Red Hat Enterprise Linux 的 UEFI 引导配置/设置 PXE 服务器?

  7. 继续为集群创建机器。

    重要

    此刻您必须创建 bootstrap 和 control plane 机器。如果 control plane 机器不可调度(这是默认调度),则在安装集群前至少会创建两台计算机器。