×

使用以下步骤创建使用基于代理的安装程序 PXE 启动 OpenShift Container Platform 集群所需的资源。

在这些步骤中创建的资源将部署单节点 OpenShift Container Platform 安装。您可以将这些步骤作为基础,并根据您的需求修改配置。

请参阅 使用基于代理的安装程序安装 OpenShift Container Platform 集群,了解基于代理的安装程序提供的更多配置。

先决条件

下载基于代理的安装程序

使用此步骤下载安装所需基于代理的安装程序和 CLI。

步骤
  1. 使用您的登录凭据登录到 OpenShift Container Platform Web 控制台。

  2. 导航到 数据中心

  3. 单击在本地运行基于代理的安装程序

  4. OpenShift 安装程序命令行界面选择操作系统和架构。

  5. 单击下载安装程序以下载并解压缩安装程序。

  6. 通过单击下载拉取密钥复制拉取密钥下载或复制拉取密钥。

  7. 单击下载命令行工具并将openshift-install二进制文件放在PATH上的目录中。

创建首选配置输入

使用此步骤创建用于创建 PXE 文件的首选配置输入。

步骤
  1. 通过运行以下命令安装nmstate依赖项

    $ sudo dnf install /usr/bin/nmstatectl -y
  2. openshift-install二进制文件放在您的 PATH 上的目录中。

  3. 创建一个目录来存储安装配置,运行以下命令

    $ mkdir ~/<directory_name>

    这是基于代理安装的首选方法。使用 GitOps ZTP 清单是可选的。

  4. 通过运行以下命令创建install-config.yaml文件

    $ cat << EOF > ./<directory_name>/install-config.yaml
    apiVersion: v1
    baseDomain: test.example.com
    compute:
    - architecture: amd64 (1)
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      replicas: 1
    metadata:
      name: sno-cluster (2)
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      machineNetwork:
      - cidr: 192.168.0.0/16
      networkType: OVNKubernetes (3)
      serviceNetwork:
      - 172.30.0.0/16
    platform: (4)
      none: {}
    pullSecret: '<pull_secret>' (5)
    sshKey: '<ssh_pub_key>' (6)
    EOF
    1 指定系统架构。有效值为amd64arm64ppc64les390x

    如果您使用带有multi有效负载的发布映像,则可以在不同的架构(例如arm64amd64s390xppc64le)上安装集群。否则,您只能在openshift-install version命令输出中显示的发布架构上安装集群。有关更多信息,请参阅“验证基于代理的安装程序集群安装的支持架构”。

    2 必需。指定您的集群名称。
    3 要安装的集群网络插件。默认值OVNKubernetes是唯一受支持的值。
    4 指定您的平台。

    对于裸机平台,除非被agent-config.yaml文件中进行的配置覆盖,否则默认情况下使用install-config.yaml文件平台部分中进行的主机设置。

    5 指定您的拉取密钥。
    6 指定您的 SSH 公钥。

    如果将平台设置为vSpherebaremetal,则可以通过三种方式配置集群节点的 IP 地址端点

    • IPv4

    • IPv6

    • 并行使用 IPv4 和 IPv6(双栈)

    IPv6 仅在裸机平台上受支持。

    双栈网络示例
    networking:
      clusterNetwork:
        - cidr: 172.21.0.0/16
          hostPrefix: 23
        - cidr: fd02::/48
          hostPrefix: 64
      machineNetwork:
        - cidr: 192.168.11.0/16
        - cidr: 2001:DB8::/32
      serviceNetwork:
        - 172.22.0.0/16
        - fd03::/112
      networkType: OVNKubernetes
    platform:
      baremetal:
        apiVIPs:
        - 192.168.11.3
        - 2001:DB8::4
        ingressVIPs:
        - 192.168.11.4
        - 2001:DB8::5

    使用断开的镜像注册表时,必须将之前为镜像注册表创建的证书文件添加到install-config.yaml文件的additionalTrustBundle字段。

  5. 运行以下命令创建agent-config.yaml文件:

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 (1)
    hosts: (2)
      - hostname: master-0 (3)
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5
        rootDeviceHints: (4)
          deviceName: /dev/sdb
        networkConfig: (5)
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80
                    prefix-length: 23
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.2
                next-hop-interface: eno1
                table-id: 254
    EOF
    1 此IP地址用于确定哪个节点执行引导过程以及运行assisted-service组件。在networkConfig参数中未指定至少一个主机的IP地址时,必须提供此Rendezvous IP地址。如果未提供此地址,则从提供的宿主机networkConfig中选择一个IP地址。
    2 可选:主机配置。定义的主机数量不得超过install-config.yaml文件中定义的主机总数,该总数是compute.replicascontrolPlane.replicas参数值的总和。
    3 可选:覆盖从动态主机配置协议 (DHCP) 或反向DNS查找获得的主机名。每个主机都必须通过这些方法之一提供唯一的主机名。
    4 启用将Red Hat Enterprise Linux CoreOS (RHCOS)镜像预配到特定设备。安装程序按发现设备的顺序检查这些设备,并将发现的值与提示值进行比较。它使用第一个与提示值匹配的已发现设备。
    5 可选:以NMState格式配置主机的网络接口。
  6. 可选:要创建iPXE脚本,请将bootArtifactsBaseURL添加到agent-config.yaml文件。

    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80
    bootArtifactsBaseURL: <asset_server_URL>

    其中<asset_server_URL>是要将PXE资产上传到的服务器的URL。

