×

您可以手动将更多计算机器添加到 VMware vSphere 上的 OpenShift Container Platform 集群。

您也可以使用计算机器集来自动创建集群的其他 VMware vSphere 计算机器。

前提条件

  • 您已在 vSphere 上安装了集群

  • 您拥有用于创建集群的安装介质和 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像。如果您没有这些文件,则必须按照安装过程中的说明获取它们。

如果您无法访问用于创建集群的 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像,则可以使用更新版本的 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像向 OpenShift Container Platform 集群添加更多计算机器。有关说明,请参阅升级到 OpenShift 4.6+ 后,向 UPI 集群添加新节点失败

在 vSphere 中向集群添加更多计算机器

您可以向 VMware vSphere 上的用户预配的 OpenShift Container Platform 集群添加更多计算机器。

在您的 vSphere 模板在 OpenShift Container Platform 集群中部署后,您可以在该集群中为机器部署虚拟机 (VM)。

先决条件
  • 获取计算机器的 base64 编码的 Ignition 文件。

  • 您可以访问为集群创建的 vSphere 模板。

步骤
  1. 右键单击模板的名称,然后单击克隆克隆到虚拟机

  2. 选择名称和文件夹选项卡上,指定虚拟机的名称。您可能需要在名称中包含机器类型,例如compute-1

    确保整个 vSphere 安装中的所有虚拟机名称都是唯一的。

  3. 选择名称和文件夹选项卡上,选择为集群创建的文件夹的名称。

  4. 选择计算资源选项卡上,选择数据中心中主机的名称。

  5. 选择存储选项卡上,选择配置和磁盘文件的存储。

  6. 选择克隆选项选项卡上,选择自定义此虚拟机的硬件

  7. 自定义硬件选项卡上,单击高级参数

    • 通过在属性字段中指定数据,添加以下配置参数名称和值。确保为创建的每个参数选择添加按钮。

      • guestinfo.ignition.config.data:粘贴此机器类型的 base64 编码的计算 Ignition 配置文件的內容。

      • guestinfo.ignition.config.data.encoding:指定base64

      • disk.EnableUUID:指定TRUE

  8. 自定义硬件选项卡的虚拟硬件面板中,根据需要修改指定的值。确保 RAM、CPU 和磁盘存储量满足机器类型的最低要求。如果存在许多网络,请选择添加新设备>网络适配器,然后在新建网络菜单项提供的字段中输入您的网络信息。

  9. 完成其余配置步骤。单击完成按钮后,您就完成了克隆操作。

  10. 虚拟机选项卡中,右键单击您的虚拟机,然后选择电源打开电源

后续步骤
  • 继续为您的集群创建更多计算机器。

批准机器的证书签名请求

将机器添加到集群时,会为添加的每个机器生成两个待处理的证书签名请求 (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,并确保您看到为添加到集群的每台机器显示状态为PendingApproved的客户端请求

    $ 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 状态均为Pending后,请批准集群机器的 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

      某些 Operators 只有在批准某些 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
    示例输出
    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 后,机器可能需要几分钟才能过渡到Ready 状态。

更多信息