4.12. 安装 RHCOS 并启动 OpenShift Container Platform bootstrap 过程


要在您置备的 IBM Z 基础架构上安装 OpenShift Container Platform,您必须将 Red Hat Enterprise Linux CoreOS(RHCOS)安装为 Red Hat Enterprise Linux(RHEL)客户机虚拟机。安装 RHCOS 时,您必须为您要安装的机器类型提供 OpenShift Container Platform 安装程序生成的 Ignition 配置文件。如果您配置了适当的网络、DNS 和负载均衡基础架构,OpenShift Container Platform bootstrap 过程会在 RHCOS 机器重启后自动启动。

您可以使用预打包的 QEMU 写时复制(QCOW2)磁盘镜像对 RHCOS 执行快速跟踪安装。或者,您可以在新 QCOW2 磁盘镜像上执行完整安装。

要在系统中添加更多安全性,您可以选择使用 IBM Secure Execution 安装 RHCOS,然后才能继续快速跟踪安装。

4.12.1. 使用 IBM 安全执行安装 RHCOS

在使用 IBM Secure Execution 安装 RHCOS 前,您必须准备底层基础架构。

重要

使用 IBM Secure Execution 安装 RHCOS 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

先决条件

  • IBM z15 或更高版本,或 IBM® LinuxONE114 或更高版本。
  • Red Hat Enterprise Linux (RHEL) 8 或更高版本。
  • 您有一个 bootstrap Ignition 文件。该文件不受保护,其他人能够查看和编辑它。
  • 您已确认引导镜像在安装后没有更改。
  • 您必须以 IBM Secure Execution 客户机身份运行所有节点。