创建PXE资产

使用以下步骤创建资产和可选脚本以在您的PXE基础架构中实现。

步骤
  1. 运行以下命令创建PXE资产:

    $ openshift-install agent create pxe-files

    生成的PXE资产和可选iPXE脚本位于boot-artifacts目录中。

    带有PXE资产和可选iPXE脚本的示例文件系统
    boot-artifacts
        ├─ agent.x86_64-initrd.img
        ├─ agent.x86_64.ipxe
        ├─ agent.x86_64-rootfs.img
        └─ agent.x86_64-vmlinuz

    boot-artifacts目录的内容因指定的架构而异。

    Red Hat Enterprise Linux CoreOS (RHCOS)支持在主磁盘上进行多路径配置,从而增强对硬件故障的恢复能力,以实现更高的主机可用性。多路径配置在agent ISO镜像中默认启用,并具有默认的/etc/multipath.conf配置。

  2. 将PXE资产和可选脚本上传到您的基础架构,以便在引导过程中可以访问它们。

    如果生成了iPXE脚本,则资产的位置必须与添加到agent-config.yaml文件的bootArtifactsBaseURL匹配。

手动添加IBM Z代理

创建PXE资产后,您可以添加IBM Z®代理。仅对IBM Z®集群使用此过程。

根据您的IBM Z®环境,您可以选择以下选项:

  • 使用z/VM添加IBM Z®代理

  • 使用RHEL KVM添加IBM Z®代理

  • 使用逻辑分区 (LPAR) 添加IBM Z®代理

目前,IBM Z® (s390x)上的ISO引导支持仅适用于Red Hat Enterprise Linux (RHEL) KVM,它提供了选择基于PXE或ISO的安装的灵活性。对于使用z/VM和逻辑分区 (LPAR) 的安装,仅支持PXE引导。

IBM Z的网络要求

在IBM Z环境中,高级网络技术(如开放系统适配器 (OSA)、HiperSockets和融合以太网上的远程直接内存访问 (RDMA over RoCE))需要与标准网络设置不同的特定配置,并且需要在基于代理的安装中发生的多个引导场景中保持这些配置。

要在引导过程中保留这些参数,需要在paramline中使用ai.ip_cfg_override=1参数。此参数与已配置的网卡一起使用,以确保在IBM Z上成功且高效地部署。

下表列出了每个虚拟机管理程序上支持用于网络配置覆盖功能的网络设备:

网络设备 z/VM KVM LPAR Classic LPAR动态分区管理器 (DPM)

虚拟交换机

支持[1]

不适用[2]

不适用

不适用

直接连接的开放系统适配器 (OSA)

支持

不需要[3]

支持

不需要

融合以太网上的远程直接内存访问 (RDMA over RoCE)

不需要

不需要

不需要

不需要

HiperSockets

支持

不需要

支持

