ワークロード クラスタのマシン健全性チェックの管理

このトピックでは、制御プレーン ノードとワーカー ノードの MachineHealthCheck オブジェクトを作成、更新、取得、および削除するために Tanzu コマンド ライン インターフェイス (CLI) を使用する方法について説明します。

詳細については、「Tanzu CLI コマンド リファレンス」の「tanzu cluster machinehealthcheck」を参照してください。

MachineHealthCheck について

MachineHealthCheck は、マシンの健全性監視と自動修復を提供するコントローラです。これは、すべての管理クラスタおよびワークロード クラスタ内の制御プレーン ノードとワーカー ノードの両方に対して自動的に有効になります。単一のマシン展開を含むクラスベースのクラスタまたはレガシー クラスタを展開するときにコントローラが有効になっている場合、Tanzu Kubernetes Grid は、クラスタ内に 2 つのデフォルトの MachineHealthCheck オブジェクトを作成します。1 つは制御プレーン ノード用、もう 1 つはワーカー ノード用です。複数のマシン展開を含むクラスベースのクラスタの場合、Tanzu Kubernetes Grid は制御プレーン用に 1 つの MachineHealthCheck オブジェクトを作成し、各マシン展開用に 1 つ作成します。これらのオブジェクトは、クラスタと同じ名前空間に作成されます。

コントローラを無効にした場合、「MachineHealthCheck オブジェクトの作成または更新」に記載されているコマンドを使用して、コントローラを再度有効にすることができます。これらのコマンドを使用して、既存の MachineHealthCheck オブジェクトを更新することもできます。

MachineHealthCheck オブジェクトの作成または更新

次の手順に従って、クラスタの MachineHealthCheck オブジェクトを作成または更新します。

  • クラスベースのクラスタ:

    • クラスベースのクラスタの制御プレーンのデフォルトの MachineHealthCheck オブジェクトを作成するには、以下を実行します。

      tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME
      
    • クラスベースのクラスタのワーカー ノードのデフォルトの MachineHealthCheck オブジェクトを作成するには、以下を実行します。

      • クラスタに単一のマシン展開がある場合は、以下を実行します。

        tanzu cluster machinehealthcheck node set CLUSTER-NAME
        
      • クラスタに複数のマシン展開がある場合は、各マシン展開に対して次のコマンドを実行します。これにより、マシン展開ごとにデフォルトの MachineHealthCheck オブジェクトが作成されます。

        tanzu cluster machinehealthcheck node set CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
        

    ここで、

    • CLUSTER-NAME はターゲット クラスタの名前です。
    • MACHINE-DEPLOYMENT-NAME はマシン展開の名前です。たとえば、md-0です。マシン展開名を取得するには、kubectl get cluster CLUSTER-NAME -o yaml を実行し、出力で spec.topology.workers.machineDeployments.name を見つけます。
  • レガシー クラスタ:

    • レガシー クラスタの制御プレーンのデフォルトの MachineHealthCheck オブジェクトを作成するには、以下を実行します。

      tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --mhc-name MHC-NAME
      
    • レガシー クラスタのワーカー ノードのデフォルトの MachineHealthCheck オブジェクトを作成するには、以下を実行します。

      tanzu cluster machinehealthcheck node set CLUSTER-NAME --mhc-name MHC-NAME
      

    ここで、

    • CLUSTER-NAME はターゲット クラスタの名前です。
    • MHC-NAME は、MachineHealthCheck オブジェクトに対して選択した名前です。指定しない場合、名前は CLUSTER-NAME に設定されます。これらのコマンドを両方とも実行している場合は、--mhc-name を指定する必要があります。クラスベースのクラスタでは、--mhc-name フラグは無視されます。

上記のコマンドを使用して、カスタマイズされた MachineHealthCheck オブジェクトを作成したり、既存の MachineHealthCheck オブジェクトを更新したりすることもできます。MachineHealthCheck オブジェクトをカスタマイズまたは更新するには、次のフラグを 1 つ以上指定できます。

