×

要在IBM Power® (ppc64le)上创建具有多架构计算机的集群,您必须拥有现有的单架构 (x86_64) 集群。然后,您可以将ppc64le计算机器添加到您的OpenShift Container Platform集群。

在您可以将ppc64le节点添加到集群之前,您必须将集群升级到使用多架构负载的集群。有关迁移到多架构负载的更多信息,请参见迁移到具有多架构计算机的集群

以下步骤说明如何使用ISO映像或网络PXE启动创建RHCOS计算机器。这将允许您将ppc64le节点添加到您的集群并部署具有多架构计算机的集群。

要在x86_64上创建具有多架构计算机的IBM Power® (ppc64le) 集群,请按照在IBM Power®上安装集群中的说明进行操作。然后,您可以按照在裸机、IBM Power或IBM Z上创建具有多架构计算机的集群中所述添加x86_64计算机器。

在将辅助架构节点添加到集群之前,建议安装Multiarch Tuning Operator并部署ClusterPodPlacementConfig对象。有关更多信息,请参见使用Multiarch Tuning Operator管理多架构集群上的工作负载

验证集群兼容性

在您可以开始将不同架构的计算节点添加到集群之前,您必须验证您的集群是否与多架构兼容。

先决条件
  • 您已安装OpenShift CLI (oc)。

使用多个架构时,OpenShift Container Platform节点的主机必须共享相同的存储层。如果它们没有相同的存储层,请使用存储提供程序,例如nfs-provisioner

您应尽可能限制计算和控制平面之间的网络跳数。

步骤
  1. 登录到OpenShift CLI (oc)。

  2. 您可以通过运行以下命令来检查您的集群是否使用架构负载

    $ 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>"
    }

    要迁移您的集群以使集群支持多架构计算机器,请按照迁移到具有多架构计算机的集群中的步骤进行操作。

使用ISO映像创建RHCOS机器

您可以使用ISO映像创建集群的更多Red Hat Enterprise Linux CoreOS (RHCOS)计算机器。

先决条件
  • 获取集群计算机器的Ignition配置文件的URL。您在安装过程中将此文件上传到您的HTTP服务器。

  • 您必须安装OpenShift CLI (oc)。

步骤
  1. 通过运行以下命令从集群中提取Ignition配置文件

    $ oc extract -n openshift-machine-api secret/worker-user-data-managed --keys=userData --to=- > worker.ign
  2. 将您从集群导出的worker.ign Ignition配置文件上传到您的HTTP服务器。注意这些文件的URL。

  3. 您可以验证点火文件是否可在这些URL上访问。以下示例获取计算节点的点火配置文件

    $ curl -k http://<HTTP_server>/worker.ign
  4. 您可以运行以下命令访问用于启动新机器的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')
  5. 使用ISO文件在更多计算机器上安装RHCOS。使用您在安装集群之前创建机器时使用的相同方法

    • 将ISO镜像刻录到磁盘并直接启动。

    • 使用带有LOM接口的ISO重定向。

  6. 启动RHCOS ISO镜像,无需指定任何选项或中断实时启动序列。等待安装程序引导到RHCOS实时环境中的shell提示符。

    您可以中断RHCOS安装启动过程以添加内核参数。但是,对于此ISO过程,您必须使用以下步骤中概述的coreos-installer命令,而不是添加内核参数。

  7. 运行coreos-installer命令并指定满足您的安装要求的选项。至少,您必须指定指向节点类型点火配置文件的URL以及要安装到的设备

    $ sudo coreos-installer install --ignition-url=http://<HTTP_server>/<node_type>.ign <device> --ignition-hash=sha512-<digest> (1) (2)
    1 您必须使用sudo运行coreos-installer命令,因为core用户没有执行安装所需的root权限。
    2 当通过HTTP URL获取点火配置文件时,--ignition-hash选项是必需的,用于验证集群节点上点火配置文件的真实性。<digest>是在前面步骤中获得的点火配置文件SHA512摘要。

    如果您想通过使用TLS的HTTPS服务器提供点火配置文件,则可以在运行coreos-installer之前将内部证书颁发机构(CA)添加到系统信任存储。

    以下示例将引导节点安装初始化到/dev/sda设备。引导节点的点火配置文件是从具有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
  8. 监控机器控制台上RHCOS安装的进度。

    在开始OpenShift Container Platform安装之前,确保每个节点上的安装成功。观察安装过程还可以帮助确定可能出现的RHCOS安装问题的根本原因。

  9. 继续为您的集群创建更多计算机器。

