本主題說明如何使用 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
控制器會使用您設定的條件來監控您的控制平面和 worker 節點的健全狀況。若要設定條件的狀態,請使用 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
旗標。