11.2. 维护裸机主机
您可从 OpenShift Container Platform Web 控制台维护集群中的裸机主机详情。导航到 Compute
您可以将裸机主机移入维护模式。当您将主机移入维护模式时,调度程序会将所有受管工作负载从对应的裸机节点中移出。在处于维护模式时不会调度新的工作负载。
您可以在 web 控制台中取消置备裸机主机。取消置备主机执行以下操作:
-
使用
cluster.k8s.io/delete-machine: true
注解裸机主机 CR - 缩减相关的计算机器集
在不先将守护进程集和未管理的静态 pod 移动到另一节点的情况下,关闭主机电源可能会导致服务中断和数据丢失。
其他资源
11.2.1. 使用 web 控制台在集群中添加裸机主机
您可以在 web 控制台中在集群中添加裸机主机。
先决条件
- 在裸机上安装 RHCOS 集群。
-
以具有
cluster-admin
特权的用户身份登录。
流程
-
在 web 控制台中,导航到 Compute
Bare Metal Hosts。 -
选择 Add Host
New with Dialog。 - 为新的裸机主机指定唯一名称。
- 设置 引导 MAC 地址。
- 设置 基板管理控制台(BMC)地址.
- 输入主机的基板管理控制器(BMC)的用户凭据。
- 选择在创建后打开主机电源,然后选择 Create。
-
向上扩展副本数,以匹配可用的裸机主机数量。导航到 Compute
MachineSets,然后从 Actions 下拉菜单中选择 Edit Machine count 来增加集群中的机器副本数量。
您还可以使用 oc scale
命令和适当的裸机计算机器集来管理裸机节点的数量。
11.2.2. 在 web 控制台中使用 YAML 在集群中添加裸机主机
您可以使用描述裸机主机的 YAML 文件在 web 控制台中在集群中添加裸机主机。
先决条件
- 在裸机基础架构上安装 RHCOS 计算机器,以便在集群中使用。
-
以具有
cluster-admin
特权的用户身份登录。 -
为裸机主机创建
Secret
CR。
流程
-
在 web 控制台中,导航到 Compute
Bare Metal Hosts。 -
选择 Add Host
New from YAML。 复制并粘贴以下 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>
- 选择 Create 以保存 YAML 并创建新的裸机主机。
向上扩展副本数,以匹配可用的裸机主机数量。导航到 Compute
MachineSets,然后从 Actions 下拉菜单中选择 Edit Machine count 来增加集群中的机器数量。 注意您还可以使用
oc scale
命令和适当的裸机计算机器集来管理裸机节点的数量。
11.2.3. 自动将机器扩展到可用的裸机主机数量
要自动创建与可用 BareMetalHost
对象数量匹配的 Machine
对象数量,请在 MachineSet
对象中添加 metal3.io/autoscale-to-hosts
注解。
先决条件
-
安装 RHCOS 裸机计算机器以在集群中使用,并创建对应的
BareMetalHost
对象。 -
安装 OpenShift Container Platform CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。
流程
通过添加
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
进行计数。
11.2.4. 从 provisioner 节点中删除裸机主机
在某些情况下,您可能想要从 provisioner 节点临时删除裸机主机。例如,在使用 OpenShift Container Platform 管理控制台或机器配置池更新触发裸机主机重启时,OpenShift Container Platform 日志会登录到集成的 Dell Remote Access Controller (iDrac),并发出删除作业队列。
要防止管理与可用 BareMetalHost
对象数量匹配的 Machine
对象数量,请在 MachineSet
对象中添加 baremetalhost.metal3.io/detached
注解。
这个注解只适用于处于 Provisioned
, ExternallyProvisioned
或 Ready/Available
状态的 BareMetalHost
对象。
先决条件
-
安装 RHCOS 裸机计算机器以在集群中使用,并创建对应的
BareMetalHost
对象。 -
安装 OpenShift Container Platform CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。
流程
通过添加
baremetalhost.metal3.io/detached
注解来注解您要从 provisioner 节点中删除的计算机器集。$ oc annotate machineset <machineset> -n openshift-machine-api 'baremetalhost.metal3.io/detached'
等待新机器启动。
注意当您使用
BareMetalHost
对象在集群中创建机器时,BareMetalHost
上更改了标签或选择器,BareMetalHost
对象仍然会根据创建Machine
对象的MachineSet
进行计数。在置备用例中,使用以下命令在重启完成后删除注解:
$ oc annotate machineset <machineset> -n openshift-machine-api 'baremetalhost.metal3.io/detached-'
11.2.5. 关闭裸机主机电源
您可以在 web 控制台中关闭裸机集群主机,或使用 OpenShift CLI (oc
)应用集群中的补丁。在关闭主机前,您应该将节点标记为不可调度,并排空节点上的所有 pod 和工作负载。
先决条件
- 您已在裸机基础架构上安装了 RHCOS 计算机器,以便在集群中使用。
-
您已以具有
cluster-admin
权限的用户身份登录。 -
您已将主机配置为 managed,并为集群主机添加了 BMC 凭证。您可以通过在集群中应用
Secret
自定义资源(CR)或登录到 web 控制台并配置裸机主机,来添加 BMC 凭证。
流程
在 Web 控制台中,将您要关闭的节点标记为不可调度。执行以下步骤:
- 进入到 Nodes,再选择您要关闭的节点。展开 Actions 菜单,再选择 Mark 作为不可调度。
- 通过调整 pod 部署或将节点上的工作负载缩减为零,手动删除或重新定位节点上运行 pod。等待排空过程完成。
-
导航到 Compute
Bare Metal Hosts。 - 展开您要关闭的裸机主机的 Options 菜单,然后选择 Power Off。选择 Immediate power off。
另外,您可以使用
oc
修补您要关闭的主机的BareMetalHost
资源。获取受管裸机主机的名称。运行以下命令:
$ oc get baremetalhosts -n openshift-machine-api -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.provisioning.state}{"\n"}{end}'
输出示例
master-0.example.com managed master-1.example.com managed master-2.example.com managed worker-0.example.com managed worker-1.example.com managed worker-2.example.com managed
将节点标记为不可调度:
$ oc adm cordon <bare_metal_host> 1
- 1
<bare_metal_host
> 是您要关闭的主机,如worker-2.example.com
。
排空节点上的所有 pod:
$ oc adm drain <bare_metal_host> --force=true
由复制控制器支持的 Pod 会重新调度到集群中的其他可用节点。
安全关闭裸机主机。运行以下命令:
$ oc patch <bare_metal_host> --type json -p '[{"op": "replace", "path": "/spec/online", "value": false}]'
打开主机后,使节点可为工作负载调度。运行以下命令:
$ oc adm uncordon <bare_metal_host>