通过PXE或iPXE引导创建RHCOS机器

您可以使用PXE或iPXE引导为您的裸机集群创建更多Red Hat Enterprise Linux CoreOS (RHCOS)计算机器。

先决条件
  • 获取集群计算机器的Ignition配置文件的URL。您在安装过程中将此文件上传到您的HTTP服务器。

  • 获取在集群安装期间上传到HTTP服务器的RHCOS ISO镜像、压缩金属BIOS、kernelinitramfs文件的URL。

  • 您可以访问在安装期间用于为OpenShift Container Platform集群创建机器的PXE引导基础架构。在RHCOS安装到机器上后,机器必须从本地磁盘启动。

  • 如果您使用UEFI,则可以访问在OpenShift Container Platform安装期间修改的grub.conf文件。

步骤
  1. 确认您的RHCOS镜像的PXE或iPXE安装是否正确。

    • 对于PXE

      DEFAULT pxeboot
      TIMEOUT 20
      PROMPT 0
      LABEL pxeboot
          KERNEL http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> (1)
          APPEND initrd=http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img (2)
      1 指定您上传到HTTP服务器的实时kernel文件的位置。
      2 指定您上传到HTTP服务器的RHCOS文件的位置。initrd参数值是实时initramfs文件的位置,coreos.inst.ignition_url参数值是工作程序点火配置文件的位置,coreos.live.rootfs_url参数值是实时rootfs文件的位置。coreos.inst.ignition_urlcoreos.live.rootfs_url参数仅支持HTTP和HTTPS。

      此配置不会在具有图形控制台的机器上启用串行控制台访问。要配置不同的控制台,请向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 (1) (2)
      initrd --name main http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img (3)
      boot
      1 指定您上传到HTTP服务器的RHCOS文件的位置。kernel参数值是kernel文件的位置,initrd=main参数对于在UEFI系统上启动是必需的,coreos.live.rootfs_url参数值是rootfs文件的位置,coreos.inst.ignition_url参数值是工作程序点火配置文件的位置。
      2 如果您使用多个网卡,请在ip选项中指定单个接口。例如,要在名为eno1的网卡上使用DHCP,请设置ip=eno1:dhcp
      3 指定您上传到HTTP服务器的initramfs文件的位置。

      此配置不会在具有图形控制台的机器上启用串行控制台访问。要配置不同的控制台,请向kernel行添加一个或多个console=参数。例如,添加console=tty0 console=ttyS0将第一个PC串行端口设置为主要控制台,并将图形控制台设置为辅助控制台。更多信息,请参见如何在Red Hat Enterprise Linux中设置串行终端和/或控制台?和“高级RHCOS安装配置”部分中的“为PXE和ISO安装启用串行控制台”。

      要在ppc64le架构上网络引导CoreOS kernel,您需要使用启用了IMAGE_GZIP选项的iPXE版本构建。参见iPXE中的IMAGE_GZIP选项

    • 对于PXE(使用UEFI和GRUB作为第二阶段)在ppc64le

      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)
      }
      1 指定您上传到HTTP/TFTP服务器的RHCOS文件的位置。kernel参数值是TFTP服务器上kernel文件的位置。coreos.live.rootfs_url参数值是rootfs文件的位置,coreos.inst.ignition_url参数值是HTTP服务器上工作程序点火配置文件的位置。
      2 如果您使用多个网卡,请在ip选项中指定单个接口。例如,要在名为eno1的网卡上使用DHCP,请设置ip=eno1:dhcp
      3 指定您上传到TFTP服务器的initramfs文件的位置。
  2. 使用PXE或iPXE基础架构为您的集群创建所需的计算机器。

批准机器的证书签名请求

将机器添加到集群时,会为添加的每台机器生成两个待处理的证书签名请求 (CSR)。您必须确认这些CSR已获批准,或者必要时自行批准它们。必须先批准客户端请求,然后再批准服务器请求。

先决条件
  • 您已将机器添加到集群。

