11.4.3. 为裸机创建 MachineHealthCheck 资源
先决条件
- OpenShift Container Platform 使用安装程序置备的基础架构(IPI)安装。
- 访问基板管理控制器(或 BMC 访问每个节点)
- 网络访问不健康节点的 BMC 接口。
流程
-
创建一个
healthcheck.yaml
文件,其中包含您的机器健康检查的定义。 -
使用以下命令将
healthcheck.yaml
文件应用到集群:
$ oc apply -f healthcheck.yaml
裸机的 MachineHealthCheck
资源示例
apiVersion: machine.openshift.io/v1beta1 kind: MachineHealthCheck metadata: name: example 1 namespace: openshift-machine-api annotations: machine.openshift.io/remediation-strategy: external-baremetal 2 spec: selector: matchLabels: machine.openshift.io/cluster-api-machine-role: <role> 3 machine.openshift.io/cluster-api-machine-type: <role> 4 machine.openshift.io/cluster-api-machineset: <cluster_name>-<label>-<zone> 5 unhealthyConditions: - type: "Ready" timeout: "300s" 6 status: "False" - type: "Ready" timeout: "300s" 7 status: "Unknown" maxUnhealthy: "40%" 8 nodeStartupTimeout: "10m" 9
- 1
- 指定要部署的机器健康检查的名称。
- 2
- 对于裸机集群,您必须在
annotations
部分中包含machine.openshift.io/remediation-strategy: external-baremetal
注解来启用电源周期补救。采用这种补救策略时,不健康的主机会被重启,而不是从集群中删除。 - 3 4
- 为要检查的机器池指定一个标签。
- 5
- 以
<cluster_name>-<label>-<zone>
格式 指定要跟踪的机器集。例如,prod-node-us-east-1a
。 - 6 7
- 指定节点条件的超时持续时间。如果在超时时间内满足了条件,则会修复机器。超时时间较长可能会导致不健康的机器上的工作负载长时间停机。
- 8
- 指定目标池中允许同时修复的机器数量。这可设为一个百分比或一个整数。如果不健康的机器数量超过
maxUnhealthy
设定的限制,则不会执行补救。 - 9
- 指定机器健康检查在决定机器不健康前必须等待节点加入集群的超时持续时间。
注意
matchLabels
只是示例; 您必须根据具体需要映射您的机器组。