11.2.8. 创建 Red Hat Enterprise Linux CoreOS (RHCOS) 机器

在您置备的 IBM Power Systems 基础架构上安装集群前,必须先创建 RHCOS 机器供它使用。按照相应的步骤,使用 ISO 镜像或网络 PXE 启动来创建机器。

11.2.8.1. 使用 ISO 镜像创建 Red Hat Enterprise Linux CoreOS (RHCOS) 机器

在您置备的 IBM Power Systems 基础架构上安装集群前,必须先创建 RHCOS 机器供它使用。您可以使用 ISO 镜像来创建这些机器。

先决条件

  • 获取集群的 Ignition 配置文件。
  • 具有可从计算机以及您创建的机器访问的 HTTP 服务器的访问权限。

流程

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

    重要

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

  2. 从 RHCOS 镜像镜像页面获取您选择的操作系统实例安装方法所需的 RHCOS 镜像

    重要

    RHCOS 镜像可能不会随着 OpenShift Container Platform 的每一发行版本都有改变。您必须下载最高版本的镜像,其版本号应小于或等于您安装的 OpenShift Container Platform 版本。如果可用,请使用与 OpenShift Container Platform 版本匹配的镜像版本。此流程只使用 ISO 镜像。此安装类型不支持 RHCOS qcow2 镜像。

    ISO 文件名类似以下示例:

    rhcos-<version>-live.<architecture>.iso

  3. 使用 ISO 启动 RHCOS 安装。使用如下安装选项之一:

    • 将 ISO 镜像刻录到磁盘并直接启动。
    • 通过 LOM 接口使用 ISO 重定向。
  4. 引导 ISO 镜像。您可以中断安装引导过程来添加内核参数。然而,在这个 ISO 过程中,您应该使用 coreos-installer 命令而不是添加内核参数。如果您在没有选项或中断的情况下运行 live 安装程序,安装程序将引导至 live 系统上的 shell 提示符,准备好将 RHCOS 安装到磁盘中。
  5. 在运行 coreos-installer 前,请参阅高级 RHCOS 安装参考 部分,以了解配置功能的不同方法,如网络和磁盘分区。
  6. 运行 coreos-installer 命令。您至少必须识别节点类型的 Ignition 配置文件位置,以及您要安装到的磁盘位置。下面是一个示例:

    $ sudo coreos-installer install \
         --ignition-url=https://host/worker.ign /dev/sda
  7. 安装 RHCOS 后,系统会重启。系统重启过程中,它会应用您指定的 Ignition 配置文件。
  8. 继续为集群创建其他机器。

    重要

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

11.2.8.1.1. 高级 RHCOS 安装参考

本节演示了网络配置和其他高级选项,允许您修改 Red Hat Enterprise Linux CoreOS(RHCOS)手动安装过程。下表描述了您可以与 RHCOS live installer 和 coreos-installer 命令一起使用的内核参数和命令行选项。

RHCOS 启动提示下的路由和绑定选项

如果从 ISO 镜像安装 RHCOS,您可以在引导该镜像时手动添加内核参数以配置节点的网络。如果没有使用网络参数,则安装默认为使用 DHCP。

重要

添加网络参数时,还必须添加 rd.neednet=1 内核参数。

下表描述了如何为实时 ISO 安装使用 ip=nameserver=bond= 内核参数。

注意

在添加内核参数时顺序非常重要: ip=nameserver=,然后 bond=

ISO 的路由和绑定选项

下表提供了配置 Red Hat Enterprise Linux CoreOS(RHCOS)节点网络的示例。这些是在系统引导过程中传递给 dracut 工具的网络选项。有关 dracut 支持的网络选项的详情,请参考 dracut.cmdline 手册页。

描述例子