不需要

  1. 支持:当安装过程中需要ai.ip_cfg_override参数时。

  2. 不适用:当网卡不适用于在虚拟机管理程序上使用时。

  3. 不需要:当安装过程中不需要ai.ip_cfg_override参数时。

在IBM Z中配置网络覆盖

您可以在使用逻辑分区 (LPAR) 和z/VM的IBM Z机器上指定静态IP地址。当网络设备没有分配静态MAC地址时,这非常有用。

步骤
  • 如果您有现有的.parm文件,请编辑它以包含以下条目:

    ai.ip_cfg_override=1

    此参数允许文件将网络设置添加到CoreOS安装程序。

    .parm文件示例
    rd.neednet=1 cio_ignore=all,!condev
    console=ttysclp0
    coreos.live.rootfs_url=<coreos_url> (1)
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns>
    rd.znet=qeth,<network_adaptor_range>,layer2=1
    rd.<disk_type>=<adapter> (2)
    rd.zfcp=<adapter>,<wwpn>,<lun> random.trust_cpu=on (3)
    zfcp.allow_lun_scan=0
    ai.ip_cfg_override=1
    ignition.firstboot ignition.platform.id=metal
    random.trust_cpu=on
    1 对于coreos.live.rootfs_url工件,请指定与您正在引导的kernelinitramfs匹配的rootfs工件。仅支持HTTP和HTTPS协议。
    2 对于直接访问存储设备 (DASD) 类型磁盘上的安装,请使用rd.指定安装Red Hat Enterprise Linux CoreOS (RHCOS)的DASD。对于光纤通道协议 (FCP) 磁盘上的安装,请使用rd.zfcp=<adapter>,<wwpn>,<lun>指定安装{rhel}的FCP磁盘。
    3 指定adapterwwpnlun的值,如下例所示:rd.zfcp=0.0.8002,0x500507630400d1e3,0x4000404600000000

override参数覆盖主机的网络配置设置。

使用z/VM添加IBM Z代理

使用以下步骤手动添加带有z/VM的IBM Z®代理。仅对带有z/VM的IBM Z®集群使用此过程。

先决条件
  • 一个可以访问访客虚拟机的正在运行的文件服务器。

步骤
  1. 为z/VM访客创建一个参数文件

    参数文件示例
    rd.neednet=1 \
    console=ttysclp0 \
    coreos.live.rootfs_url=<rootfs_url> \ (1)
    ip=172.18.78.2::172.18.78.1:255.255.255.0:::none nameserver=172.18.78.1 \ (2)
    zfcp.allow_lun_scan=0 \ (3)
    ai.ip_cfg_override=1 \
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.dasd=0.0.4411 \ (4)
    rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \ (5)
    random.trust_cpu=on rd.luks.options=discard \
    ignition.firstboot ignition.platform.id=metal \
    console=tty1 console=ttyS1,115200n8 \
    coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8"
    1 对于coreos.live.rootfs_url工件,请指定与您正在引导的kernelinitramfs匹配的rootfs工件。仅支持HTTP和HTTPS协议。
    2 对于ip参数,使用DHCP自动分配IP地址,或者手动分配IP地址,如“在IBM Z®和IBM® LinuxONE上使用z/VM安装集群”中所述。
    3 默认为1。使用OSA网络适配器时,省略此条目。
    4 对于DASD类型磁盘上的安装,请使用rd.dasd指定安装Red Hat Enterprise Linux CoreOS (RHCOS)的DASD。对于FCP类型磁盘,省略此条目。
    5 对于在 FCP 类型磁盘上的安装,使用 `rd.zfcp=<adapter>,<wwpn>,<lun>` 指定安装 RHCOS 的 FCP 磁盘。对于 DASD 类型磁盘,省略此项。

    保持所有其他参数不变。

  2. 将 `kernel.img`、`generic.parm` 和 `initrd.img` 文件打孔到 z/VM 客户机虚拟机的虚拟读卡器。

    更多信息,请参阅 PUNCH(IBM 文档)。

    您可以使用 `CP PUNCH` 命令,或者如果您使用 Linux,则可以使用 `vmur` 命令在两个 z/VM 客户机虚拟机之间传输文件。

  3. 登录到引导机器上的会话监视器系统 (CMS)。

  4. 通过运行以下命令从读卡器 IPL 引导机器

    $ ipl c

    更多信息,请参阅 IPL(IBM 文档)。

