This site will be decommissioned on December 31st 2024. After that date content will be available at techdocs.broadcom.com.

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

このトピックでは、制御プレーン ノードとワーカー ノードの 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