4.9. 在 IBM Power 上使用多架构计算机器创建集群
				要在 IBM Power® (ppc64le) 上使用多架构计算机器创建集群,您必须有一个现有的单架构 (x86_64) 集群。然后,您可以将 ppc64le 计算机器添加到 OpenShift Container Platform 集群中。
			
					在为集群添加 ppc64le 节点前,您必须将集群升级到使用多架构有效负载的节点。有关迁移到多架构有效负载的更多信息,请参阅迁移到具有多架构计算机器的集群。
				
				以下流程解释了如何使用 ISO 镜像或网络 PXE 引导创建 RHCOS 计算机器。这将允许您在集群中添加 ppc64le 节点,并使用多架构计算机器部署集群。
			
				要使用 x86_64 上的多架构计算机器创建 IBM Power® (ppc64le) 集群,请按照在 IBM Power® 上安装集群的说明进行操作。然后,您可以添加 x86_64 计算机器 ,如在裸机、IBM Power 或 IBM Z 上创建带有多架构计算机器的集群中所述。
			
					在集群中添加二级架构节点前,建议安装 Multiarch Tuning Operator,并部署 ClusterPodPlacementConfig 对象。如需更多信息,请参阅使用 Multiarch Tuning Operator 在多架构集群上管理工作负载。
				
4.9.1. 验证集群兼容性
在开始在集群中添加不同架构的计算节点前,您必须验证集群是否兼容多架构。
先决条件
- 
							已安装 OpenShift CLI(oc)。
						在使用多个架构时,OpenShift Container Platform 节点的主机必须共享相同的存储层。如果它们没有相同的存储层,请使用 nfs-provisioner 等存储提供程序。
					
您应该尽可能限制 compute 和 control plane 之间的网络跃点数量。
流程
- 
							登录 OpenShift CLI (oc)。
