2.11. 安装 RHCOS 并启动 OpenShift Container Platform bootstrap 过程
要在您置备的裸机基础架构上安装 OpenShift Container Platform,您必须在机器上安装 Red Hat Enterprise Linux CoreOS(RHCOS)。安装 RHCOS 时,您必须为您要安装的机器类型提供 OpenShift Container Platform 安装程序生成的 Ignition 配置文件。如果您配置了适当的网络、DNS 和负载均衡基础架构,OpenShift Container Platform bootstrap 过程会在 RHCOS 机器重启后自动启动。
要在机器上安装 RHCOS,请按照以下步骤使用 ISO 镜像或网络 PXE 引导。
本安装文档中包括的计算节点部署步骤特定于 RHCOS。如果您选择部署基于 RHEL 的计算节点,您需要负责所有操作系统生命周期管理和维护,包括执行系统更新、应用补丁和完成所有其他必要的任务。仅支持 RHEL 8 计算机器。
您可以使用以下方法在 ISO 和 PXE 安装过程中配置 RHCOS:
-
内核参数: 您可以使用内核参数来提供特定于安装的信息。例如,您可以指定上传到 HTTP 服务器的 RHCOS 安装文件的位置以及您要安装的节点类型的 Ignition 配置文件的位置。对于 PXE 安装,您可以使用
APPEND
参数将参数传递给 live 安装程序的内核。对于 ISO 安装,您可以中断实时安装引导过程来添加内核参数。在这两个安装情形中,您可以使用特殊的coreos.inst.*
参数来指示实时安装程序,以及标准安装引导参数来打开或关闭标准内核服务。 -
Ignition 配置:OpenShift Container Platform Ignition 配置文件(
*.ign
)特定于您要安装的节点类型。您可以在 RHCOS 安装过程中传递 bootstrap、control plane 或计算节点 Ignition 配置文件的位置,以便在首次启动时生效。特殊情况下,您可以创建单独的、有限的 Ignition 配置以传递给 live 系统。该 Ignition 配置可以执行特定的任务,如在安装完成后向置备系统报告成功。此特殊的 Ignition 配置由coreos-installer
使用,以便在首次引导安装的系统时应用。不要直接为实时 ISO 提供标准 control plane 和计算节点 Ignition 配置。 -
coreos-installer
:您可以将 live ISO 安装程序引导到 shell 提示符,这可让您在第一次引导前以多种方式准备持久性系统。特别是,您可以运行coreos-installer
命令来识别要包含的各种工件、使用磁盘分区和设置网络。在某些情况下,您可以配置 live 系统上的功能并将其复制到安装的系统中。
使用 ISO 安装还是 PXE 安装取决于您的情况。PXE 安装需要可用的 DHCP 服务并进行更多准备,但可以使安装过程更加自动化。ISO 安装是一个更手动的过程,如果您设置的机器数超过几台,则可能不方便。
从 OpenShift Container Platform 4.6 开始,RHCOS ISO 和其他安装工件支持在带有 4K 扇区的磁盘上安装。
2.11.1. 使用 ISO 镜像安装 RHCOS
您可以使用 ISO 镜像在机器上安装 RHCOS。
先决条件
- 已为集群创建 Ignition 配置文件。
- 您已配置了适当的网络、DNS 和负载平衡基础架构。
- 您有一个可以从计算机以及您创建的机器访问的 HTTP 服务器。
- 您已参阅 Advanced RHCOS 安装配置 部分来了解配置功能的不同方法,如网络和磁盘分区。
流程
获取每个 Ignition 配置文件的 SHA512 摘要。例如,您可以在运行 Linux 的系统上使用以下内容来获取
bootstrap.ign
Ignition 配置文件的 SHA512 摘要:$ sha512sum <installation_directory>/bootstrap.ign
后续步骤中会向
coreos-installer
提供摘要,以验证集群节点上 Ignition 配置文件的真实性。将安装程序创建的 bootstrap、control plane 和计算节点 Ignition 配置文件上传到 HTTP 服务器。注意这些文件的 URL。
重要您可以在 Ignition 配置中添加或更改配置设置,然后将其保存到 HTTP 服务器。如果您计划在安装完成后在集群中添加更多计算机器,请不要删除这些文件。
从安装主机上,验证 Ignition 配置文件是否在 URL 上可用。以下示例获取 bootstrap 节点的 Ignition 配置文件:
$ curl -k http://<HTTP_server>/bootstrap.ign 1
输出示例
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0{"ignition":{"version":"3.2.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa...
在命令中将
bootstrap.ign
替换为master.ign
或worker.ign
,以验证 control plane 和计算节点的 Ignition 配置文件是否可用。虽然可以从 RHCOS 镜像镜像页面获取您选择的操作系统实例安装方法所需的 RHCOS 镜像,但推荐的方法是从
openshift-install
命令的输出获取 RHCOS 镜像的正确版本:$ openshift-install coreos print-stream-json | grep '\.iso[^.]'
输出示例
"location": "<url>/art/storage/releases/rhcos-4.16-aarch64/<release>/aarch64/rhcos-<release>-live.aarch64.iso", "location": "<url>/art/storage/releases/rhcos-4.16-ppc64le/<release>/ppc64le/rhcos-<release>-live.ppc64le.iso", "location": "<url>/art/storage/releases/rhcos-4.16-s390x/<release>/s390x/rhcos-<release>-live.s390x.iso", "location": "<url>/art/storage/releases/rhcos-4.16/<release>/x86_64/rhcos-<release>-live.x86_64.iso",
重要RHCOS 镜像可能不会随着 OpenShift Container Platform 的每个发行版本而改变。您必须下载最高版本的镜像,其版本号应小于或等于您安装的 OpenShift Container Platform 版本。如果可用,请使用与 OpenShift Container Platform 版本匹配的镜像版本。这个过程只使用 ISO 镜像。此安装类型不支持 RHCOS qcow2 镜像。
ISO 文件名类似以下示例:
rhcos-<version>-live.<architecture>.iso
使用 ISO 启动 RHCOS 安装。使用以下安装选项之一:
- 将 ISO 映像刻录到磁盘并直接启动。
- 使用 light-out 管理(LOM)接口使用 ISO 重定向。
在不指定任何选项或中断实时引导序列的情况下引导 RHCOS ISO 镜像。等待安装程序在 RHCOS live 环境中引导进入 shell 提示符。
注意可以中断 RHCOS 安装引导过程来添加内核参数。但是,在这个 ISO 过程中,您应该使用以下步骤中所述的
coreos-installer
命令,而不是添加内核参数。运行
coreos-installer
命令并指定满足您的安装要求的选项。您至少必须指定指向节点类型的 Ignition 配置文件的 URL,以及您要安装到的设备:$ sudo coreos-installer install --ignition-url=http://<HTTP_server>/<node_type>.ign <device> --ignition-hash=sha512-<digest> 12
注意如果要通过使用 TLS 的 HTTPS 服务器提供 Ignition 配置文件,您可以在运行
coreos-installer
前将内部证书颁发机构(CA)添加到系统信任存储中。以下示例将引导节点安装初始化到
/dev/sda
设备。bootstrap 节点的 Ignition 配置文件从 IP 地址 192.168.1.2 的 HTTP Web 服务器获取:$ sudo coreos-installer install --ignition-url=http://192.168.1.2:80/installation_directory/bootstrap.ign /dev/sda --ignition-hash=sha512-a5a2d43879223273c9b60af66b44202a1d1248fc01cf156c46d4a79f552b6bad47bc8cc78ddf0116e80c59d2ea9e32ba53bc807afbca581aa059311def2c3e3b
在机器的控制台上监控 RHCOS 安装的进度。
重要在开始安装 OpenShift Container Platform 之前,确保每个节点中安装成功。观察安装过程可以帮助确定可能会出现 RHCOS 安装问题的原因。
- 安装 RHCOS 后,您必须重启系统。系统重启过程中,它会应用您指定的 Ignition 配置文件。
检查控制台输出,以验证 Ignition 是否运行。
示例命令
Ignition: ran on 2022/03/14 14:48:33 UTC (this boot) Ignition: user-provided config was applied
继续为集群创建其他机器。
重要此时您必须创建 bootstrap 和 control plane 机器。如果 control plane 机器不可调度,请在安装 OpenShift Container Platform 前至少创建两台计算机器。
如果存在所需的网络、DNS 和负载均衡器基础架构,OpenShift Container Platform bootstrap 过程会在 RHCOS 节点重启后自动启动。
注意RHCOS 节点不包含
core
用户的默认密码。您可以使用可访问 SSH 私钥的用户的身份运行ssh core@<node>.<cluster_name>.<base_domain
> 来访问节点,该私钥与您在install_config.yaml
文件中指定的公钥配对。运行 RHCOS 的 OpenShift Container Platform 4 集群节点不可变,它依赖于 Operator 来应用集群更改。不建议使用 SSH 访问集群节点。但是,当调查安装问题时,如果 OpenShift Container Platform API 不可用,或者 kubelet 在目标节点上无法正常工作,则调试或灾难恢复可能需要 SSH 访问。
2.11.2. 使用 PXE 或 iPXE 启动安装 RHCOS
您可以使用 PXE 或 iPXE 启动在机器上安装 RHCOS。
先决条件
- 已为集群创建 Ignition 配置文件。
- 您已配置了适当的网络、DNS 和负载平衡基础架构。
- 您已配置了合适的 PXE 或 iPXE 基础架构。
- 您有一个可以从计算机以及您创建的机器访问的 HTTP 服务器。
- 您已参阅 Advanced RHCOS 安装配置 部分来了解配置功能的不同方法,如网络和磁盘分区。
流程
将安装程序创建的 bootstrap、control plane 和计算节点 Ignition 配置文件上传到 HTTP 服务器。注意这些文件的 URL。
重要您可以在 Ignition 配置中添加或更改配置设置,然后将其保存到 HTTP 服务器。如果您计划在安装完成后在集群中添加更多计算机器,请不要删除这些文件。
从安装主机上,验证 Ignition 配置文件是否在 URL 上可用。以下示例获取 bootstrap 节点的 Ignition 配置文件:
$ curl -k http://<HTTP_server>/bootstrap.ign 1
输出示例
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0{"ignition":{"version":"3.2.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa...
在命令中将
bootstrap.ign
替换为master.ign
或worker.ign
,以验证 control plane 和计算节点的 Ignition 配置文件是否可用。虽然可以从 RHCOS image mirror 页面获取您选择的操作系统实例所需的 RHCOS
kernel
、initramfs
和rootfs
文件,但推荐的方法是从openshift-install
命令的输出中获取 RHCOS 文件的正确版本:$ openshift-install coreos print-stream-json | grep -Eo '"https.*(kernel-|initramfs.|rootfs.)\w+(\.img)?"'
输出示例
"<url>/art/storage/releases/rhcos-4.16-aarch64/<release>/aarch64/rhcos-<release>-live-kernel-aarch64" "<url>/art/storage/releases/rhcos-4.16-aarch64/<release>/aarch64/rhcos-<release>-live-initramfs.aarch64.img" "<url>/art/storage/releases/rhcos-4.16-aarch64/<release>/aarch64/rhcos-<release>-live-rootfs.aarch64.img" "<url>/art/storage/releases/rhcos-4.16-ppc64le/49.84.202110081256-0/ppc64le/rhcos-<release>-live-kernel-ppc64le" "<url>/art/storage/releases/rhcos-4.16-ppc64le/<release>/ppc64le/rhcos-<release>-live-initramfs.ppc64le.img" "<url>/art/storage/releases/rhcos-4.16-ppc64le/<release>/ppc64le/rhcos-<release>-live-rootfs.ppc64le.img" "<url>/art/storage/releases/rhcos-4.16-s390x/<release>/s390x/rhcos-<release>-live-kernel-s390x" "<url>/art/storage/releases/rhcos-4.16-s390x/<release>/s390x/rhcos-<release>-live-initramfs.s390x.img" "<url>/art/storage/releases/rhcos-4.16-s390x/<release>/s390x/rhcos-<release>-live-rootfs.s390x.img" "<url>/art/storage/releases/rhcos-4.16/<release>/x86_64/rhcos-<release>-live-kernel-x86_64" "<url>/art/storage/releases/rhcos-4.16/<release>/x86_64/rhcos-<release>-live-initramfs.x86_64.img" "<url>/art/storage/releases/rhcos-4.16/<release>/x86_64/rhcos-<release>-live-rootfs.x86_64.img"
重要RHCOS 工件可能不会随着 OpenShift Container Platform 的每个发行版本而改变。您必须下载最高版本的镜像,其版本号应小于或等于您安装的 OpenShift Container Platform 版本。这个过程只使用下面描述的适当
kernel
、initram
fs 和 rootfs
工件。此安装类型不支持 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
-
将
rootfs
、kernel
和initramfs
文件上传到 HTTP 服务器。重要如果您计划在安装完成后在集群中添加更多计算机器,请不要删除这些文件。
- 配置网络引导基础架构,以便在安装 RHCOS 后机器从本地磁盘启动。
为 RHCOS 镜像配置 PXE 或 iPXE 安装并开始安装。
为环境修改以下示例菜单条目之一,并验证能否正确访问镜像和 Ignition 文件:
对于 PXE(
x86_64)
: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 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 中设置串行终端和/或控制台? 和"启用 PXE 和 ISO 安装的串行控制台"部分。对于 iPXE (
x86_64
+aarch64
):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
注意此配置不会在图形控制台的机器上启用串行控制台访问。要配置不同的控制台,请在
内核参数
中添加一个或多个console=
参数。例如,添加console=tty0 console=ttyS0
以将第一个 PC 串口设置为主控制台,并将图形控制台设置为二级控制台。如需更多信息,请参阅如何在 Red Hat Enterprise Linux 中设置串行终端和/或控制台? 和"启用 PXE 和 ISO 安装的串行控制台"部分。注意要在
aarch64
架构中网络引导 CoreOS内核
,您需要使用启用了IMAGE_GZIP
选项的 iPXE 构建版本。请参阅 iPXE 中的IMAGE_GZIP
选项。对于
aarch64
中的 PXE(使用 UEFI 和 Grub 作为第二阶段):menuentry 'Install CoreOS' { linux rhcos-<version>-live-kernel-<architecture> 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 rhcos-<version>-live-initramfs.<architecture>.img 3 }
在机器的控制台上监控 RHCOS 安装的进度。
重要在开始安装 OpenShift Container Platform 之前,确保每个节点中安装成功。观察安装过程可以帮助确定可能会出现 RHCOS 安装问题的原因。
- 安装 RHCOS 后,系统会重启。在重启过程中,系统会应用您指定的 Ignition 配置文件。
检查控制台输出,以验证 Ignition 是否运行。
示例命令
Ignition: ran on 2022/03/14 14:48:33 UTC (this boot) Ignition: user-provided config was applied
继续为集群创建机器。
重要此时您必须创建 bootstrap 和 control plane 机器。如果 control plane 机器不可调度,请在安装集群前至少创建两台计算机器。
如果存在所需的网络、DNS 和负载均衡器基础架构,OpenShift Container Platform bootstrap 过程会在 RHCOS 节点重启后自动启动。
注意RHCOS 节点不包含
core
用户的默认密码。您可以使用可访问 SSH 私钥的用户的身份运行ssh core@<node>.<cluster_name>.<base_domain
> 来访问节点,该私钥与您在install_config.yaml
文件中指定的公钥配对。运行 RHCOS 的 OpenShift Container Platform 4 集群节点不可变,它依赖于 Operator 来应用集群更改。不建议使用 SSH 访问集群节点。但是,当调查安装问题时,如果 OpenShift Container Platform API 不可用,或者 kubelet 在目标节点上无法正常工作,则调试或灾难恢复可能需要 SSH 访问。
2.11.3. 高级 RHCOS 安装配置
为 OpenShift Container Platform 手动置备 Red Hat Enterprise Linux CoreOS(RHCOS)节点的一个关键优点是能够进行通过默认的 OpenShift Container Platform 安装方法无法进行的配置。本节介绍了您可以使用的一些技术进行配置,其中包括:
- 将内核参数传递给实时安装程序
-
从 live 系统手动运行
coreos-installer
- 自定义实时 ISO 或 PXE 引导镜像
本节详述了与 Red Hat Enterprise Linux CoreOS(RHCOS)手动安装的高级配置相关的内容,如磁盘分区、网络以及使用 Ignition 配置的不同方式相关。
2.11.3.1. 使用高级网络选项进行 PXE 和 ISO 安装
OpenShift Container Platform 节点的网络默认使用 DHCP 来收集所有必要的配置设置。要设置静态 IP 地址或配置特殊设置,如绑定,您可以执行以下操作之一:
- 引导 live 安装程序时传递特殊内核参数。
- 使用机器配置将网络文件复制到安装的系统中。
- 从 live 安装程序 shell 提示符配置网络,然后将这些设置复制到安装的系统上,以便在安装的系统第一次引导时生效。
要配置 PXE 或 iPXE 安装,请使用以下选项之一:
- 请参阅"高级 RHCOS 安装参考"表。
- 使用机器配置将网络文件复制到安装的系统中。
要配置 ISO 安装,请使用以下步骤:
流程
- 引导 ISO 安装程序.
-
在 live 系统 shell 提示符下,使用可用的 RHEL 工具(如
nmcli
或nmtui
)为 live 系统配置网络。 运行
coreos-installer
命令以安装系统,添加--copy-network
选项来复制网络配置。例如:$ sudo coreos-installer install --copy-network \ --ignition-url=http://host/worker.ign /dev/disk/by-id/scsi-<serial_number>
重要copy-network
选项仅复制在/etc/NetworkManager/system-connections
下找到的网络配置。特别是,它不会复制系统主机名。- 重启安装的系统。
其他资源
-
有关
nmcli
和nmtui
工具的更多信息,请参阅 RHEL 8 文档中的 Getting started with nmcli and Getting started with nmtui。
2.11.3.2. 磁盘分区
磁盘分区是在 Red Hat Enterprise Linux CoreOS(RHCOS)安装过程中在 OpenShift Container Platform 集群节点上创建的。特定架构的每个 RHCOS 节点使用相同的分区布局,除非覆盖默认的分区配置。在 RHCOS 安装过程中,根文件系统的大小会增加,以使用目标设备中剩余的可用空间。
在节点上使用自定义分区方案可能会导致 OpenShift Container Platform 在某些节点分区上监控或警报。如果要覆盖默认分区,请参阅 了解 OpenShift 文件系统监控(驱除条件) 以了解有关 OpenShift Container Platform 如何监控主机文件系统的更多信息。
OpenShift Container Platform 监控以下两个文件系统标识符:
-
nodefs
,这是包含/var/lib/kubelet
的文件系统 -
imagefs
,这是包含/var/lib/containers
的文件系统
对于默认分区方案,nodefs
和 imagefs
监控相同的根文件系统 /
。
要在 OpenShift Container Platform 集群节点上安装 RHCOS 时覆盖默认分区,您必须创建单独的分区。您可能想要为容器和容器镜像添加单独的存储分区。例如,通过在独立分区中挂载 /var/lib/containers
,kubelet 会单独监控 /var/lib/containers
作为 imagefs
目录,以及 root 文件系统作为 nodefs
目录。
如果您已将磁盘大小调整为托管更大的文件系统,请考虑创建单独的 /var/lib/containers
分区。考虑重新定义具有 xfs
格式的磁盘大小,以减少大量分配组导致的 CPU 时间问题。
2.11.3.2.1. 创建独立 /var
分区
通常,您应该使用在 RHCOS 安装过程中创建的默认磁盘分区。然而,在有些情况下您可能需要为预期增长的目录创建独立分区。
OpenShift Container Platform 支持添加单个分区将存储附加到 /var
目录或 /var
的子目录中。例如:
-
/var/lib/containers
:保存随着系统中添加更多镜像和容器而增长的容器相关内容。 -
/var/lib/etcd
:保存您可能希望独立保留的数据,比如 etcd 存储的性能优化。 /var
:保存您可能希望独立保留的数据,以满足审计等目的。重要对于大于 100GB 的磁盘大小,特别是磁盘大小大于 1TB,请创建一个独立的
/var
分区。
通过单独存储 /var
目录的内容,可以更轻松地根据需要为区域扩展存储,并在以后重新安装 OpenShift Container Platform,并保持该数据的完整性。使用这个方法,您不必再次拉取所有容器,在更新系统时也不必复制大量日志文件。
将独立分区用于 /var
目录或 /var
的子目录也会防止分区目录中的数据增加填充根文件系统。
以下流程通过添加机器配置清单来设置独立的 /var
分区,该清单会在安装准备阶段封装到节点类型的 Ignition 配置文件中。
流程
在安装主机上,切换到包含 OpenShift Container Platform 安装程序的目录,并为集群生成 Kubernetes 清单:
$ openshift-install create manifests --dir <installation_directory>
创建用于配置额外分区的 Butane 配置。例如,将文件命名为
$HOME/clusterconfig/98-var-partition.bu
,将磁盘设备名称改为worker
系统上存储设备的名称,并根据情况设置存储大小。这个示例将/var
目录放在一个单独的分区中:variant: openshift version: 4.16.0 metadata: labels: machineconfiguration.openshift.io/role: worker name: 98-var-partition storage: disks: - device: /dev/disk/by-id/<device_name> 1 partitions: - label: var start_mib: <partition_start_offset> 2 size_mib: <partition_size> 3 number: 5 filesystems: - device: /dev/disk/by-partlabel/var path: /var format: xfs mount_options: [defaults, prjquota] 4 with_mount_unit: true
注意在创建单独的
/var
分区时,如果不同的实例类型没有相同的设备名称,则无法将不同的实例类型用于计算节点。从 Butane 配置创建一个清单,并将它保存到
clusterconfig/openshift
目录中。例如,运行以下命令:$ butane $HOME/clusterconfig/98-var-partition.bu -o $HOME/clusterconfig/openshift/98-var-partition.yaml
创建 Ignition 配置文件:
$ openshift-install create ignition-configs --dir <installation_directory> 1
- 1
- 对于
<installation_directory>
,请指定相同的安装目录。
为安装目录中的 bootstrap、control plane 和计算节点创建 Ignition 配置文件:
. ├── auth │ ├── kubeadmin-password │ └── kubeconfig ├── bootstrap.ign ├── master.ign ├── metadata.json └── worker.ign
<installation_directory>/manifest
和<installation_directory>/openshift
目录中的文件被嵌套到 Ignition 配置文件中,包括包含98-var-partition
自定义MachineConfig
对象的文件。
后续步骤
- 您可以通过在 RHCOS 安装过程中引用 Ignition 配置文件来应用自定义磁盘分区。
2.11.3.2.2. 保留现有分区
对于 ISO 安装,您可以在 coreos-installer
命令中添加可让安装程序维护一个或多个现有分区的选项。对于 PXE 安装,您可以在 APPEND
参数中添加 coreos.inst.*
选项来保留分区。
保存的分区可能是来自现有 OpenShift Container Platform 系统的数据分区。您可以通过分区标签或编号识别您要保留的磁盘分区。
如果您保存了现有分区,且这些分区没有为 RHCOS 留下足够空间,则安装将失败,而不影响保存的分区。
在 ISO 安装过程中保留现有分区
这个示例保留分区标签以 数据开头的任何分区(data
*
):
# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ --save-partlabel 'data*' /dev/disk/by-id/scsi-<serial_number>
以下示例演示了在运行 coreos-installer
时要保留磁盘上的第 6 个分区:
# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign \ --save-partindex 6 /dev/disk/by-id/scsi-<serial_number>
这个示例保留分区 5 及更高分区:
# coreos-installer install --ignition-url http://10.0.2.2:8080/user.ign --save-partindex 5- /dev/disk/by-id/scsi-<serial_number>
在前面已保存分区的示例中,coreos-installer
会立即重新创建分区。
在 PXE 安装过程中保留现有分区
这个 APPEND
选项保留分区标签以 'data'('data*')开头的任何分区:
coreos.inst.save_partlabel=data*
这个 APPEND
选项保留分区 5 及更高分区:
coreos.inst.save_partindex=5-
这个 APPEND
选项保留分区 6:
coreos.inst.save_partindex=6
2.11.3.3. 识别 Ignition 配置
在进行 RHCOS 手动安装时,您可以提供两种 Ignition 配置类型,它们有不同的原因:
永久安装 Ignition 配置 :每个手动 RHCOS 安装都需要传递
openshift-installer
生成的 Ignition 配置文件之一,如bootstrap.ign
、master.ign
和worker.ign
,才能进行安装。重要不建议直接修改这些 Ignition 配置文件。您可以更新嵌套到 Ignition 配置文件中的清单文件,如上一节示例中所述。
对于 PXE 安装,您可以使用
coreos.inst.ignition_url=
选项在APPEND
行上传递 Ignition 配置。对于 ISO 安装,在 ISO 引导至 shell 提示符后,您可以使用带有--ignition-url=
选项的coreos-installer
命令行。在这两种情况下,只支持 HTTP 和 HTTPS 协议。实时安装 Ignition 配置 :可使用
coreos-installer
customize
子命令及其各种选项来创建此类型。使用此方法,Ignition 配置会传递到 live 安装介质,在引导时立即运行,并在 RHCOS 系统安装到磁盘之前或之后执行设置任务。这个方法只用于必须执行一次且之后不能再次应用的任务,比如不能使用机器配置进行的高级分区。对于 PXE 或 ISO 引导,您可以创建 Ignition 配置,
APP
ENDignition.config.url=
选项来标识 Ignition 配置的位置。您还需要附加ignition.firstboot ignition.platform.id=metal
或ignition.config.url
选项。
2.11.3.4. 默认控制台配置
从 OpenShift Container Platform 4.16 引导镜像安装的 Red Hat Enterprise Linux CoreOS (RHCOS) 节点使用默认控制台,旨在识别大多数虚拟化和裸机设置。不同的云和虚拟化平台可能会根据所选的架构使用不同的默认设置。裸机安装使用内核默认设置,这通常意味着图形控制台是主控制台,并且禁用串行控制台。
默认控制台可能与特定的硬件配置不匹配,或者您可能具有需要调整默认控制台的特定需求。例如:
- 您希望访问控制台上的紧急 shell 进行调试。
- 您的云平台没有提供到图形控制台的互动访问,但提供了一个串行控制台。
- 您需要启用多个控制台。
控制台配置继承自引导镜像。这意味着现有集群中的新节点不受默认控制台的影响。
您可以使用以下方法为裸机安装配置控制台:
-
在命令行中手动使用
coreos-installer
。 -
使用带有
--dest-console
选项的coreos-installer iso customize
或coreos-installer pxe customize
子命令,以创建可自动执行进程的自定义镜像。
对于高级自定义,请使用 coreos-installer iso
或 coreos-installer pxe
子命令而不是内核参数来执行控制台配置。
2.11.3.5. 为 PXE 和 ISO 安装启用串行控制台
默认情况下,Red Hat Enterprise Linux CoreOS (RHCOS) 串行控制台被禁用,所有输出都会写入图形控制台。您可以为 ISO 安装启用串行控制台并重新配置引导装载程序,以便输出同时发送到串行控制台和图形控制台。
流程
- 引导 ISO 安装程序.
运行
coreos-installer
命令来安装系统,添加--console
选项一次来指定图形控制台,然后第二次指定串行控制台:$ coreos-installer install \ --console=tty0 \1 --console=ttyS0,<options> \2 --ignition-url=http://host/worker.ign /dev/disk/by-id/scsi-<serial_number>
- 1
- 所需的二级控制台。在这种情况下,是图形控制台。省略这个选项将禁用图形控制台。
- 2
- 所需的主控制台。在这种情况下,是串行控制台。
options
字段定义 baud 速率和其他设置。此字段的一个常见值为11520n8
。如果没有提供选项,则使用默认内核值9600n8
。有关这个选项格式的更多信息,请参阅 Linux 内核串口控制台 文档。
重启安装的系统。
注意可以使用
coreos-installer install --append-karg
选项来获取类似的结果,并使用console=
指定控制台。但是,这只会为内核设置控制台,而不为引导装载程序设置控制台。
要配置 PXE 安装,请确保省略 coreos.inst.install_dev
内核命令行选项,并使用 shell 提示符使用上述 ISO 安装过程手动运行 coreos-installer
。
2.11.3.6. 自定义 live RHCOS ISO 或 PXE 安装
您可以通过将 Ignition 配置文件直接注入镜像中来使用 live ISO 镜像或 PXE 环境来安装 RHCOS。这会创建一个自定义镜像,供您用来置备系统。
对于 ISO 镜像,此操作的机制是 coreos-installer iso custom
子命令,它使用您的配置修改 .iso
文件。同样,PXE 环境的机制是 coreos-installer pxe customize
子命令,它会创建一个包含自定义的新 initramfs
文件。
custom
子命令是一个通用工具,也可以嵌入其他类型的自定义。以下任务是一些更常见的自定义示例:
- 当公司安全策略需要使用时,注入自定义的 CA 证书。
- 在不需要内核参数的情况下配置网络设置。
- 嵌入任意预安装和安装后脚本或二进制文件。
2.11.3.7. 自定义 live RHCOS ISO 镜像
您可以使用 coreos-installer iso custom
子命令直接自定义 live RHCOS ISO 镜像。当您引导 ISO 镜像时,会自动应用自定义。
您可以使用此功能配置 ISO 镜像来自动安装 RHCOS。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS 镜像镜像页面和 Ignition 配置文件检索 RHCOS ISO 镜像,然后运行以下命令来直接将 Ignition 配置注入 ISO 镜像:
$ coreos-installer iso customize rhcos-<version>-live.x86_64.iso \ --dest-ignition bootstrap.ign \ 1 --dest-device /dev/disk/by-id/scsi-<serial_number> 2
可选: 要删除 ISO 镜像自定义并将镜像返回到其 pristine 状态,请运行:
$ coreos-installer iso reset rhcos-<version>-live.x86_64.iso
现在,您可以重新自定义 live ISO 镜像,或者在其 pristine 状态中使用它。
应用您的自定义会影响每个后续 RHCOS 引导。
2.11.3.7.1. 修改实时安装 ISO 镜像以启用串行控制台
在使用 OpenShift Container Platform 4.12 及更高版本安装的集群中,串行控制台默认被禁用,所有输出都会写入图形控制台。您可以按照以下流程启用串行控制台。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS image mirror 页中获取 RHCOS ISO 镜像,并运行以下命令来自定义 ISO 镜像,使串行控制台能够接收输出:
$ coreos-installer iso customize rhcos-<version>-live.x86_64.iso \ --dest-ignition <path> \1 --dest-console tty0 \2 --dest-console ttyS0,<options> \3 --dest-device /dev/disk/by-id/scsi-<serial_number> 4
- 1
- 要安装 Ignition 配置的位置。
- 2
- 所需的二级控制台。在这种情况下,是图形控制台。省略这个选项将禁用图形控制台。
- 3
- 所需的主控制台。在这种情况下,是串行控制台。
options
字段定义 baud 速率和其他设置。此字段的一个常见值为115200n8
。如果没有提供选项,则使用默认内核值9600n8
。有关这个选项格式的更多信息,请参阅 Linux 内核串口控制台文档。 - 4
- 要安装到的指定磁盘。如果省略这个选项,ISO 镜像会自动运行安装程序,除非还指定了
coreos.inst.install_dev
内核参数。
注意--dest-console
选项会影响安装的系统,而不是实时 ISO 系统。要修改 live ISO 系统的控制台,请使用--live-karg-append
选项并使用console=
指定控制台。自定义会被应用,并影响每个后续 ISO 镜像引导。
可选: 要删除 ISO 镜像自定义并将镜像返回到其原始状态,请运行以下命令:
$ coreos-installer iso reset rhcos-<version>-live.x86_64.iso
现在,您可以重新自定义 live ISO 镜像,或者在其原始状态中使用它。
2.11.3.7.2. 修改实时安装 ISO 镜像以使用自定义证书颁发机构
您可以使用 custom
子命令的 --ignition-ca
标志向 Ignition 提供证书颁发机构(CA)证书。您可以在安装过程中使用 CA 证书,并在置备安装的系统时使用 CA 证书。
自定义 CA 证书会影响 Ignition 获取远程资源的方式,但它们不会影响安装到系统中的证书。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS 镜像镜像页面检索 RHCOS ISO 镜像,并运行以下命令来自定义 ISO 镜像以用于自定义 CA:
$ coreos-installer iso customize rhcos-<version>-live.x86_64.iso --ignition-ca cert.pem
coreos.inst.ignition_url
内核参数无法使用 --ignition-ca
标志。您必须使用 --dest-ignition
标志为每个集群创建自定义镜像。
应用自定义 CA 证书会影响每个后续 RHCOS 引导。
2.11.3.7.3. 使用自定义网络设置修改实时安装 ISO 镜像
您可以将 NetworkManager 密钥文件嵌入到 live ISO 镜像中,并使用 customize
子命令的 --network-keyfile
标志将其传递给安装的系统。
在创建连接配置文件时,您必须在连接配置文件的文件名中使用 .nmconnection
文件名扩展名。如果不使用 .nmconnection
文件名扩展,集群会将连接配置集应用到 live 环境,但它不会在集群首次启动节点时应用配置,从而导致无法正常工作的设置。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 为绑定接口创建连接配置集。例如,在本地目录中创建
bond0.nmconnection
文件,其内容如下:[connection] id=bond0 type=bond interface-name=bond0 multi-connect=1 [bond] miimon=100 mode=active-backup [ipv4] method=auto [ipv6] method=auto
为二级接口创建连接配置集,以添加到绑定中。例如,在本地目录中创建
bond0-proxy-em1.nmconnection
文件,其内容如下:[connection] id=em1 type=ethernet interface-name=em1 master=bond0 multi-connect=1 slave-type=bond
为二级接口创建连接配置集,以添加到绑定中。例如,在本地目录中创建
bond0-proxy-em2.nmconnection
文件,其内容如下:[connection] id=em2 type=ethernet interface-name=em2 master=bond0 multi-connect=1 slave-type=bond
从 RHCOS 镜像镜像页面检索 RHCOS ISO 镜像,并运行以下命令来使用您配置网络自定义 ISO 镜像:
$ coreos-installer iso customize rhcos-<version>-live.x86_64.iso \ --network-keyfile bond0.nmconnection \ --network-keyfile bond0-proxy-em1.nmconnection \ --network-keyfile bond0-proxy-em2.nmconnection
网络设置应用于实时系统,并传输到目标系统。
2.11.3.7.4. 为 iSCSI 引导设备自定义实时安装 ISO 镜像
您可以设置 iSCSI 目标和 initiator 值,以便使用自定义的 live RHCOS 镜像版本自动挂载、引导和配置。
先决条件
- 您有一个 iSCSI 目标,您要在其中安装 RHCOS。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS 镜像镜像页面检索 RHCOS ISO 镜像,并运行以下命令使用以下信息自定义 ISO 镜像:
$ coreos-installer iso customize \ --pre-install mount-iscsi.sh \ 1 --post-install unmount-iscsi.sh \ 2 --dest-device /dev/disk/by-path/<IP_address>:<port>-iscsi-<target_iqn>-lun-<lun> \ 3 --dest-ignition config.ign \ 4 --dest-karg-append rd.iscsi.initiator=<initiator_iqn> \ 5 --dest-karg-append netroot=<target_iqn> \ 6 -o custom.iso rhcos-<version>-live.x86_64.iso
有关
dracut
支持的 iSCSI 选项的更多信息,请参阅dracut.cmdline
手册页。
2.11.3.7.5. 使用 iBFT 为 iSCSI 引导设备自定义实时安装 ISO 镜像
您可以设置 iSCSI 目标和 initiator 值,以便使用自定义的 live RHCOS 镜像版本自动挂载、引导和配置。
先决条件
- 您有一个 iSCSI 目标,您要在其中安装 RHCOS。
- 可选:有多路径 iSCSI 目标。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS 镜像镜像页面检索 RHCOS ISO 镜像,并运行以下命令使用以下信息自定义 ISO 镜像:
$ coreos-installer iso customize \ --pre-install mount-iscsi.sh \ 1 --post-install unmount-iscsi.sh \ 2 --dest-device /dev/mapper/mpatha \ 3 --dest-ignition config.ign \ 4 --dest-karg-append rd.iscsi.firmware=1 \ 5 --dest-karg-append rd.multipath=default \ 6 -o custom.iso rhcos-<version>-live.x86_64.iso
有关
dracut
支持的 iSCSI 选项的更多信息,请参阅dracut.cmdline
手册页。
2.11.3.8. 自定义 live RHCOS PXE 环境
您可以使用 coreos-installer pxe customize
子命令直接自定义 live RHCOS PXE 环境。当您引导 PXE 环境时,会自动应用自定义。
您可以使用此功能配置 PXE 环境来自动安装 RHCOS。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS 镜像镜像页面和 Ignition 配置文件获取 RHCOS
kernel
,initramfs
和rootfs
文件,然后运行以下命令创建一个包含 Ignition 配置中的自定义的新initramfs
文件:$ coreos-installer pxe customize rhcos-<version>-live-initramfs.x86_64.img \ --dest-ignition bootstrap.ign \ 1 --dest-device /dev/disk/by-id/scsi-<serial_number> \ 2 -o rhcos-<version>-custom-initramfs.x86_64.img 3
应用您的自定义会影响每个后续 RHCOS 引导。
2.11.3.8.1. 修改实时安装 PXE 环境以启用串行控制台。
在使用 OpenShift Container Platform 4.12 及更高版本安装的集群中,串行控制台默认被禁用,所有输出都会写入图形控制台。您可以按照以下流程启用串行控制台。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS image mirror 页面获取
kernel
,initramfs
和rootfs
文件,然后运行以下命令来创建新的自定义initramfs
文件,以便串行控制台接收输出:$ coreos-installer pxe customize rhcos-<version>-live-initramfs.x86_64.img \ --dest-ignition <path> \1 --dest-console tty0 \2 --dest-console ttyS0,<options> \3 --dest-device /dev/disk/by-id/scsi-<serial_number> \4 -o rhcos-<version>-custom-initramfs.x86_64.img 5
- 1
- 要安装 Ignition 配置的位置。
- 2
- 所需的二级控制台。在这种情况下,是图形控制台。省略这个选项将禁用图形控制台。
- 3
- 所需的主控制台。在这种情况下,是串行控制台。
options
字段定义 baud 速率和其他设置。此字段的一个常见值为115200n8
。如果没有提供选项,则使用默认内核值9600n8
。有关这个选项格式的更多信息,请参阅 Linux 内核串口控制台文档。 - 4
- 要安装到的指定磁盘。如果省略这个选项,PXE 环境会自动运行安装程序,除非还指定了
coreos.inst.install_dev
内核参数。 - 5
- 在 PXE 配置中使用自定义
initramfs
文件。添加ignition.firstboot
和ignition.platform.id=metal
内核参数(如果它们尚不存在)。
自定义会被应用,并影响 PXE 环境的每个后续引导。
2.11.3.8.2. 修改实时安装 PXE 环境以使用自定义证书颁发机构
您可以使用 custom
子命令的 --ignition-ca
标志向 Ignition 提供证书颁发机构(CA)证书。您可以在安装过程中使用 CA 证书,并在置备安装的系统时使用 CA 证书。
自定义 CA 证书会影响 Ignition 获取远程资源的方式,但它们不会影响安装到系统中的证书。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS 镜像镜像页面获取 RHCOS
kernel
、initramfs
和rootfs
文件,并运行以下命令来创建一个新的自定义initramfs
文件以用于自定义 CA:$ coreos-installer pxe customize rhcos-<version>-live-initramfs.x86_64.img \ --ignition-ca cert.pem \ -o rhcos-<version>-custom-initramfs.x86_64.img
-
在 PXE 配置中使用自定义
initramfs
文件。添加ignition.firstboot
和ignition.platform.id=metal
内核参数(如果它们尚不存在)。
coreos.inst.ignition_url
内核参数无法使用 --ignition-ca
标志。您必须使用 --dest-ignition
标志为每个集群创建自定义镜像。
应用自定义 CA 证书会影响每个后续 RHCOS 引导。
2.11.3.8.3. 使用自定义网络设置修改实时安装 PXE 环境
您可以将 NetworkManager 密钥文件嵌入到 live PXE 环境中,并使用 customize
子命令的 --network-keyfile
标志将其传递给安装的系统。
在创建连接配置文件时,您必须在连接配置文件的文件名中使用 .nmconnection
文件名扩展名。如果不使用 .nmconnection
文件名扩展,集群会将连接配置集应用到 live 环境,但它不会在集群首次启动节点时应用配置,从而导致无法正常工作的设置。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 为绑定接口创建连接配置集。例如,在本地目录中创建
bond0.nmconnection
文件,其内容如下:[connection] id=bond0 type=bond interface-name=bond0 multi-connect=1 [bond] miimon=100 mode=active-backup [ipv4] method=auto [ipv6] method=auto
为二级接口创建连接配置集,以添加到绑定中。例如,在本地目录中创建
bond0-proxy-em1.nmconnection
文件,其内容如下:[connection] id=em1 type=ethernet interface-name=em1 master=bond0 multi-connect=1 slave-type=bond
为二级接口创建连接配置集,以添加到绑定中。例如,在本地目录中创建
bond0-proxy-em2.nmconnection
文件,其内容如下:[connection] id=em2 type=ethernet interface-name=em2 master=bond0 multi-connect=1 slave-type=bond
从 RHCOS 镜像镜像页面获取 RHCOS
kernel
、initramfs
和rootfs
文件,并运行以下命令来创建一个新的自定义initramfs
文件,它包括您的配置网络:$ coreos-installer pxe customize rhcos-<version>-live-initramfs.x86_64.img \ --network-keyfile bond0.nmconnection \ --network-keyfile bond0-proxy-em1.nmconnection \ --network-keyfile bond0-proxy-em2.nmconnection \ -o rhcos-<version>-custom-initramfs.x86_64.img
在 PXE 配置中使用自定义
initramfs
文件。添加ignition.firstboot
和ignition.platform.id=metal
内核参数(如果它们尚不存在)。网络设置应用于实时系统,并传输到目标系统。
2.11.3.8.4. 为 iSCSI 引导设备自定义实时安装 PXE 环境
您可以设置 iSCSI 目标和 initiator 值,以便使用自定义的 live RHCOS 镜像版本自动挂载、引导和配置。
先决条件
- 您有一个 iSCSI 目标,您要在其中安装 RHCOS。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS image mirror 页获取 RHCOS
kernel
、initramfs
和rootfs
文件,并运行以下命令来使用以下信息创建新的自定义initramfs
文件:$ coreos-installer pxe customize \ --pre-install mount-iscsi.sh \ 1 --post-install unmount-iscsi.sh \ 2 --dest-device /dev/disk/by-path/<IP_address>:<port>-iscsi-<target_iqn>-lun-<lun> \ 3 --dest-ignition config.ign \ 4 --dest-karg-append rd.iscsi.initiator=<initiator_iqn> \ 5 --dest-karg-append netroot=<target_iqn> \ 6 -o custom.img rhcos-<version>-live-initramfs.x86_64.img
有关
dracut
支持的 iSCSI 选项的更多信息,请参阅dracut.cmdline
手册页。
2.11.3.8.5. 使用 iBFT 为 iSCSI 引导设备自定义实时安装 PXE 环境
您可以设置 iSCSI 目标和 initiator 值,以便使用自定义的 live RHCOS 镜像版本自动挂载、引导和配置。
先决条件
- 您有一个 iSCSI 目标,您要在其中安装 RHCOS。
- 可选:有多路径 iSCSI 目标。
流程
-
从
coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。 从 RHCOS image mirror 页获取 RHCOS
kernel
、initramfs
和rootfs
文件,并运行以下命令来使用以下信息创建新的自定义initramfs
文件:$ coreos-installer pxe customize \ --pre-install mount-iscsi.sh \ 1 --post-install unmount-iscsi.sh \ 2 --dest-device /dev/mapper/mpatha \ 3 --dest-ignition config.ign \ 4 --dest-karg-append rd.iscsi.firmware=1 \ 5 --dest-karg-append rd.multipath=default \ 6 -o custom.img rhcos-<version>-live-initramfs.x86_64.img
有关
dracut
支持的 iSCSI 选项的更多信息,请参阅dracut.cmdline
手册页。
2.11.3.9. 高级 RHCOS 安装参考
本节演示了网络配置和其他高级选项,允许您修改 Red Hat Enterprise Linux CoreOS(RHCOS)手动安装过程。下表描述了您可以用于 RHCOS live 安装程序和 coreos-installer
命令的内核参数和命令行选项。
2.11.3.9.1. ISO 安装的网络和绑定选项
如果从 ISO 镜像安装 RHCOS,您可以在引导镜像时手动添加内核参数,以便为节点配置网络。如果没有指定网络参数,当 RHCOS 检测到需要网络来获取 Ignition 配置文件时,在 initramfs 中激活 DHCP。
在手动添加网络参数时,还必须添加 rd.neednet=1
内核参数,以便在 initramfs 中启动网络。
以下信息提供了在 RHCOS 节点上为 ISO 安装配置网络和绑定的示例。示例描述了如何使用 ip=、name
server =
和 bond=
内核参数。
添加内核参数时顺序非常重要: ip=、name
server=
,然后 bond=
。
网络选项在系统引导过程中传递给 dracut
工具。有关 dracut
支持的网络选项的更多信息,请参阅 dracut.cmdline
手册页。
以下示例是 ISO 安装的网络选项。
配置 DHCP 或静态 IP 地址
要配置 IP 地址,可使用 DHCP(ip=dhcp
)或设置单独的静态 IP 地址(ip=<host_ip>
)。如果设置静态 IP,则必须在每个节点上识别 DNS 服务器 IP 地址(名称服务器=<dns_ip>
)。以下示例集:
-
节点的 IP 地址为
10.10.10.2
-
网关地址为
10.10.10.254
-
子网掩码为
255.255.255.0
-
到
core0.example.com
的主机名 -
DNS 服务器地址为
4.4.4.41
-
自动配置值为
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
当您使用 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
-
自动配置值为
none
。当以静态方式配置 IP 网络时,不需要自动配置。
ip=10.10.10.2::10.10.10.254:255.255.255.0::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
配置默认网关和路由
可选:您可以通过设置 a rd.route=
值来配置到额外网络的路由。
当您配置一个或多个网络时,需要一个默认网关。如果额外网络网关与主要网络网关不同,则默认网关必须是主要网络网关。
运行以下命令来配置默认网关:
ip=::10.10.10.254::::
输入以下命令为额外网络配置路由:
rd.route=20.20.20.0/24:20.20.20.254:enp2s0
在单个接口中禁用 DHCP
您可以在单一接口中禁用 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
合并 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
在独立接口上配置 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
要在网络接口中配置 VLAN 并使用 DHCP,请运行以下命令:
ip=enp2s0.100:dhcp vlan=enp2s0.100:enp2s0
提供多个 DNS 服务器
您可以通过为每个服务器添加一个 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
将多个 SR-IOV 网络接口绑定到双端口 NIC 接口
支持与为 SR-IOV 设备启用 NIC 分区关联的第 1 天操作只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
可选: 您可以使用 bond=
选项将多个 SR-IOV 网络接口绑定到双端口 NIC 接口。
在每个节点上,您必须执行以下任务:
- 按照管理 SR-IOV 设备中的指导创建 SR-IOV 虚拟功能(VF)。按照"将 SR-IOV 网络设备附加到虚拟机"部分中的步骤操作。
- 创建绑定,将所需的 VF 附加到绑定,并根据配置网络绑定的指导设置绑定链接状态。按照任何描述的步骤创建绑定。
以下示例演示了您必须使用的语法:
配置绑定接口的语法为:
bond=<name>[:<network_interfaces>][:options]
<name>
是绑定设备名称 (bond0
)、<network_interfaces>
由内核中已知的名称来代表虚拟功能(VF),并显示在ip link
命令的输出中 (eno1f0
,eno2f0
),options 是以逗号分隔的绑定选项列表。输入modinfo bonding
查看可用选项。当使用
bond=
创建绑定接口时,您必须指定如何分配 IP 地址以及绑定接口的其他信息。要将绑定接口配置为使用 DHCP,请将绑定的 IP 地址设置为
dhcp
。例如:bond=bond0:eno1f0,eno2f0:mode=active-backup ip=bond0:dhcp
要将绑定接口配置为使用静态 IP 地址,请输入您需要的特定 IP 地址和相关信息。例如:
bond=bond0:eno1f0,eno2f0:mode=active-backup ip=10.10.10.2::10.10.10.254:255.255.255.0:core0.example.com:bond0:none
使用网络团队
可选: 您可以使用 team=
参数来将网络团队用作绑定的替代选择:
配置组接口的语法为:
team=name[:network_interfaces]
name 是组设备名称(
team0
),network_interfaces 代表以逗号分隔的物理(以太网)接口(em1、em2
)列表。
当 RHCOS 切换到即将推出的 RHEL 版本时,团队(team)功能被计划弃用。如需更多信息,请参阅红帽知识库文章。
使用以下示例配置网络团队:
team=team0:em1,em2 ip=team0:dhcp
2.11.3.9.2. ISO 和 PXE 安装的 coreos-installer
选项
从 ISO 镜像引导 RHCOS live 环境后,您可以通过 在命令提示符下运行 coreos-installer install <options> <device
> 来安装 RHCOS。
下表显示了您可以传递给 coreos-installer
命令的子命令、选项和参数。
coreos-installer install 子命令 | |
子命令 | 描述 |
| 在 ISO 镜像中嵌入 Ignition 配置。 |
coreos-installer install 子命令选项 | |
选项 | 描述 |
| 手动指定镜像 URL。 |
| 手动指定本地镜像文件。用于调试。 |
| 从文件中嵌入 Ignition 配置。 |
| 从 URL 嵌入 Ignition 配置。 |
|
Ignition 配置 |
| 覆盖已安装系统的 Ignition 平台 ID。 |
|
为安装的系统设置内核和引导装载程序控制台。有关 |
| 将默认内核参数附加到安装的系统中。 |
| 从安装的系统中删除默认内核参数。 |
| 从安装环境中复制网络配置。 重要
|
|
用于 |
| 使用这个标签 glob 保存分区。 |
| 使用这个数值或范围保存分区。 |
| 跳过 RHCOS 镜像签名验证。 |
| 允许没有 HTTPS 或 hash 的 Ignition URL。 |
|
目标 CPU 架构.有效值为 |
| 出错时不要清除分区表。 |
| 打印帮助信息. |
coreos-installer install 子命令参数 | |
参数 | 描述 |
| 目标设备. |
coreos-installer ISO 子命令 | |
子命令 | 描述 |
| 自定义 RHCOS live ISO 镜像。 |
| 将 RHCOS live ISO 镜像恢复到默认设置。 |
| 从 ISO 镜像中删除嵌入的 Ignition 配置。 |
coreos-installer ISO customize 子命令选项 | |
选项 | 描述 |
| 将指定的 Ignition 配置文件合并到目标系统的新配置片段中。 |
| 为目标系统指定内核和引导装载程序控制台。 |
| 安装并覆盖指定的目标设备。 |
| 为每个目标系统引导添加一个内核参数。 |
| 从目标系统的每个引导中删除内核参数。 |
| 使用指定的 NetworkManager 密钥文件进行实时和目标系统配置网络。 |
| 指定要被 Ignition 信任的额外 TLS 证书颁发机构。 |
| 在安装之前运行指定的脚本。 |
| 安装后运行指定的脚本。 |
| 应用指定的安装程序配置文件。 |
| 将指定的 Ignition 配置文件合并到实时环境的新配置片段中。 |
| 为每个实时环境引导添加一个内核参数。 |
| 从实时环境每次引导时删除内核参数。 |
|
在每次启动 live 环境时替换内核参数,格式为 |
| 覆盖现有的 Ignition 配置。 |
| 将 ISO 写入到新的输出文件。 |
| 打印帮助信息. |
coreos-installer PXE 子命令 | |
子命令 | 描述 |
请注意,并非所有子命令都接受所有这些选项。 | |
| 自定义 RHCOS live PXE 引导配置。 |
| 在镜像中嵌套 Ignition 配置。 |
| 在镜像中显示嵌套的 Ignition 配置。 |
coreos-installer PXE customize 子命令选项 | |
选项 | 描述 |
请注意,并非所有子命令都接受所有这些选项。 | |
| 将指定的 Ignition 配置文件合并到目标系统的新配置片段中。 |
| 为目标系统指定内核和引导装载程序控制台。 |
| 安装并覆盖指定的目标设备。 |
| 使用指定的 NetworkManager 密钥文件进行实时和目标系统配置网络。 |
| 指定要被 Ignition 信任的额外 TLS 证书颁发机构。 |
| 在安装之前运行指定的脚本。 |
| 安装后运行指定的脚本。 |
| 应用指定的安装程序配置文件。 |
| 将指定的 Ignition 配置文件合并到实时环境的新配置片段中。 |
| 将 initramfs 写入一个新输出文件。 注意 PXE 环境需要这个选项。 |
| 打印帮助信息. |
2.11.3.9.3. coreos.inst
引导选项用于 ISO 或 PXE 安装
您可以通过将 coreos.inst
boot 参数传递给 RHCOS live 安装程序,在引导时自动调用 coreos-installer
选项。这些是在标准引导参数之外提供的。
-
对于 ISO 安装,可以通过在启动加载器菜单中中断自动引导来添加
coreos.inst
选项。您可以在突出显示 RHEL CoreOS(Live) 菜单选项时按TAB
来中断自动引导。 -
对于 PXE 或 iPXE 安装,在引导 RHCOS live 安装程序前,
coreos.inst
选项必须添加到APPEND
行。
下表显示了用于 ISO 和 PXE 安装的 RHCOS live 安装程序 coreos.inst
引导选项。
参数 | 描述 |
---|---|
|
必需。要安装到的系统中的块设备。建议您使用完整路径,如 |
| 可选:嵌入到安装的系统中的 Ignition 配置的 URL。如果没有指定 URL,则不会嵌入 Ignition 配置。仅支持 HTTP 和 HTTPS 协议。 |
| 可选:在安装过程中要保留的分区分离标签。允许使用 glob 风格的通配符。指定分区不需要存在。 |
|
可选:在安装过程中压缩要保留的分区索引。允许 |
|
可选:将 |
| 可选:下载并安装指定的 RHCOS 镜像。
|
| 可选:安装后系统不会重启。安装完成后,您将收到提示,提示您检查在安装过程中发生的情况。这个参数不应该在生产环境中使用,而是只用于调试目的。 |
|
可选:安装 RHCOS 镜像的平台的 Ignition 平台 ID。默认为 |
|
可选:用于实时引导的 Ignition 配置的 URL。例如,这可用于自定义调用 |
2.11.4. 在 RHCOS 上启用带有内核参数的多路径
RHCOS 支持主磁盘上的多路径,支持更强大的硬件故障弹性,以获得更高的主机可用性。
您可以在安装时为 OpenShift Container Platform 4.8 或更高版本置备的节点启用多路径。虽然安装后支持可以通过机器配置激活多路径来实现,但建议在安装过程中启用多路径。
在任何 I/O 到未优化路径会导致 I/O 系统错误的设置中,您必须在安装时启用多路径。
在 IBM Z® 和 IBM® LinuxONE 中,您只能在在安装过程中为它配置集群时启用多路径。如需更多信息,请参阅在 IBM Z® 和 IBM® LinuxONE 上安装使用 z/VM 的集群"安装 RHCOS 并启动 OpenShift Container Platform bootstrap 过程"。
以下流程在安装时启用多路径,并在 coreos-installer install
命令中附加内核参数,以便安装的系统本身将使用从第一次引导开始的多路径。
OpenShift Container Platform 不支持在从 4.6 或更早版本升级的节点上启用多路径作为 2 天的活动。
先决条件
- 已为集群创建 Ignition 配置文件。
- 您已参阅 安装 RHCOS 并启动 OpenShift Container Platform bootstrap 过程。
流程
要启用多路径并启动
multipathd
守护进程,请在安装主机上运行以下命令:$ mpathconf --enable && systemctl start multipathd.service
-
可选:如果引导 PXE 或 ISO,则可以通过从内核命令行添加
rd.multipath=default
来启用多路径。
-
可选:如果引导 PXE 或 ISO,则可以通过从内核命令行添加
通过调用
coreos-installer
程序附加内核参数:如果只有一个多路径设备连接到计算机,则应在路径
/dev/mapper/mpatha
上可用。例如:$ coreos-installer install /dev/mapper/mpatha \1 --ignition-url=http://host/worker.ign \ --append-karg rd.multipath=default \ --append-karg root=/dev/disk/by-label/dm-mpath-root \ --append-karg rw
- 1
- 表示单一多路径设备的路径。
如果有多个多路径设备连接到计算机,或者更为明确,而不是使用
/dev/mapper/mpatha
,则建议使用/dev/disk/by-id
中可用的 World Wide Name(WWN)符号链接。例如:$ coreos-installer install /dev/disk/by-id/wwn-<wwn_ID> \1 --ignition-url=http://host/worker.ign \ --append-karg rd.multipath=default \ --append-karg root=/dev/disk/by-label/dm-mpath-root \ --append-karg rw
- 1
- 表示目标多路径设备的 WWN ID。例如:
0xx194e957fcedb4841
。
当使用特殊
coreos.inst.*
参数指示 live 安装程序时,这个符号链接也可以用作coreos.inst.install_dev
内核参数。如需更多信息,请参阅"安装 RHCOS 和启动 OpenShift Container Platform bootstrap 过程"。
- 重启安装的系统。
前往其中一个 worker 节点并列出内核命令行参数(主机上的
/proc/cmdline
中),以检查内核参数是否正常工作:$ oc debug node/ip-10-0-141-105.ec2.internal
输出示例
Starting pod/ip-10-0-141-105ec2internal-debug ... To use host binaries, run `chroot /host` sh-4.2# cat /host/proc/cmdline ... rd.multipath=default root=/dev/disk/by-label/dm-mpath-root ... sh-4.2# exit
您应看到添加的内核参数。
2.11.4.1. 在辅助磁盘中启用多路径
RHCOS 还支持辅助磁盘上的多路径。在安装时,您可以使用 Ignition 为辅助磁盘启用多路径,而不是内核参数。
先决条件
- 您已阅读了 磁盘分区 一节。
- 您已在 RHCOS 中使用内核参数读取启用多路径。
- 已安装 Butane 工具。
流程
使用类似如下的信息创建一个 Butane 配置:
multipath-config.bu
示例variant: openshift version: 4.16.0 systemd: units: - name: mpath-configure.service enabled: true contents: | [Unit] Description=Configure Multipath on Secondary Disk ConditionFirstBoot=true ConditionPathExists=!/etc/multipath.conf Before=multipathd.service 1 DefaultDependencies=no [Service] Type=oneshot ExecStart=/usr/sbin/mpathconf --enable 2 [Install] WantedBy=multi-user.target - name: mpath-var-lib-container.service enabled: true contents: | [Unit] Description=Set Up Multipath On /var/lib/containers ConditionFirstBoot=true 3 Requires=dev-mapper-mpatha.device After=dev-mapper-mpatha.device After=ostree-remount.service Before=kubelet.service DefaultDependencies=no [Service] 4 Type=oneshot ExecStart=/usr/sbin/mkfs.xfs -L containers -m reflink=1 /dev/mapper/mpatha ExecStart=/usr/bin/mkdir -p /var/lib/containers [Install] WantedBy=multi-user.target - name: var-lib-containers.mount enabled: true contents: | [Unit] Description=Mount /var/lib/containers After=mpath-var-lib-containers.service Before=kubelet.service 5 [Mount] 6 What=/dev/disk/by-label/dm-mpath-containers Where=/var/lib/containers Type=xfs [Install] WantedBy=multi-user.target
运行以下命令来创建 Ignition 配置:
$ butane --pretty --strict multipath-config.bu > multipath-config.ign
继续第一个引导 RHCOS 安装过程的其余部分。
重要不要在安装过程中在命令行上添加
rd.multipath
或root
内核参数,除非主磁盘也多路径。
2.11.5. 在 iSCSI 引导设备中手动安装 RHCOS
您可以在 iSCSI 目标上手动安装 RHCOS。
先决条件
- 您在 RHCOS live 环境中。
- 您有一个要在其上安装 RHCOS 的 iSCSI 目标。
流程
运行以下命令,从 live 环境中挂载 iSCSI 目标:
$ iscsiadm \ --mode discovery \ --type sendtargets --portal <IP_address> \ 1 --login
- 1
- 目标门户的 IP 地址。
运行以下命令并使用必要的内核参数将 RHCOS 安装到 iSCSI 目标上,例如:
$ coreos-installer install \ /dev/disk/by-path/ip-<IP_address>:<port>-iscsi-<target_iqn>-lun-<lun> \ 1 --append-karg rd.iscsi.initiator=<initiator_iqn> \ 2 --append.karg netroot=<target_iqn> \ 3 --console ttyS0,115200n8 --ignition-file <path_to_file>
有关
dracut
支持的 iSCSI 选项的更多信息,请参阅dracut.cmdline
手册页。使用以下命令卸载 iSCSI 磁盘:
$ iscsiadm --mode node --logoutall=all
此过程也可以使用 coreos-installer iso customize
或 coreos-installer pxe customize
子命令来执行。
2.11.6. 使用 iBFT 在 iSCSI 引导设备中安装 RHCOS
在一个完全无盘机器上,也可以通过 iBFT. iSCSI 多路径传递 iSCSI 目标和启动器值。
先决条件
- 您在 RHCOS live 环境中。
- 您有一个 iSCSI 目标,您要在其中安装 RHCOS。
- 可选:有多路径 iSCSI 目标。
流程
运行以下命令,从 live 环境中挂载 iSCSI 目标:
$ iscsiadm \ --mode discovery \ --type sendtargets --portal <IP_address> \ 1 --login
- 1
- 目标门户的 IP 地址。
可选:使用以下命令启用多路径并启动守护进程:
$ mpathconf --enable && systemctl start multipathd.service
运行以下命令并使用必要的内核参数将 RHCOS 安装到 iSCSI 目标上,例如:
$ coreos-installer install \ /dev/mapper/mpatha \ 1 --append-karg rd.iscsi.firmware=1 \ 2 --append-karg rd.multipath=default \ 3 --console ttyS0 \ --ignition-file <path_to_file>
有关
dracut
支持的 iSCSI 选项的更多信息,请参阅dracut.cmdline
手册页。卸载 iSCSI 磁盘:
$ iscsiadm --mode node --logout=all
此过程也可以使用 coreos-installer iso customize
或 coreos-installer pxe customize
子命令来执行。
其他资源
-
如需有关使用特殊
coreos.inst.*
参数指定 live 安装程序的更多信息,请参阅安装 RHCOS 并启动 OpenShift Container Platform bootstrap 过程。