要配置一个 IP 地址,可以使用 DHCP(ip=dhcp)或者设置单独的静态 IP 地址(ip=<host_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
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp1s0:none
nameserver=4.4.4.41

通过指定多个 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

在单一接口中禁用 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

您可以将系统中 DHCP 和静态 IP 配置与多个网络接口结合在一起。

ip=enp1s0:dhcp
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:enp2s0:none

可选: 您可以使用 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

在网络接口中配置 VLAN 并使用 DHCP:

ip=enp2s0.100:dhcp
vlan=enp2s0.100:enp2s0

您可以为每个服务器添加一个 nameserver= 条目来提供多个 DNS 服务器。

nameserver=1.1.1.1
nameserver=8.8.8.8

可选:使用 bond= 选项支持将多个网络接口绑定到一个接口。在这两个示例中:

  • 配置绑定接口的语法为: bond=name[:network_interfaces][:options]
  • name 是绑定设备名称(bond0),network_interfaces 代表用逗号分开的物理(以太网)接口(em1,em2)的列表,options 是用逗号分开的绑定选项列表。输入 modinfo bonding 查看可用选项。
  • 当使用 bond= 创建绑定接口时,您必须指定如何分配 IP 地址以及绑定接口的其他信息。

要将绑定的接口配置为使用 DHCP,请将绑定的 IP 地址设置为 dhcp。例如:

bond=bond0:em1,em2:mode=active-backup
ip=bond0:dhcp

要将绑定接口配置为使用静态 IP 地址,请输入您需要的特定 IP 地址以及相关信息。例如:

bond=bond0:em1,em2:mode=active-backup
ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0:none

可选: 您可以使用 vlan= 参数在绑定接口上配置 VLAN。

使用 VLAN 配置绑定接口并使用 DHCP:

ip=bond0.100:dhcp
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0

使用 VLAN 配置绑定接口,并使用静态 IP 地址:

ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0.100:none
bond=bond0:em1,em2:mode=active-backup
vlan=bond0.100:bond0
coreos.inst 引导选项用于 ISO 或 PXE 安装

虽然您可以将大多数标准安装引导参数传递给 live 安装程序,但也有一些特定于 RHCOS live 安装程序的参数。

  • 对于 ISO,可以通过中断 RHCOS 安装程序来添加这些选项。
  • 对于 PXE 或 iPXE,这些选项必须在启动 PXE 内核前添加到 APPEND 行中。您无法中断实时 PXE 安装。

下表显示了用于 ISO 和 PXE 安装的 RHCOS live installer 引导选项。

表 11.15. coreos.inst 引导选项

参数描述

coreos.inst.install_dev

必需。要安装的系统中的块设备。虽然可以使用 sda 这样的相对路径,但建议使用完整路径,如 /dev/sda

coreos.inst.ignition_url

可选:嵌入到已安装系统中的 Ignition 配置的 UR如果没有指定 URL,则不会嵌入 Ignition 配置。

coreos.inst.save_partlabel

可选:在安装过程中要保留的分区压缩标签。允许使用 glob 风格的通配符。指定分区不需要存在。

coreos.inst.save_partindex

可选:在安装过程中完成要保留的分区的分离索引。可以使用 m-n 指定范围,mn 可以被省略。指定分区不需要存在。

coreos.inst.insecure

可选:将 coreos.inst.image_url 指定的 OS 镜像提交取消签名。

coreos.inst.image_url

可选:下载并安装指定的 RHCOS 镜像。

  • 这个参数不应该在生产环境中使用,而是只用于调试目的。
  • 虽然在 RHCOS 的安装版本与 live 介质的版本不匹配时可以使用这个参数,但建议使用与您要安装版本匹配的介质。
  • 如果您使用的是 coreos.inst.image_url。还必须使用 coreos.inst.insecure。这是因为,裸机介质没有为 OpenShift Container Platform 进行 GPG 签名。
  • 只支持 HTTP 和 HTTPS 协议。

coreos.inst.skip_reboot

可选:安装后该系统不会重启。安装完成后,您会收到提示,提示您检查在安装过程中发生的情况。这个参数不应该在生产环境中使用,而是只用于调试目的。

coreos.inst.platform_id

可选:安装 RHCOS 镜像的平台的 Ignition 平台 ID。默认为 metal。这个选项决定是否从云供应商(如 VMware)请求 Ignition 配置。例如: coreos.inst.platform_id=vmware

ignition.config.url

可选:用于实时启动的 Ignition 配置的 URL。例如,它可以用来定制调用 coreos-installer 的方式,或者用来在安装前或安装后运行代码。这与 coreos.inst.ignition_url (这是已安装系统的 Ignition 配置)不同。

ISO 安装的 coreos-installer 选项

您还可以直接从命令行调用 coreos-installer 命令来安装 RHCOS。上表中的内核参数提供了在引导时自动调用 coreos-installer 的快捷方式,但您可以在 shell 提示符运行时将类似的参数直接传递给 coreos-installer

下表显示了您可以在实时安装过程中从 shell 提示符传递给 coreos-installer 命令的选项和子命令。

表 11.16. CoreOS-installer 命令行选项、参数和子命令

命令行选项

选项

描述

-u, --image-url <url>

手动指定镜像 URL。

-f, --image-file <path>

手动指定本地镜像文件。

-i, --ignition-file <path>

从文件中嵌入 Ignition 配置。

-I, --ignition-url <URL>

从 URL 嵌入 Ignition 配置。

--ignition-hash <digest>

Ignition config 的 type-value 的文摘值。

-p, --platform <name>

覆盖 Ignition 平台 ID。

--append-karg <arg>…​

附加默认内核参数。

--delete-karg <arg>…​

删除默认内核参数。

-n, --copy-network

从安装环境中复制网络配置。

+

重要

copy-network 选项只复制 /etc/NetworkManager/system-connections 下的网络配置。特别是,它不会复制系统主机名。

--network-dir <path>

使用 -n。默认为 /etc/NetworkManager/system-connections/

--save-partlabel <lx>..

使用这个标签 glob 保存分区。

--save-partindex <id>…​

使用这个数值或者范围保存分区。

--offline

强制离线安装。

--insecure

跳过签名验证。

--insecure-ignition

允许没有 HTTPS 或 hash 的 Ignition URL。

--architecture <name>

目标 CPU 架构。默认为 x86_64

--preserve-on-error

出现错误时不清除分区表。

-h--help

打印帮助信息。

命令行参数

参数

描述

<device>

目的设备。

CoreOS-installer 嵌入的 Ignition 命令

命令

描述

$ coreos-installer iso ignition embed <options> --ignition-file <file_path> <ISO_image>

在 ISO 镜像中嵌入 Ignition 配置。

coreos-installer iso ignition show <options> <ISO_image>

显示来自 ISO 镜像的内嵌 Ignition 配置。

coreos-installer iso ignition remove <options> <ISO_image>

从 ISO 镜像中删除嵌入的 Ignition 配置。

coreos-installer ISO Ignition 选项

选项

描述

-f, --force

覆盖现有的 Ignition 配置。

-i, --ignition-file <path>

要使用的 Ignition 配置。默认为 stdin

-o, --output <path>

将 ISO 写入到一个新输出文件。

-h--help

打印帮助信息。

coreos-installer PXE Ignition 命令

命令

描述

请注意,不是所有子命令都接受这些选项。

coreos-installer pxe ignition wrap <options>

在镜像中嵌套 Ignition 配置。

coreos-installer pxe ignition unwrap <options> <image_name>

显示在镜像中嵌套的 Ignition 配置。

coreos-installer pxe ignition unwrap <options> <initrd_name>

initrd 镜像中显示嵌套的 Ignition 配置。

coreos-installer PXE Ignition 选项

选项

描述

-i, --ignition-file <path>

要使用的 Ignition 配置。默认为 stdin

-o, --output <path>

将 ISO 写入到一个新输出文件。

-h--help

打印帮助信息。