流程

  1. 准备 RHEL KVM 主机来支持 IBM 安全执行。

    • 默认情况下,KVM 主机不支持 IBM 安全执行模式中的客户机。要在 IBM Secure Execution 模式中支持客户机,KVM 主机必须使用内核参数规格 prot_virt=1 在 LPAR 模式中引导。要在 RHEL 8 上启用 prot_virt=1,请按照以下步骤执行:

      1. 进入到 /boot/loader/entries/,以修改您的引导装载程序配置文件 slirpconf
      2. 添加内核命令行参数 prot_virt=1
      3. 运行 zipl 命令并重启系统。

        从支持 IBM Secure Execution 开始的 KVM 主机发出以下内核信息:

        prot_virt: Reserving <amount>MB as ultravisor base storage.
      4. 要验证 KVM 主机现在支持 IBM Secure Execution,请运行以下命令:

        # cat /sys/firmware/uv/prot_virt_host

        输出示例

        1

        对于 Linux 实例,此属性的值是 1,它检测其环境与安全主机的一致性。对于其他实例,值为 0。

  2. 通过 Ignition 将您的主机密钥添加到 KVM 客户机。

    第一次引导过程中,RHCOS 会查找主机密钥以使用它们重新加密自身。RHCOS 在 /etc/se-hostkeys 目录中搜索以 ibm-z-hostkey- 开头的文件。集群运行的每台机器的所有主机密钥都必须由管理员加载到目录中。首次启动后,您无法在任何其他机器上运行虚拟机。

    注意

    您需要在安全系统上准备 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
          }
        ]
      }
    }
    ```
    注意

    如果您希望节点能够在多个 IBM Z 机器上运行,您可以根据需要添加任意数量的主机密钥。

  3. 要生成 Base64 编码字符串,请运行以下命令:

    base64 <your-hostkey>.crt

    与不运行 IBM Secure Execution 的客户机相比,机器的第一次引导将较长,因为整个镜像都会在 Ignition 阶段之前使用随机生成的 LUKS 密码短语进行加密。

  4. 按照 fast-track 安装过程,使用 IBM Secure Exection QCOW 镜像安装节点。

4.12.2. 使用预打包的 QCOW2 磁盘镜像快速跟踪安装

完成以下步骤,在 Red Hat Enterprise Linux CoreOS(RHCOS)快速跟踪安装中创建机器,导入预打包的 Red Hat Enterprise Linux CoreOS(RHCOS)QEMU 写时复制(QCOW2)磁盘镜像。

先决条件

  • 至少有一个 LPAR 在 KVM 的 RHEL 8.4 或更高版本中运行,在此过程中称为 RHEL KVM 主机。
  • KVM/QEMU 管理程序安装在 RHEL KVM 主机上。
  • 一个域名服务器(DNS),它可以对节点执行主机名和反向查找。
  • 提供 IP 地址的 DHCP 服务器。

流程

  1. 从红帽客户门户网站的产品下载页或 RHCOS image mirror 页获得 RHEL QEMU copy-on-write (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}
  4. 使用 Ignition 文件和新磁盘镜像创建新的 KVM 客户机节点。

    $ virt-install --noautoconsole \
       --connect qemu:///system \
       --name {vn_name} \
       --memory {memory} \
       --vcpus {vcpus} \
       --disk {disk} \
       --import \
       --network network={network},mac={mac} \
       --disk path={ign_file},format=raw,readonly=on,serial=ignition,startup_policy=optional

4.12.3. 在新 QCOW2 磁盘镜像上完全安装

完成以下步骤,在新的 QEMU 写时复制(QCOW2)磁盘镜像上在完整安装中创建机器。

先决条件

  • 至少有一个 LPAR 在 KVM 的 RHEL 8.4 或更高版本中运行,在此过程中称为 RHEL KVM 主机。
  • KVM/QEMU 管理程序安装在 RHEL KVM 主机上。
  • 一个域名服务器(DNS),它可以对节点执行主机名和反向查找。
  • 设置了 HTTP 或 HTTPS 服务器。

流程

  1. 从红帽客户门户网站的产品下载页或 RHCOS image mirror 页获取 RHEL kernel, 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 live kernel、initramfs 和 rootfs 以及 Ignition 文件移到 HTTP 或 HTTPS 服务器中。

    注意

    Ignition 文件由 OpenShift Container Platform 安装程序生成。

  3. 使用 RHEL 内核、initramfs 和 Ignition 文件、新磁盘镜像并调整 parm 行参数,创建新的 KVM 客户机节点。

    • 对于 --location,指定 kernel/initrd 在 HTTP 或 HTTPS 服务器上的位置。
    • 对于 coreos.inst.ignition_url=,请为机器角色指定 Ignition 文件。使用 bootstrap.ignmaster.ignworker.ign。仅支持 HTTP 和 HTTPS 协议。
    • 对于 coreos.live.rootfs_url=,请为您引导的内核和 initramfs 指定匹配的 rootfs 构件。仅支持 HTTP 和 HTTPS 协议。

      $ virt-install \
         --connect qemu:///system \
         --name {vn_name} \
         --vcpus {vcpus} \
         --memory {memory_mb} \
         --disk {vn_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=yes coreos.inst.install_dev=vda coreos.live.rootfs_url={rhcos_liveos} ip={ip}::{default_gateway}:{subnet_mask_length}:{vn_name}:enc1:none:{MTU} nameserver={dns} coreos.inst.ignition_url={rhcos_ign}" \
         --noautoconsole \
         --wait

4.12.4. 高级 RHCOS 安装参考

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

4.12.4.1. ISO 安装的网络选项

如果从 ISO 镜像安装 RHCOS,您可以在引导镜像时手动添加内核参数,以便为节点配置网络。如果没有指定网络参数,当 RHCOS 检测到需要网络来获取 Ignition 配置文件时,在 initramfs 中激活 DHCP。

重要

在手动添加网络参数时,还必须添加 rd.neednet=1 内核参数,以便在 initramfs 中启动网络。

以下信息提供了在 RHCOS 节点上为 ISO 安装配置网络的示例。示例描述了如何使用 ip=nameserver= 内核参数。

注意

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

网络选项在系统引导过程中传递给 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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.