- 您可以运行以下命令来检查集群是否使用构架有效负载: - oc adm release info -o jsonpath="{ .metadata.metadata}"- $ oc adm release info -o jsonpath="{ .metadata.metadata}"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 如果您看到以下输出,代表集群使用多架构有效负载: - { "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }- { "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 然后,您可以开始在集群中添加多架构计算节点。 
- 如果您看到以下输出,代表集群没有使用多架构有效负载: - { "url": "https://access.redhat.com/errata/<errata_version>" }- { "url": "https://access.redhat.com/errata/<errata_version>" }- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 重要- 要迁移集群以便集群支持多架构计算机器,请按照使用多架构计算机器迁移到集群的步骤进行操作。 
4.9.2. 使用 ISO 镜像创建 RHCOS 机器
您可以使用 ISO 镜像为集群创建更多 Red Hat Enterprise Linux CoreOS (RHCOS) 计算机器,以创建机器。
先决条件
- 获取集群计算机器的 Ignition 配置文件的 URL。在安装过程中将该文件上传到 HTTP 服务器。
- 
							已安装 OpenShift CLI (oc)。
流程
- 运行以下命令,从集群中删除 Ignition 配置文件: - oc extract -n openshift-machine-api secret/worker-user-data-managed --keys=userData --to=- > worker.ign - $ oc extract -n openshift-machine-api secret/worker-user-data-managed --keys=userData --to=- > worker.ign- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
							将您从集群导出的 worker.ignIgnition 配置文件上传到 HTTP 服务器。注意这些文件的 URL。
- 您可以验证 ignition 文件是否在 URL 上可用。以下示例获取计算节点的 Ignition 配置文件: - curl -k http://<HTTP_server>/worker.ign - $ curl -k http://<HTTP_server>/worker.ign- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 您可以运行以下命令来访问 ISO 镜像以引导新机器: - RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.<architecture>.artifacts.metal.formats.iso.disk.location')- RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.<architecture>.artifacts.metal.formats.iso.disk.location')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 ISO 文件在更多计算机器上安装 RHCOS。在安装集群前,使用创建机器时使用的相同方法: - 将 ISO 镜像刻录到磁盘并直接启动。
- 在 LOM 接口中使用 ISO 重定向。
 
- 在不指定任何选项或中断实时引导序列的情况下引导 RHCOS ISO 镜像。等待安装程序在 RHCOS live 环境中引导进入 shell 提示符。 注意- 您可以中断 RHCOS 安装引导过程来添加内核参数。但是,在这个 ISO 过程中,您应该使用以下步骤中所述的 - coreos-installer命令,而不是添加内核参数。
- 运行 - coreos-installer命令并指定满足您的安装要求的选项。您至少必须指定指向节点类型的 Ignition 配置文件的 URL,以及您要安装到的设备:- sudo coreos-installer install --ignition-url=http://<HTTP_server>/<node_type>.ign <device> --ignition-hash=sha512-<digest> - $ sudo coreos-installer install --ignition-url=http://<HTTP_server>/<node_type>.ign <device> --ignition-hash=sha512-<digest>- 1 - 2 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 如果要通过使用 TLS 的 HTTPS 服务器提供 Ignition 配置文件,您可以在运行 - coreos-installer前将内部证书颁发机构(CA)添加到系统信任存储中。- 以下示例将引导节点安装初始化到 - /dev/sda设备。bootstrap 节点的 Ignition 配置文件从 IP 地址 192.168.1.2 的 HTTP Web 服务器获取:- sudo coreos-installer install --ignition-url=http://192.168.1.2:80/installation_directory/bootstrap.ign /dev/sda --ignition-hash=sha512-a5a2d43879223273c9b60af66b44202a1d1248fc01cf156c46d4a79f552b6bad47bc8cc78ddf0116e80c59d2ea9e32ba53bc807afbca581aa059311def2c3e3b - $ sudo coreos-installer install --ignition-url=http://192.168.1.2:80/installation_directory/bootstrap.ign /dev/sda --ignition-hash=sha512-a5a2d43879223273c9b60af66b44202a1d1248fc01cf156c46d4a79f552b6bad47bc8cc78ddf0116e80c59d2ea9e32ba53bc807afbca581aa059311def2c3e3b- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在机器的控制台上监控 RHCOS 安装的进度。 重要- 在开始安装 OpenShift Container Platform 之前,确保每个节点中安装成功。观察安装过程可以帮助确定可能会出现 RHCOS 安装问题的原因。 
- 继续为集群创建更多计算机器。
4.9.3. 通过 PXE 或 iPXE 启动来创建 RHCOS 机器
您可以使用 PXE 或 iPXE 引导为裸机集群创建更多 Red Hat Enterprise Linux CoreOS(RHCOS)计算机器。
先决条件
- 获取集群计算机器的 Ignition 配置文件的 URL。在安装过程中将该文件上传到 HTTP 服务器。
- 
							获取您在集群安装过程中上传到 HTTP 服务器的 RHCOS ISO 镜像、压缩的裸机 BIOS、kernel和initramfs文件的 URL。
- 您可以访问在安装过程中为 OpenShift Container Platform 集群创建机器时使用的 PXE 引导基础架构。机器必须在安装 RHCOS 后从本地磁盘启动。
- 
							如果使用 UEFI,您可以访问在 OpenShift Container Platform 安装过程中修改的 grub.conf文件。
流程
- 确认 RHCOS 镜像的 PXE 或 iPXE 安装正确。 - 对于 PXE: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 此配置不会在图形控制台的机器上启用串行控制台访问。要配置不同的控制台,请在 - APPEND行中添加一个或多个- console=参数。例如,添加- console=tty0 console=ttyS0以将第一个 PC 串口设置为主控制台,并将图形控制台设置为二级控制台。如需更多信息,请参阅 如何在 Red Hat Enterprise Linux 中设置串行终端和/或控制台?
- 对于 iPXE ( - x86_64+- ppc64le):- kernel http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> initrd=main coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign initrd --name main http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img boot - kernel http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> initrd=main coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign- 1 - 2 - initrd --name main http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img- 3 - boot- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 此配置不会在使用图形控制台配置不同的控制台的机器上启用串行控制台访问,请在 - kernel行中添加一个或多个- console=参数。例如,添加- console=tty0 console=ttyS0以将第一个 PC 串口设置为主控制台,并将图形控制台设置为二级控制台。如需更多信息,请参阅如何在 Red Hat Enterprise Linux 中设置串行终端和/或控制台? 和"启用 PXE 和 ISO 安装的串行控制台"部分。注意- 要在 - ppc64le架构中网络引导 CoreOS- kernel,您需要使用启用了- IMAGE_GZIP选项的 iPXE 构建版本。请参阅 iPXE 中的- IMAGE_GZIP选项。
- 对于 - ppc64le上的 PXE (使用 UEFI 和 GRUB 作为第二阶段):- menuentry 'Install CoreOS' { linux rhcos-<version>-live-kernel-<architecture> coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign initrd rhcos-<version>-live-initramfs.<architecture>.img }- menuentry 'Install CoreOS' { linux rhcos-<version>-live-kernel-<architecture> coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign- 1 - 2 - initrd rhcos-<version>-live-initramfs.<architecture>.img- 3 - }- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 使用 PXE 或 iPXE 基础架构为集群创建所需的计算机器。
4.9.4. 批准机器的证书签名请求
当您将机器添加到集群时,会为您添加的每台机器生成两个待处理证书签名请求(CSR)。您必须确认这些 CSR 已获得批准,或根据需要自行批准。必须首先批准客户端请求,然后批准服务器请求。
先决条件
- 您已将机器添加到集群中。
流程
- 确认集群可以识别这些机器: - oc get nodes - $ oc get nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME STATUS ROLES AGE VERSION master-0 Ready master 63m v1.29.4 master-1 Ready master 63m v1.29.4 master-2 Ready master 64m v1.29.4 - NAME STATUS ROLES AGE VERSION master-0 Ready master 63m v1.29.4 master-1 Ready master 63m v1.29.4 master-2 Ready master 64m v1.29.4- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出中列出了您创建的所有机器。 注意- 在有些 CSR 被批准前,前面的输出可能不包括计算节点(也称为 worker 节点)。 
- 检查待处理的 CSR,并确保添加到集群中的每台机器都有 - Pending或- Approved状态的客户端请求:- oc get csr - $ oc get csr- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - 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 ... - 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 ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在本例中,两台机器加入集群。您可能会在列表中看到更多已批准的 CSR。 
- 如果 CSR 没有获得批准,在您添加的机器的所有待处理 CSR 都处于 - Pending 状态后,请批准集群机器的 CSR:注意- 由于 CSR 会自动轮转,因此请在将机器添加到集群后一小时内批准您的 CSR。如果没有在一小时内批准它们,证书将会轮转,每个节点会存在多个证书。您必须批准所有这些证书。批准客户端 CSR 后,Kubelet 为服务证书创建一个二级 CSR,这需要手动批准。然后,如果 Kubelet 请求具有相同参数的新证书,则后续提供证书续订请求由 - machine-approver自动批准。注意- 对于在未启用机器 API 的平台上运行的集群,如裸机和其他用户置备的基础架构,您必须实施一种方法来自动批准 kubelet 提供证书请求(CSR)。如果没有批准请求,则 - oc exec、oc- rsh和- oc logs命令将无法成功,因为 API 服务器连接到 kubelet 时需要服务证书。与 Kubelet 端点联系的任何操作都需要此证书批准。该方法必须监视新的 CSR,确认 CSR 由 system:- node或- system:admin组中的- node-bootstrapper服务帐户提交,并确认节点的身份。- 要单独批准,请对每个有效的 CSR 运行以下命令: - oc adm certificate approve <csr_name> - $ oc adm certificate approve <csr_name>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 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- $ 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- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 在有些 CSR 被批准前,一些 Operator 可能无法使用。 
 
- 现在,您的客户端请求已被批准,您必须查看添加到集群中的每台机器的服务器请求: - oc get csr - $ oc get csr- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - 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 ... - 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 ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果剩余的 CSR 没有被批准,且处于 - Pending状态,请批准集群机器的 CSR:- 要单独批准,请对每个有效的 CSR 运行以下命令: - oc adm certificate approve <csr_name> - $ oc adm certificate approve <csr_name>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 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- $ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 批准所有客户端和服务器 CSR 后,机器将 - 处于 Ready 状态。运行以下命令验证:- oc get nodes -o wide - $ oc get nodes -o wide- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 批准服务器 CSR 后可能需要几分钟时间让机器过渡到 - Ready 状态。
其他信息
- 如需有关 CSR 的更多信息,请参阅 证书签名请求。