これらの例では、単一のマシン展開があるクラスベースのクラスタの MachineHealthCheck 設定をカスタマイズまたは更新していることを前提としています。複数のマシン展開があるクラスベースのクラスタのワーカー ノードの MachineHealthCheck オブジェクトをカスタマイズまたは更新している場合は、--machine-deployment フラグを指定する必要があります。レガシー クラスタの場合は、上記のように --mhc-name を指定します。

  • --match-labels:このオプションは、ラベルのキーと値によってマシンをフィルタリングします。1 つまたは複数のラベルの制約を指定できます。MachineHealthCheck オブジェクトは、指定された制約を満たすすべてのマシンに適用されます。キーと値のペアの形式を次のように設定します。

    tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --match-labels "key1:value1,key2:value2"
    tanzu cluster machinehealthcheck node set CLUSTER-NAME --match-labels "key1:value1,key2:value2"
    
  • --max-unhealthy:健全でないマシンの数が、このフラグを使用して設定した値を超えると、MachineHealthCheck コントローラは修正を実行しません。--max-unhealthy 設定のデフォルトは 100% です。このフラグには絶対数またはパーセントを指定できます。

    tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --max-unhealthy "60%"
    tanzu cluster machinehealthcheck node set CLUSTER-NAME --max-unhealthy "60%"
    
  • --node-startup-timeout:このオプションは、MachineHealthCheck コントローラが、マシンのクラスタへの参加を待機してから、マシンの健全性を良好でないと判断するまでの時間を制御します。たとえば、次のコマンドは、--node-startup-timeout オプションを 21m に設定します。

    tanzu cluster machinehealthcheck control-plane set my-cluster --node-startup-timeout 21m
    tanzu cluster machinehealthcheck node set my-cluster --node-startup-timeout 21m
    

    マシンが指定時間内にクラスタへ参加できなかった場合、MachineHealthCheck コントローラによってマシンが再作成されます。

  • --unhealthy-conditions:このオプションは、ReadyMemoryPressureDiskPressurePIDPressure、および NetworkUnavailable 条件を設定できます。MachineHealthCheck コントローラは、制御プレーン ノードとワーカー ノードの健全性を監視するために設定した条件を使用します。条件のステータスを設定するには、TrueFalse、または Unknown を使用します。例:

    tanzu cluster machinehealthcheck control-plane set my-cluster --unhealthy-conditions "Ready:False:5m,Ready:Unknown:5m"
    tanzu cluster machinehealthcheck node set my-cluster --unhealthy-conditions "Ready:False:5m,Ready:Unknown:5m"
    

    上記の例では、Ready 条件を False:5m および Unknown:5m に設定しています。マシンが 5m 以上 Unknown または False 状態のままになると、MachineHealthCheck コントローラはマシンの健全性が良好でないと見なし、マシンを再作成します。

MachineHealthCheck オブジェクトの取得

クラスタの MachineHealthCheck オブジェクトを取得するには、次の手順を実行します。クラスベースのクラスタでは、--mhc-name フラグは無視されます。

  • ターゲット クラスタの制御プレーンの MachineHealthCheck オブジェクトを取得するには、以下を実行します。

    tanzu cluster machinehealthcheck control-plane get CLUSTER-NAME --mhc-name MHC-NAME
    

    オブジェクトがデフォルト名で作成された場合、またはクラスベースのクラスタをターゲットにしている場合は、--mhc-name フラグを省略します。

  • ターゲット クラスタのワーカー ノードの MachineHealthCheck オブジェクトを取得するには、以下を実行します。

    tanzu cluster machinehealthcheck node get CLUSTER-NAME --mhc-name MHC-NAME
    

    オブジェクトがデフォルト名で作成された場合、またはクラスベースのクラスタをターゲットにしている場合は、--mhc-name フラグを省略します。

MachineHealthCheck オブジェクトの削除

クラスタの MachineHealthCheck オブジェクトを削除するには、次の手順を実行します。

  • クラスベースのクラスタ:

    • クラスベースのクラスタの制御プレーンの MachineHealthCheck オブジェクトを削除するには、以下を実行します。

      tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME
      
    • クラスベースのクラスタのワーカー ノードの MachineHealthCheck オブジェクトを削除するには、以下を実行します。

      • クラスタに単一のマシン展開がある場合は、以下を実行します。

        tanzu cluster machinehealthcheck node delete CLUSTER-NAME
        
      • クラスタに複数のマシン展開がある場合は、各マシン展開に対して次のコマンドを実行します。

        tanzu cluster machinehealthcheck node delete CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
        
  • レガシー クラスタ:

    • レガシー クラスタの制御プレーンの MachineHealthCheck オブジェクトを削除するには、以下を実行します。

      tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME --mhc-name MHC-NAME
      

      オブジェクトがデフォルト名で作成された場合は、--mhc-name フラグを省略します。

    • レガシー クラスタのワーカー ノードの MachineHealthCheck オブジェクトを削除するには、以下を実行します。

      tanzu cluster machinehealthcheck node delete CLUSTER-NAME --mhc-name MHC-NAME
      

      オブジェクトがデフォルト名で作成された場合は、--mhc-name フラグを省略します。

check-circle-line exclamation-circle-line close-line
Scroll to top icon