步骤
  1. 确认集群是否识别这些机器

    $ 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之前,上述输出可能不包含计算节点(也称为工作节点)。

  2. 查看待处理的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。

  3. 如果CSR未获批准,在您添加的所有机器的待处理CSR都处于“待处理”状态后,请批准集群机器的CSR

    由于CSR会自动轮换,因此请在将机器添加到集群后一小时内批准您的CSR。如果您在一小时内未批准它们,证书将轮换,并且每个节点将存在两个以上的证书。您必须批准所有这些证书。批准客户端CSR后,Kubelet会为服务证书创建辅助CSR,这需要手动批准。然后,如果Kubelet请求具有相同参数的新证书,则machine-approver会自动批准后续的服务证书续订请求。

    对于在非机器 API 启用平台(例如裸机和其他用户配置的基础设施)上运行的集群,您必须实现一种自动批准 kubelet 服务证书请求 (CSR) 的方法。如果未批准请求,则oc execoc rshoc logs 命令将无法成功执行,因为 API 服务器连接到 kubelet 时需要服务证书。任何联系 Kubelet 端点的操作都需要此证书批准到位。此方法必须监视新的 CSR,确认 CSR 是由system:nodesystem:admin 组中的node-bootstrapper 服务帐户提交的,并确认节点的身份。

    • 要单独批准它们,请对每个有效的 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

      某些 Operator 可能要等到一些 CSR 批准后才能可用。

  4. 现在您的客户端请求已获批准,您必须检查为添加到集群的每台机器的服务器请求。

    $ 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
    ...
  5. 如果剩余的 CSR 未获批准且状态为Pending,请批准集群机器的 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
  6. 批准所有客户端和服务器 CSR 后,机器将具有Ready 状态。通过运行以下命令验证这一点:

    $ oc get nodes -o wide
    示例输出
    NAME               STATUS   ROLES                  AGE   VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                                                       KERNEL-VERSION                  CONTAINER-RUNTIME
    worker-0-ppc64le   Ready    worker                 42d   v1.30.3   192.168.200.21   <none>        Red Hat Enterprise Linux CoreOS 415.92.202309261919-0 (Plow)   5.14.0-284.34.1.el9_2.ppc64le   cri-o://1.30.3-3.rhaos4.15.gitb36169e.el9
    worker-1-ppc64le   Ready    worker                 42d   v1.30.3   192.168.200.20   <none>        Red Hat Enterprise Linux CoreOS 415.92.202309261919-0 (Plow)   5.14.0-284.34.1.el9_2.ppc64le   cri-o://1.30.3-3.rhaos4.15.gitb36169e.el9
    master-0-x86       Ready    control-plane,master   75d   v1.30.3   10.248.0.38      10.248.0.38   Red Hat Enterprise Linux CoreOS 415.92.202309261919-0 (Plow)   5.14.0-284.34.1.el9_2.x86_64    cri-o://1.30.3-3.rhaos4.15.gitb36169e.el9
    master-1-x86       Ready    control-plane,master   75d   v1.30.3   10.248.0.39      10.248.0.39   Red Hat Enterprise Linux CoreOS 415.92.202309261919-0 (Plow)   5.14.0-284.34.1.el9_2.x86_64    cri-o://1.30.3-3.rhaos4.15.gitb36169e.el9
    master-2-x86       Ready    control-plane,master   75d   v1.30.3   10.248.0.40      10.248.0.40   Red Hat Enterprise Linux CoreOS 415.92.202309261919-0 (Plow)   5.14.0-284.34.1.el9_2.x86_64    cri-o://1.30.3-3.rhaos4.15.gitb36169e.el9
    worker-0-x86       Ready    worker                 75d   v1.30.3   10.248.0.43      10.248.0.43   Red Hat Enterprise Linux CoreOS 415.92.202309261919-0 (Plow)   5.14.0-284.34.1.el9_2.x86_64    cri-o://1.30.3-3.rhaos4.15.gitb36169e.el9
    worker-1-x86       Ready    worker                 75d   v1.30.3   10.248.0.44      10.248.0.44   Red Hat Enterprise Linux CoreOS 415.92.202309261919-0 (Plow)   5.14.0-284.34.1.el9_2.x86_64    cri-o://1.30.3-3.rhaos4.15.gitb36169e.el9

    批准服务器 CSR 后,机器可能需要几分钟才能转换为Ready 状态。

附加信息