$ oc adm release info -o jsonpath="{ .metadata.metadata}"
要在 LPAR 中创建在 IBM Z® 和 IBM® LinuxONE (s390x
) 上具有多架构计算机的集群,您必须拥有现有的单架构 x86_64
集群。然后,您可以将 s390x
计算机器添加到您的 OpenShift Container Platform 集群。
在您可以将 s390x
节点添加到集群之前,您必须将集群升级到使用多架构有效负载的集群。有关迁移到多架构有效负载的更多信息,请参阅 迁移到具有多架构计算机的集群。
以下过程说明了如何使用 LPAR 实例创建 RHCOS 计算机器。这将允许您将 s390x
节点添加到您的集群并部署具有多架构计算机的集群。
要在 |
在您可以开始将不同架构的计算节点添加到集群之前,您必须验证您的集群是否与多架构兼容。
您已安装 OpenShift CLI (oc
)。
登录到 OpenShift CLI (oc
)。
您可以通过运行以下命令来检查您的集群是否使用架构有效负载
$ oc adm release info -o jsonpath="{ .metadata.metadata}"
如果您看到以下输出,则您的集群正在使用多架构有效负载
{
"release.openshift.io/architecture": "multi",
"url": "https://access.redhat.com/errata/<errata_version>"
}
然后,您可以开始将多架构计算节点添加到您的集群。
如果您看到以下输出,则您的集群未使用多架构有效负载
{
"url": "https://access.redhat.com/errata/<errata_version>"
}
要迁移您的集群以使集群支持多架构计算机器,请按照 迁移到具有多架构计算机的集群 中的过程进行操作。 |
您可以创建更多在 IBM Z® 和 z/VM 上运行的 Red Hat Enterprise Linux CoreOS (RHCOS) 计算机器,并将它们附加到您现有的集群。
您有一个可以为节点执行主机名和反向查找的域名服务器 (DNS)。
您的供应机器上运行着一个 HTTP 或 HTTPS 服务器,该服务器可供您创建的机器访问。
禁用 UDP 聚合。
目前,IBM Z® 不支持 UDP 聚合,并且在具有 x86_64
控制平面和附加 s390x
计算机的多架构计算集群上不会自动停用。为了确保附加的计算节点被正确添加到集群,您必须手动禁用 UDP 聚合。
创建一个包含以下内容的 YAML 文件 udp-aggregation-config.yaml
apiVersion: v1
kind: ConfigMap
data:
disable-udp-aggregation: "true"
metadata:
name: udp-aggregation-config
namespace: openshift-network-operator
通过运行以下命令创建 ConfigMap 资源
$ oc create -f udp-aggregation-config.yaml
通过运行以下命令从集群中提取 Ignition 配置文件
$ oc extract -n openshift-machine-api secret/worker-user-data-managed --keys=userData --to=- > worker.ign
将您从集群导出的 worker.ign
Ignition 配置文件上传到您的 HTTP 服务器。记下此文件的 URL。
您可以验证 Ignition 文件是否在 URL 上可用。以下示例获取计算节点的 Ignition 配置文件
$ curl -k http://<http_server>/worker.ign
通过运行以下命令下载 RHEL 实时 kernel
、initramfs
和 rootfs
文件
$ curl -LO $(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' \
| jq -r '.architectures.s390x.artifacts.metal.formats.pxe.kernel.location')
$ curl -LO $(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' \
| jq -r '.architectures.s390x.artifacts.metal.formats.pxe.initramfs.location')
$ curl -LO $(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' \
| jq -r '.architectures.s390x.artifacts.metal.formats.pxe.rootfs.location')
将下载的 RHEL 实时 kernel
、initramfs
和 rootfs
文件移动到可从您要添加的 z/VM 客户机访问的 HTTP 或 HTTPS 服务器。
为 z/VM 客户机创建一个参数文件。以下参数特定于虚拟机
可选:要指定静态 IP 地址,请添加一个包含以下条目的 ip=
参数,每个条目之间用冒号隔开
机器的 IP 地址。
空字符串。
网关。
子网掩码。
机器主机名和域名,格式为 hostname.domainname
。省略此值以让 RHCOS 决定。
网络接口名称。省略此值以让 RHCOS 决定。
值 none
。
对于 coreos.inst.ignition_url=
,请指定 worker.ign
文件的 URL。仅支持 HTTP 和 HTTPS 协议。
对于 coreos.live.rootfs_url=
,请指定与您正在引导的 kernel
和 initramfs
匹配的 rootfs 工件。仅支持 HTTP 和 HTTPS 协议。
对于 DASD 类型磁盘上的安装,请完成以下任务
对于 coreos.inst.install_dev=
,请指定 /dev/dasda
。
使用 rd.dasd=
指定要安装 RHCOS 的 DASD。
如有需要,您可以调整更多参数。
下面是一个示例参数文件,additional-worker-dasd.parm
cio_ignore=all,!condev rd.neednet=1 \
console=ttysclp0 \
coreos.inst.install_dev=/dev/dasda \
coreos.inst.ignition_url=http://<http_server>/worker.ign \
coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
rd.dasd=0.0.3490 \
zfcp.allow_lun_scan=0
将参数文件中的所有选项写入一行,确保没有换行符。
对于在FCP类型磁盘上的安装,请完成以下任务
使用rd.zfcp=<适配器>,<WWPN>,<LUN>
指定安装RHCOS的FCP磁盘。对于多路径,对每个附加路径重复此步骤。
当您使用多条路径安装时,必须在安装后立即启用多路径,而不是在以后的时间点启用,因为这可能会导致问题。 |
将安装设备设置为:coreos.inst.install_dev=/dev/sda
。
如果使用NPIV配置了其他LUN,FCP需要 |
如有需要,您可以调整更多参数。
需要额外的安装后步骤才能完全启用多路径。有关更多信息,请参阅《RHCOS安装后机器配置任务》中的“在RHCOS上使用内核参数启用多路径”。 |
下面是一个具有多路径功能的工作节点示例参数文件,additional-worker-fcp.parm
cio_ignore=all,!condev rd.neednet=1 \
console=ttysclp0 \
coreos.inst.install_dev=/dev/sda \
coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
coreos.inst.ignition_url=http://<http_server>/worker.ign \
ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
rd.znet=qeth,0.0.bdf0,0.0.bdf1,0.0.bdf2,layer2=1,portno=0 \
zfcp.allow_lun_scan=0 \
rd.zfcp=0.0.1987,0x50050763070bc5e3,0x4008400B00000000 \
rd.zfcp=0.0.19C7,0x50050763070bc5e3,0x4008400B00000000 \
rd.zfcp=0.0.1987,0x50050763071bc5e3,0x4008400B00000000 \
rd.zfcp=0.0.19C7,0x50050763071bc5e3,0x4008400B00000000
将参数文件中的所有选项写入一行,确保没有换行符。
例如,使用FTP将initramfs
、kernel
、参数文件和RHCOS映像传输到z/VM。有关如何使用FTP传输文件并从虚拟阅读器启动的详细信息,请参见在Z/VM下安装。
将文件打孔到z/VM客户机虚拟机的虚拟阅读器。
请参阅IBM®文档中的PUNCH。
您可以使用CP PUNCH命令,或者如果您使用Linux,则可以使用vmur命令在两个z/VM客户机虚拟机之间传输文件。 |
登录到引导机器上的CMS。
通过运行以下命令从阅读器IPL引导机器
$ ipl c
请参阅IBM®文档中的IPL。
将机器添加到集群时,会为添加的每台机器生成两个待处理的证书签名请求 (CSR)。您必须确认这些CSR已获批准,或者必要时自行批准它们。必须先批准客户端请求,然后再批准服务器请求。
您已将机器添加到集群。
确认集群识别这些机器
$ oc get nodes
NAME STATUS ROLES AGE VERSION
master-0 Ready master 63m v1.30.3
master-1 Ready master 63m v1.30.3
master-2 Ready master 64m v1.30.3
输出列出了您创建的所有机器。
在批准一些CSR之前,上述输出可能不包含计算节点(也称为工作节点)。 |
查看待处理的CSR,并确保您看到为添加到集群的每台机器的客户端请求显示“待处理”或“已批准”状态。
$ oc get csr
NAME AGE REQUESTOR CONDITION
csr-8b2br 15m system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending
csr-8vnps 15m system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending
...
在此示例中,两台机器正在加入集群。您可能会在列表中看到更多已批准的CSR。
如果CSR未获批准,在您添加的所有机器的待处理CSR都处于“待处理”状态后,请批准集群机器的CSR。
由于CSR会自动轮换,因此在将机器添加到集群后一小时内批准您的CSR。如果您在一小时内未批准它们,证书将轮换,并且每个节点将存在两个以上的证书。您必须批准所有这些证书。批准客户端CSR后,Kubelet将为服务证书创建一个辅助CSR,这需要手动批准。然后,如果Kubelet请求具有相同参数的新证书,则 |
对于在未启用机器API的平台(例如裸机和其他用户预配的基础设施)上运行的集群,您必须实现一种自动批准kubelet服务证书请求 (CSR) 的方法。如果未批准请求,则 |
要单独批准它们,请对每个有效的CSR运行以下命令
$ oc adm certificate approve <csr_name> (1)
1 | <csr_name> 是当前CSR列表中CSR的名称。 |
要批准所有待处理的CSR,请运行以下命令
$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve
在批准一些CSR之前,某些运算符可能无法使用。 |
现在您的客户端请求已获批准,您必须查看添加到集群的每台机器的服务器请求。
$ oc get csr
NAME AGE REQUESTOR CONDITION
csr-bfd72 5m26s system:node:ip-10-0-50-126.us-east-2.compute.internal Pending
csr-c57lv 5m26s system:node:ip-10-0-95-157.us-east-2.compute.internal Pending
...
如果其余CSR未获批准且处于“待处理”状态,请批准集群机器的CSR。
要单独批准它们,请对每个有效的CSR运行以下命令
$ oc adm certificate approve <csr_name> (1)
1 | <csr_name> 是当前CSR列表中CSR的名称。 |
要批准所有待处理的CSR,请运行以下命令
$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
批准所有客户端和服务器CSR后,机器将具有“就绪”状态。通过运行以下命令验证此状态
$ oc get nodes
NAME STATUS ROLES AGE VERSION
master-0 Ready master 73m v1.30.3
master-1 Ready master 73m v1.30.3
master-2 Ready master 74m v1.30.3
worker-0 Ready worker 11m v1.30.3
worker-1 Ready worker 11m v1.30.3
批准服务器CSR后,机器可能需要几分钟才能过渡到“就绪”状态。 |