12.4. 为 OpenShift Container Platform 准备 PXE 资产


使用以下步骤创建基于代理的安装程序,创建 PXE 引导 OpenShift Container Platform 集群所需的资产。

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

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

12.4.1. 先决条件

12.4.2. 下载基于代理的安装程序

使用这个流程下载安装所需的基于代理的安装程序和 CLI。

注意

目前,IBM Z® (s390x) 架构不支持下载基于代理的安装程序。推荐的方法是创建 PXE 资产。

流程

  1. 使用您的登录凭证登录到 OpenShift Container Platform web 控制台。
  2. 进入到 Datacenter
  3. 在本地点 Run Agent-based Installer
  4. OpenShift Installer命令行界面选择操作系统和架构。
  5. Download Installer 下载并提取安装程序。
  6. 通过点 Download pull secretCopy pull secret 下载或复制 pull secret。
  7. Download command-line tools,将 openshift-install 二进制文件放在 PATH 中的目录中。

12.4.3. 创建首选配置输入

使用这个流程创建用于创建 PXE 文件的首选配置输入。

流程

  1. 运行以下命令来安装 nmstate 依赖项:

    $ sudo dnf install /usr/bin/nmstatectl -y
    Copy to Clipboard Toggle word wrap
  2. openshift-install 二进制文件放到 PATH 中的目录中。
  3. 运行以下命令,创建一个目录来存储安装配置:

    $ mkdir ~/<directory_name>
    Copy to Clipboard Toggle word wrap
    注意

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

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

    $ cat << EOF > ./my-cluster/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
    Copy to Clipboard Toggle word wrap
    1
    指定系统架构,有效值为 amd64,arm64,ppc64le, 和 s390x
    2
    必需。指定集群名称。
    3
    要安装的集群网络插件。默认值 OVNKubernetes 是唯一支持的值。
    4
    指定您的平台。
    注意

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

    5
    指定 pull secret。
    6
    指定 SSH 公钥。
    注意

    如果将平台设置为 vSpherebaremetal,您可以使用三种方式为集群节点配置 IP 地址端点:

    • IPv4
    • IPv6
    • IPv4 和 IPv6 并行 (dual-stack)

    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
    Copy to Clipboard Toggle word wrap

    注意

    使用断开连接的镜像 registry 时,您必须将之前为镜像 registry 创建的证书文件添加到 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
    Copy to Clipboard Toggle word wrap
    1
    此 IP 地址用于确定哪些节点执行 bootstrap 过程,以及运行 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)镜像置备到特定设备。安装程序会按照发现设备的顺序检查设备,并将发现的值与 hint 值进行比较。它使用第一个与 hint 值匹配的发现设备。
    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>
    Copy to Clipboard Toggle word wrap

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

12.4.4. 创建 PXE 资产

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

流程

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

    $ openshift-install agent create pxe-files
    Copy to Clipboard Toggle word wrap

    生成的 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
    Copy to Clipboard Toggle word wrap

    重要

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

    注意

    Red Hat Enterprise Linux CoreOS (RHCOS) 支持主磁盘上的多路径,允许对硬件故障进行更强大的弹性,以实现更高的主机可用性。在代理 ISO 镜像中默认启用多路径,默认 /etc/multipath.conf 配置。

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

    注意

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

12.4.5. 手动添加 IBM Z 代理

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

注意

目前 IBM Z® (s390x) 架构不支持 ISO 引导。因此,IBM Z® 上的基于代理的安装需要手动添加 IBM Z® 代理。

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

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

12.4.5.1. 使用 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
    
    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"
    Copy to Clipboard Toggle word wrap

    1
    对于 coreos.live.rootfs_url 工件,请为您要引导的内核initramfs 指定匹配的 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.imgcommon.parminitrd.img 文件与 z/VM 客户机虚拟机的虚拟读取器中解放。

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

    提示

    您可以使用 CP PUNCH 命令,或者使用 Linux ( vmur 命令) 在两个 z/VM 虚拟机之间传输文件。

  3. 登录到 bootstrap 机器上的对话监控系统 (CMS)。
  4. 运行以下命令,从 reader IPL bootstrap 机器:

    $ ipl c
    Copy to Clipboard Toggle word wrap

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

12.4.5.2. 使用 RHEL KVM 添加 IBM Z (R)代理

使用以下步骤使用 RHEL KVM 手动添加 IBM Z® 代理。仅将此流程用于带有 RHEL KVM 的 IBM Z® 集群。

流程

  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
    Copy to Clipboard Toggle word wrap
    1
    对于 --location 参数,指定 HTTP 或 HTTPS 服务器中的 kernel/initrd 的位置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat