×

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

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

以下过程说明了如何使用 LPAR 实例创建 RHCOS 计算机器。这将允许您将 s390x 节点添加到您的集群并部署具有多架构计算机的集群。

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

验证集群兼容性

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

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

步骤
  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>"
    }

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

在具有 z/VM 的 IBM Z 上创建 RHCOS 机器

您可以创建更多在 IBM Z® 和 z/VM 上运行的 Red Hat Enterprise Linux CoreOS (RHCOS) 计算机器,并将它们附加到您现有的集群。

先决条件
  • 您有一个可以为节点执行主机名和反向查找的域名服务器 (DNS)。

  • 您的供应机器上运行着一个 HTTP 或 HTTPS 服务器,该服务器可供您创建的机器访问。

步骤
  1. 禁用 UDP 聚合。

    目前,IBM Z® 不支持 UDP 聚合,并且在具有 x86_64 控制平面和附加 s390x 计算机的多架构计算集群上不会自动停用。为了确保附加的计算节点被正确添加到集群,您必须手动禁用 UDP 聚合。

    1. 创建一个包含以下内容的 YAML 文件 udp-aggregation-config.yaml

      apiVersion: v1
      kind: ConfigMap
      data:
        disable-udp-aggregation: "true"
      metadata:
        name: udp-aggregation-config
        namespace: openshift-network-operator
    2. 通过运行以下命令创建 ConfigMap 资源

      $ oc create -f udp-aggregation-config.yaml
  2. 通过运行以下命令从集群中提取 Ignition 配置文件

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

  4. 您可以验证 Ignition 文件是否在 URL 上可用。以下示例获取计算节点的 Ignition 配置文件

    $ curl -k http://<http_server>/worker.ign
  5. 通过运行以下命令下载 RHEL 实时 kernelinitramfsrootfs 文件

    $ 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')
  6. 将下载的 RHEL 实时 kernelinitramfsrootfs 文件移动到可从您要添加的 z/VM 客户机访问的 HTTP 或 HTTPS 服务器。

  7. 为 z/VM 客户机创建一个参数文件。以下参数特定于虚拟机

    • 可选:要指定静态 IP 地址,请添加一个包含以下条目的 ip= 参数,每个条目之间用冒号隔开

      1. 机器的 IP 地址。

      2. 空字符串。

      3. 网关。

      4. 子网掩码。

      5. 机器主机名和域名,格式为 hostname.domainname。省略此值以让 RHCOS 决定。

      6. 网络接口名称。省略此值以让 RHCOS 决定。

      7. none

    • 对于 coreos.inst.ignition_url=,请指定 worker.ign 文件的 URL。仅支持 HTTP 和 HTTPS 协议。

    • 对于 coreos.live.rootfs_url=,请指定与您正在引导的 kernelinitramfs 匹配的 rootfs 工件。仅支持 HTTP 和 HTTPS 协议。

    • 对于 DASD 类型磁盘上的安装,请完成以下任务

      1. 对于 coreos.inst.install_dev=,请指定 /dev/dasda

      2. 使用 rd.dasd= 指定要安装 RHCOS 的 DASD。

      3. 如有需要,您可以调整更多参数。

        下面是一个示例参数文件,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类型磁盘上的安装,请完成以下任务

      1. 使用rd.zfcp=<适配器>,<WWPN>,<LUN>指定安装RHCOS的FCP磁盘。对于多路径,对每个附加路径重复此步骤。

        当您使用多条路径安装时,必须在安装后立即启用多路径,而不是在以后的时间点启用,因为这可能会导致问题。

      2. 将安装设备设置为:coreos.inst.install_dev=/dev/sda

        如果使用NPIV配置了其他LUN,FCP需要zfcp.allow_lun_scan=0。例如,如果您必须启用zfcp.allow_lun_scan=1(因为您使用CSI驱动程序),则必须配置您的NPIV,以便每个节点都不能访问另一个节点的引导分区。

      3. 如有需要,您可以调整更多参数。

        需要额外的安装后步骤才能完全启用多路径。有关更多信息,请参阅《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

        将参数文件中的所有选项写入一行,确保没有换行符。

  8. 例如,使用FTP将initramfskernel、参数文件和RHCOS映像传输到z/VM。有关如何使用FTP传输文件并从虚拟阅读器启动的详细信息,请参见在Z/VM下安装

  9. 将文件打孔到z/VM客户机虚拟机的虚拟阅读器。

    请参阅IBM®文档中的PUNCH

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

  10. 登录到引导机器上的CMS。

  11. 通过运行以下命令从阅读器IPL引导机器

    $ ipl c

    请参阅IBM®文档中的IPL

批准您的机器的证书签名请求

将机器添加到集群时,会为添加的每台机器生成两个待处理的证书签名请求 (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

      在批准一些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未获批准且处于“待处理”状态,请批准集群机器的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后,机器将具有“就绪”状态。通过运行以下命令验证此状态

    $ 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后,机器可能需要几分钟才能过渡到“就绪”状态。

其他信息