使用 RHEL KVM 添加 IBM Z 代理

使用以下步骤手动添加使用 RHEL KVM 的 IBM Z® 代理。仅对使用 RHEL KVM 的 IBM Z® 集群使用此步骤。

必须为 KVM 启动配置 `nmstateconfig` 参数。

步骤
  1. 启动您的 RHEL KVM 机器。

  2. 要部署虚拟服务器,请使用以下参数运行 `virt-install` 命令

    $ virt-install \
       --name <vm_name> \
       --autostart \
       --ram=16384 \
       --cpu host \
       --vcpus=8 \
       --location <path_to_kernel_initrd_image>,kernel=kernel.img,initrd=initrd.img \(1)
       --disk <qcow_image_path> \
       --network network:macvtap ,mac=<mac_address> \
       --graphics none \
       --noautoconsole \
       --wait=-1 \
       --extra-args "rd.neednet=1 nameserver=<nameserver>" \
       --extra-args "ip=<IP>::<nameserver>::<hostname>:enc1:none" \
       --extra-args "coreos.live.rootfs_url=http://<http_server>:8080/agent.s390x-rootfs.img" \
       --extra-args "random.trust_cpu=on rd.luks.options=discard" \
       --extra-args "ignition.firstboot ignition.platform.id=metal" \
       --extra-args "console=tty1 console=ttyS1,115200n8" \
       --extra-args "coreos.inst.persistent-kargs=console=tty1 console=ttyS1,115200n8" \
       --osinfo detect=on,require=off
    1 对于 `--location` 参数,请指定 HTTP 或 HTTPS 服务器上内核/initrd 的位置。

在逻辑分区 (LPAR) 中添加 IBM Z 代理

使用以下步骤手动将 IBM Z® 代理添加到在 LPAR 环境中运行的集群中。仅对在 LPAR 中运行的 IBM Z® 集群使用此步骤。

先决条件
  • 您已安装 Python 3。

  • 一个可以访问逻辑分区 (LPAR) 的正在运行的文件服务器。

步骤
  1. 为代理创建引导参数文件。

    参数文件示例
    rd.neednet=1 cio_ignore=all,!condev \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \(1)
    coreos.inst.persistent-kargs=console=ttysclp0
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \(2)
    rd.znet=qeth,<network_adaptor_range>,layer2=1
    rd.<disk_type>=<adapter> \(3)
    zfcp.allow_lun_scan=0
    ai.ip_cfg_override=1 \//
    random.trust_cpu=on rd.luks.options=discard
    1 对于 `coreos.live.rootfs_url` 工件,请指定与您正在启动的 `kernel` 和 `initramfs` 匹配的 `rootfs` 工件。仅支持 HTTP 和 HTTPS 协议。
    2 对于 `ip` 参数,请手动分配 IP 地址,如《在 IBM Z 和 IBM LinuxONE 上使用 z/VM 安装集群》中所述。
    3 对于 DASD 类型磁盘上的安装,使用 `rd.dasd` 指定安装 Red Hat Enterprise Linux CoreOS (RHCOS) 的 DASD。对于 FCP 类型磁盘上的安装,使用 `rd.zfcp=<adapter>,<wwpn>,<lun>` 指定安装 RHCOS 的 FCP 磁盘。

    `.ins` 和 `initrd.img.addrsize` 文件是为 `s390x` 架构自动生成的,作为安装程序的启动工件的一部分,仅在 LPAR 环境中启动时使用。

    带有 LPAR 引导的示例文件系统
    boot-artifacts
        ├─ agent.s390x-generic.ins
        ├─ agent.s390x-initrd.addrsize
        ├─ agent.s390x-rootfs.img
        └─ agent.s390x-kernel.img
        └─ agent.s390x-rootfs.img
  2. 将 `initrd`、`kernel`、`generic.ins` 和 `initrd.img.addrsize` 参数文件传输到文件服务器。更多信息,请参阅 在 LPAR 模式下引导 Linux(IBM 文档)。

  3. 启动机器。

  4. 对集群中的所有其他机器重复此过程。