本主题介绍了如何使用 Tanzu 命令行界面 (CLI) 为 Tanzu Kubernetes Grid 创建的工作负载集群创建、更新、检索和删除 MachineHealthCheck
对象。
有关详细信息,请参见 Tanzu CLI 命令参考中的 tanzu cluster machinehealthcheck
。
注意为支持控制平面和工作负载节点的计算机运行状况检查,Tanzu CLI v1.6 及更高版本将
tanzu cluster machinehealthcheck set/get/delete
命令替换为tanzu cluster machinehealthcheck control-plane set/get/delete
和tanzu cluster machinehealthcheck node set/get/delete
命令。tanzu cluster machinehealthcheck set/get/delete
命令已弃用,并将在未来版本中移除。
MachineHealthCheck
MachineHealthCheck
是一个控制器,可为计算机提供运行状况监控和自动修复。将在所有管理和工作负载集群中自动为控制平面和工作节点启用该功能。如果在部署集群时启用了控制器,Tanzu Kubernetes Grid 将在集群中创建两个默认 MachineHealthCheck
对象,一个用于控制平面节点,另一个用于工作节点。这些对象是在与集群相同的命名空间中创建的。
如果停用控制器,则可以使用“创建或更新 MachineHealthCheck
对象”中的命令重新启用该控制器。还可以使用这些命令更新现有的 MachineHealthCheck
对象。
MachineHealthCheck
对象要创建默认 MachineHealthCheck
对象,请执行以下操作:
对于集群的控制平面,请运行:
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --mhc-name MHC-NAME
对于集群的工作节点,请运行:
tanzu cluster machinehealthcheck node set CLUSTER-NAME --mhc-name MHC-NAME
其中:
CLUSTER-NAME
是目标集群的名称。MHC-NAME
是为 MachineHealthCheck
对象选择的名称。如果未指定,则名称将设置为 CLUSTER-NAME
。如果运行这两个命令,则需要指定 --mhc-name
。您还可以使用上述命令创建自定义的 MachineHealthCheck
对象或更新现有的 MachineHealthCheck
对象。要自定义或更新 MachineHealthCheck
对象,您可以指定以下一个或多个标记:
--match-labels
:此选项按标签键和值筛选计算机。您可以指定一个或多个标签限制。MachineHealthCheck
对象将应用于满足指定限制的所有计算机。格式化键-值对,如下所示:
tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --mhc-name MHC-NAME --match-labels "key1:value1,key2:value2"
tanzu cluster machinehealthcheck node set CLUSTER-NAME --mhc-name MHC-NAME --match-labels "key1:value1,key2:value2"
--node-startup-timeout
:该选项控制 MachineHealthCheck
控制器在考虑计算机不正常之前等待计算机加入集群的时间量。例如,以下命令将 --node-startup-timeout
选项设置为 21m
:
tanzu cluster machinehealthcheck control-plane set my-cluster --mhc-name my-control-plane-mhc --node-startup-timeout 21m
tanzu cluster machinehealthcheck node set my-cluster --mhc-name my-worker-mhc --node-startup-timeout 21m
如果计算机在指定的时间内无法加入集群,MachineHealthCheck
控制器将重新创建计算机。
--unhealthy-conditions
:此选项可以设置 Ready
、MemoryPressure
、DiskPressure
、PIDPressure
和 NetworkUnavailable
条件。MachineHealthCheck
控制器使用您设置的条件监控控制平面和工作节点的运行状况。要设置条件的状态,请使用 True
、False
或 Unknown
。例如:
tanzu cluster machinehealthcheck control-plane set my-cluster --mhc-name my-control-plane-mhc --unhealthy-conditions "Ready:False:5m,Ready:Unknown:5m"
tanzu cluster machinehealthcheck node set my-cluster --mhc-name my-worker-mhc --unhealthy-conditions "Ready:False:5m,Ready:Unknown:5m"
上例将 Ready
条件设置为 False:5m
和 Unknown:5m
。如果计算机保持 Unknown
或 False
状态的时间超过 5m
,MachineHealthCheck
控制器会将计算机视为不正常并重新创建。
MachineHealthCheck
对象要检索 MachineHealthCheck
对象,请执行下一操作:
对于目标集群的控制平面,请运行:
tanzu cluster machinehealthcheck control-plane get CLUSTER-NAME --mhc-name MHC-NAME
如果对象是使用默认名称创建的,则可以省略 --mhc-name
标记。
对于目标集群的工作节点,请运行:
tanzu cluster machinehealthcheck node get CLUSTER-NAME --mhc-name MHC-NAME
如果对象是使用默认名称创建的,则可以省略 --mhc-name
标记。
MachineHealthCheck
对象要删除 MachineHealthCheck
对象,请执行以下操作:
对于目标集群的控制平面,请运行:
tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME --mhc-name MHC-NAME
如果对象是使用默认名称创建的,则可以省略 --mhc-name
标记。
对于目标集群的工作节点,请运行:
tanzu cluster machinehealthcheck node delete CLUSTER-NAME --mhc-name MHC-NAME
如果对象是使用默认名称创建的,则可以省略 --mhc-name
标记。