3.3. 关于机器健康检查
您可以使用 MachineHealthCheck
资源定义集群中的机器被视为不健康的条件。会自动修复满足条件的机器。
要监控机器健康状况,创建一个 MachineHealthCheck
自定义资源(CR),其中包含要监控的机器集合的标签以及要检查的条件,如维持 NotReady
状态 15 分钟,或在 node-problem-detector 中显示持久性状况。
监控 MachineHealthCheck
CR 的控制器会检查您定义的条件。如果机器无法进行健康检查,则会自动删除机器并创建新的机器来代替它。删除机器之后,您会看到机器被删除
事件。
注意
对于具有 master 角色的机器,机器健康检查会报告不健康的节点数量,但不会删除机器。例如:
输出示例
$ oc get machinehealthcheck example -n openshift-machine-api
NAME MAXUNHEALTHY EXPECTEDMACHINES CURRENTHEALTHY example 40% 3 1
为限制删除机器造成的破坏性影响,控制器一次仅排空并删除一个节点。如果目标机器池中不健康的机器池中不健康的机器数量大于 maxUnhealthy
的值,则控制器会停止删除机器,您必须手动进行处理。
要停止检查,请删除自定义资源。
3.3.1. Bare Metal 上的 MachineHealthCheck
在裸机集群上删除机器会触发重新置备裸机主机。通常,裸机重新置备是一个需要较长时间的过程,在这个过程中,集群缺少计算资源,应用程序可能会中断。要将默认补救过程从机器删除到主机的节能周期,请使用 machine.openshift.io/remediation-strategy: external-baremetal
注解来注解 MachineHealthCheck 资源。
设置注解后,不健康的机器会使用 BMC 凭证进行节能。