$ sudo dnf install /usr/bin/nmstatectl -y
使用以下步骤创建使用基于代理的安装程序 PXE 启动 OpenShift Container Platform 集群所需的资源。
在这些步骤中创建的资源将部署单节点 OpenShift Container Platform 安装。您可以将这些步骤作为基础,并根据您的需求修改配置。
请参阅 使用基于代理的安装程序安装 OpenShift Container Platform 集群,了解基于代理的安装程序提供的更多配置。
您已查看有关 OpenShift Container Platform 安装和更新 流程的详细信息。
使用此步骤下载安装所需基于代理的安装程序和 CLI。
使用您的登录凭据登录到 OpenShift Container Platform Web 控制台。
导航到 数据中心。
单击在本地运行基于代理的安装程序。
为OpenShift 安装程序和命令行界面选择操作系统和架构。
单击下载安装程序以下载并解压缩安装程序。
通过单击下载拉取密钥或复制拉取密钥下载或复制拉取密钥。
单击下载命令行工具并将openshift-install
二进制文件放在PATH
上的目录中。
使用此步骤创建用于创建 PXE 文件的首选配置输入。
通过运行以下命令安装nmstate
依赖项
$ sudo dnf install /usr/bin/nmstatectl -y
将openshift-install
二进制文件放在您的 PATH 上的目录中。
创建一个目录来存储安装配置,运行以下命令
$ mkdir ~/<directory_name>
这是基于代理安装的首选方法。使用 GitOps ZTP 清单是可选的。 |
通过运行以下命令创建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 | 指定系统架构。有效值为amd64 、arm64 、ppc64le 和s390x 。如果您使用带有 |
||
2 | 必需。指定您的集群名称。 | ||
3 | 要安装的集群网络插件。默认值OVNKubernetes 是唯一受支持的值。 |
||
4 | 指定您的平台。
|
||
5 | 指定您的拉取密钥。 | ||
6 | 指定您的 SSH 公钥。 |
如果将平台设置为
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
使用断开的镜像注册表时,必须将之前为镜像注册表创建的证书文件添加到 |
运行以下命令创建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.replicas 和controlPlane.replicas 参数值的总和。 |
3 | 可选:覆盖从动态主机配置协议 (DHCP) 或反向DNS查找获得的主机名。每个主机都必须通过这些方法之一提供唯一的主机名。 |
4 | 启用将Red Hat Enterprise Linux CoreOS (RHCOS)镜像预配到特定设备。安装程序按发现设备的顺序检查这些设备,并将发现的值与提示值进行比较。它使用第一个与提示值匹配的已发现设备。 |
5 | 可选:以NMState格式配置主机的网络接口。 |
可选:要创建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资产:
$ openshift-install agent create pxe-files
生成的PXE资产和可选iPXE脚本位于boot-artifacts
目录中。
boot-artifacts
├─ agent.x86_64-initrd.img
├─ agent.x86_64.ipxe
├─ agent.x86_64-rootfs.img
└─ agent.x86_64-vmlinuz
|
Red Hat Enterprise Linux CoreOS (RHCOS)支持在主磁盘上进行多路径配置,从而增强对硬件故障的恢复能力,以实现更高的主机可用性。多路径配置在agent ISO镜像中默认启用,并具有默认的 |
将PXE资产和可选脚本上传到您的基础架构,以便在引导过程中可以访问它们。
如果生成了iPXE脚本,则资产的位置必须与添加到 |
创建PXE资产后,您可以添加IBM Z®代理。仅对IBM Z®集群使用此过程。
根据您的IBM Z®环境,您可以选择以下选项:
使用z/VM添加IBM Z®代理
使用RHEL KVM添加IBM Z®代理
使用逻辑分区 (LPAR) 添加IBM Z®代理
目前,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 |
支持 |
不需要 |
支持 |
不需要 |
支持:当安装过程中需要ai.ip_cfg_override
参数时。
不适用:当网卡不适用于在虚拟机管理程序上使用时。
不需要:当安装过程中不需要ai.ip_cfg_override
参数时。
您可以在使用逻辑分区 (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 工件,请指定与您正在引导的kernel 和initramfs 匹配的rootfs 工件。仅支持HTTP和HTTPS协议。 |
2 | 对于直接访问存储设备 (DASD) 类型磁盘上的安装,请使用rd. 指定安装Red Hat Enterprise Linux CoreOS (RHCOS)的DASD。对于光纤通道协议 (FCP) 磁盘上的安装,请使用rd.zfcp=<adapter>,<wwpn>,<lun> 指定安装{rhel}的FCP磁盘。 |
3 | 指定adapter 、wwpn 和lun 的值,如下例所示:rd.zfcp=0.0.8002,0x500507630400d1e3,0x4000404600000000 。 |
|
使用以下步骤手动添加带有z/VM的IBM Z®代理。仅对带有z/VM的IBM Z®集群使用此过程。
一个可以访问访客虚拟机的正在运行的文件服务器。
为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 工件,请指定与您正在引导的kernel 和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 类型磁盘,省略此项。 |
保持所有其他参数不变。
将 `kernel.img`、`generic.parm` 和 `initrd.img` 文件打孔到 z/VM 客户机虚拟机的虚拟读卡器。
更多信息,请参阅 PUNCH(IBM 文档)。
您可以使用 `CP PUNCH` 命令,或者如果您使用 Linux,则可以使用 `vmur` 命令在两个 z/VM 客户机虚拟机之间传输文件。 |
登录到引导机器上的会话监视器系统 (CMS)。
通过运行以下命令从读卡器 IPL 引导机器
$ ipl c
更多信息,请参阅 IPL(IBM 文档)。
使用以下步骤手动添加使用 RHEL KVM 的 IBM Z® 代理。仅对使用 RHEL KVM 的 IBM Z® 集群使用此步骤。
必须为 KVM 启动配置 `nmstateconfig` 参数。 |
启动您的 RHEL KVM 机器。
要部署虚拟服务器,请使用以下参数运行 `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 的位置。 |
使用以下步骤手动将 IBM Z® 代理添加到在 LPAR 环境中运行的集群中。仅对在 LPAR 中运行的 IBM Z® 集群使用此步骤。
您已安装 Python 3。
一个可以访问逻辑分区 (LPAR) 的正在运行的文件服务器。
为代理创建引导参数文件。
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 环境中启动时使用。 |
boot-artifacts
├─ agent.s390x-generic.ins
├─ agent.s390x-initrd.addrsize
├─ agent.s390x-rootfs.img
└─ agent.s390x-kernel.img
└─ agent.s390x-rootfs.img
将 `initrd`、`kernel`、`generic.ins` 和 `initrd.img.addrsize` 参数文件传输到文件服务器。更多信息,请参阅 在 LPAR 模式下引导 Linux(IBM 文档)。
启动机器。
对集群中的所有其他机器重复此过程。