×

在裸机集群上安装 OpenShift Container Platform 时,您可以使用machinemachineset自定义资源 (CR) 来供应和管理集群中存在的裸机主机的裸机节点。

关于裸机主机和节点

要将 Red Hat Enterprise Linux CoreOS (RHCOS) 裸机主机作为节点供应到您的集群中,首先创建一个与裸机主机硬件相对应的MachineSet自定义资源 (CR) 对象。裸机主机计算机器集描述了特定于您配置的基础设施组件。您将特定的 Kubernetes 标签应用于这些计算机器集,然后更新基础设施组件以仅在这些机器上运行。

当您扩展包含metal3.io/autoscale-to-hosts注释的相关MachineSet时,会自动创建Machine CR。OpenShift Container Platform 使用Machine CR 来供应与MachineSet CR 中指定的主机相对应的裸机节点。

维护裸机主机

您可以通过 OpenShift Container Platform Web 控制台维护集群中裸机主机的详细信息。导航到**计算** → **裸机主机**,然后从**操作**下拉菜单中选择一项任务。在这里,您可以管理诸如 BMC 详细信息、主机的启动 MAC 地址、启用电源管理等等项目。您还可以查看主机的网络接口和驱动器的详细信息。

您可以将裸机主机移入维护模式。将主机移入维护模式后,调度程序会将所有受管工作负载从相应的裸机节点移出。在维护模式下,不会调度任何新的工作负载。

您可以在 Web 控制台中取消预配裸机主机。取消预配主机将执行以下操作:

  1. 使用cluster.k8s.io/delete-machine: true 注释裸机主机 CR。

  2. 缩减相关的计算机器集。

在将守护程序集和非托管静态 Pod 移到另一个节点之前关闭主机电源可能会导致服务中断和数据丢失。

使用 Web 控制台将裸机主机添加到集群

您可以在 Web 控制台中将裸机主机添加到集群。

先决条件
  • 在裸机上安装 RHCOS 集群。

  • 以具有cluster-admin权限的用户身份登录。

步骤
  1. 在 Web 控制台中,导航到**计算** → **裸机主机**。

  2. 选择**添加主机** → **使用对话框新建**。

  3. 为新的裸机主机指定一个唯一名称。

  4. 设置**启动 MAC 地址**。

  5. 设置**基板管理控制器 (BMC) 地址**。

  6. 输入主机基板管理控制器 (BMC) 的用户凭据。

  7. 选择创建后打开主机电源,然后选择**创建**。

  8. 将副本数量增加到与可用裸机主机数量匹配。导航到**计算** → **MachineSets**,并通过从**操作**下拉菜单中选择**编辑机器数量**来增加集群中机器副本的数量。

您还可以使用oc scale命令和相应的裸机计算机器集来管理裸机节点的数量。

使用 Web 控制台中的 YAML 文件添加裸机主机

您可以使用描述裸机主机的 YAML 文件在 Web 控制台中将裸机主机添加到集群。

先决条件
  • 安装在裸机基础设施上的 RHCOS 计算机器,以便在集群中使用。

  • 以具有cluster-admin权限的用户身份登录。

  • 为裸机主机创建一个Secret CR。

步骤
  1. 在 Web 控制台中,导航到**计算** → **裸机主机**。

  2. 选择**添加主机** → **从 YAML 新建**。

  3. 复制并粘贴下面的 YAML,并使用您的主机详细信息修改相关字段。

    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    metadata:
      name: <bare_metal_host_name>
    spec:
      online: true
      bmc:
        address: <bmc_address>
        credentialsName: <secret_credentials_name>  (1)
        disableCertificateVerification: True (2)
      bootMACAddress: <host_boot_mac_address>
    1 credentialsName必须引用有效的Secret CR。如果没有在credentialsName中引用有效的Secret,则baremetal-operator无法管理裸机主机。有关密钥以及如何创建密钥的更多信息,请参阅理解密钥
    2 disableCertificateVerification设置为true将禁用集群和基板管理控制器 (BMC) 之间的 TLS 主机验证。
  4. 选择**创建**以保存 YAML 并创建新的裸机主机。

  5. 将副本数量增加到与可用裸机主机数量匹配。导航到**计算** → **MachineSets**,并通过从**操作**下拉菜单中选择**编辑机器数量**来增加集群中机器的数量。

    您还可以使用oc scale命令和相应的裸机计算机器集来管理裸机节点的数量。

自动将机器扩展到可用裸机主机的数量

要自动创建与可用BareMetalHost对象数量匹配的Machine对象数量,请向MachineSet对象添加metal3.io/autoscale-to-hosts注释。

先决条件
  • 安装 RHCOS 裸机计算机器以便在集群中使用,并创建相应的BareMetalHost对象。

  • 安装 OpenShift Container Platform CLI (oc)。

  • 以具有cluster-admin权限的用户身份登录。

步骤
  1. 通过添加metal3.io/autoscale-to-hosts注释来注释要配置为自动缩放的计算机器集。将<machineset>替换为计算机器集的名称。

    $ oc annotate machineset <machineset> -n openshift-machine-api 'metal3.io/autoscale-to-hosts=<any_value>'

    等待新的扩展机器启动。

当您使用BareMetalHost对象在集群中创建机器,并且随后更改BareMetalHost上的标签或选择器时,BareMetalHost对象将继续针对创建Machine对象的MachineSet进行计数。

从预配器节点中移除裸机主机

在某些情况下,您可能希望暂时从预配器节点中移除裸机主机。例如,在使用 OpenShift Container Platform 管理控制台触发裸机主机重新引导或由于 Machine Config Pool 更新导致的预配过程中,OpenShift Container Platform 将登录到集成 Dell 远程访问控制器 (iDrac) 并发出作业队列删除命令。

要阻止管理与可用BareMetalHost对象数量匹配的Machine对象数量,请向MachineSet对象添加baremetalhost.metal3.io/detached注释。

此注释仅对处于“已预配”、“外部预配”或“就绪/可用”状态的BareMetalHost对象有效。

先决条件
  • 安装 RHCOS 裸机计算机器以便在集群中使用,并创建相应的BareMetalHost对象。

  • 安装 OpenShift Container Platform CLI (oc)。

  • 以具有cluster-admin权限的用户身份登录。

步骤
  1. 通过添加baremetalhost.metal3.io/detached注释来注释要从预配器节点中移除的计算机器集。

    $ oc annotate machineset <machineset> -n openshift-machine-api 'baremetalhost.metal3.io/detached'

    等待新的机器启动。

    当您使用BareMetalHost对象在集群中创建机器,并且随后更改BareMetalHost上的标签或选择器时,BareMetalHost对象将继续针对创建Machine对象的MachineSet进行计数。

  2. 在预配用例中,重新引导完成后,使用以下命令移除注释:

    $ oc annotate machineset <machineset> -n openshift-machine-api 'baremetalhost.metal3.io/detached-'