Verwalten von Maschinenintegritätsprüfungen für Arbeitslastcluster

In diesem Thema wird erläutert, wie Sie MachineHealthCheck-Objekte für Steuerungsebenen- und Worker-Knoten mithilfe der Tanzu-Befehlszeilenschnittstelle (Command Line Interface, CLI) erstellen, aktualisieren, abrufen und löschen.

Weitere Informationen finden Sie in der Tanzu CLI-Befehlsreferenz unter tanzu cluster machinehealthcheck.

Informationen zu MachineHealthCheck

MachineHealthCheck ist ein Controller, der die Integritätsüberwachung und die automatische Reparatur für Maschinen bereitstellt. Dieser Controller wird für Knoten der Steuerungsebene und Worker-Knoten in allen Verwaltungs- und Arbeitslastclustern automatisch aktiviert. Wenn der Controller beim Bereitstellen eines klassenbasierten Clusters mit einer Bereitstellung einer einzelnen Maschine oder eines Legacy-Clusters aktiviert wird, erstellt Tanzu Kubernetes Grid zwei MachineHealthCheck-Standardobjekte im Cluster: ein Objekt für die Steuerungsebenenknoten und ein Objekt für die Worker-Knoten. Bei klassenbasierten Clustern mit Bereitstellungen mehrerer Maschinen erstellt Tanzu Kubernetes Grid ein MachineHealthCheck-Objekt für die Steuerungsebene und ein Objekt für jede Maschinenbereitstellung. Diese Objekte werden im selben Namespace wie der Cluster erstellt.

Wenn Sie den Controller deaktivieren, können Sie ihn mithilfe der in Erstellen oder Aktualisieren eines MachineHealthCheck-Objekts dokumentierten Befehle erneut aktivieren. Mit den Befehlen können Sie auch vorhandene MachineHealthCheck-Objekte aktualisieren.

Erstellen oder Aktualisieren eines MachineHealthCheck-Objekts

Führen Sie die nachfolgenden Schritte aus, um MachineHealthCheck-Objekte für Ihre Cluster zu erstellen oder zu aktualisieren.

  • Klassenbasierte Cluster:

    • So erstellen Sie das MachineHealthCheck-Standardobjekt für die Steuerungsebene eines klassenbasierten Clusters:

      tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME
      
    • So erstellen Sie das MachineHealthCheck-Standardobjekt für die Worker-Knoten eines klassenbasierten Clusters:

      • Führen Sie bei Clustern mit einer Bereitstellung einer einzelnen Maschine den folgenden Befehl aus:

        tanzu cluster machinehealthcheck node set CLUSTER-NAME
        
      • Führen Sie bei Clustern mit Bereitstellungen mehrerer Maschinen den folgenden Befehl für jede Maschinenbereitstellung aus. Dadurch wird das MachineHealthCheck-Standardobjekt für jede Maschinenbereitstellung erstellt.

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

    Dabei gilt:

    • CLUSTER-NAME ist der Name des Zielclusters.
    • MACHINE-DEPLOYMENT-NAME ist der Name der Maschinenbereitstellung. Beispiel: md-0. Wenn Sie den Namen der Maschinenbereitstellung abrufen möchten, führen Sie den Befehl kubectl get cluster CLUSTER-NAME -o yaml aus und suchen Sie dann in der Ausgabe nach spec.topology.workers.machineDeployments.name.
  • Legacy-Cluster:

    • So erstellen Sie das MachineHealthCheck-Standardobjekt für die Steuerungsebene eines Legacy-Clusters:

      tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --mhc-name MHC-NAME
      
    • So erstellen Sie das MachineHealthCheck-Standardobjekt für die Worker-Knoten eines Legacy-Clusters:

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

    Dabei gilt:

    • CLUSTER-NAME ist der Name des Zielclusters.
    • MHC-NAME ist ein Name, den Sie für das MachineHealthCheck-Objekt gewählt haben. Wenn Sie keinen Namen angeben, wird als Name CLUSTER-NAME festgelegt. Wenn Sie beide Befehle ausführen, müssen Sie --mhc-name angeben. Bei klassenbasierten Clustern wird das Flag --mhc-name ignoriert.

Mit den obigen Befehlen können Sie auch angepasste MachineHealthCheck -Objekte erstellen oder vorhandene MachineHealthCheck-Objekte aktualisieren. Wenn Sie ein MachineHealthCheck-Objekt anpassen oder aktualisieren möchten, können Sie eines oder mehrere der nachfolgenden Flags angeben.

Hinweis

Bei diesen Beispielen wird davon ausgegangen, dass Sie Ihre MachineHealthCheck-Einstellungen für einen klassenbasierten Cluster mit einer Bereitstellung einer einzelnen Maschine anpassen oder aktualisieren. Beim Anpassen oder Aktualisieren des MachineHealthCheck-Objekts für die Worker-Knoten eines klassenbasierten Clusters mit Bereitstellungen mehrerer Maschinen müssen Sie das Flag --machine-deployment angeben. Geben Sie bei Legacy-Clustern das Flag --mhc-name wie oben beschrieben an.

  • --match-labels: Diese Option filtert Maschinen nach Bezeichnungsschlüsseln und Werten. Sie können eine oder mehrere Einschränkungen für Bezeichnungen angeben. Das MachineHealthCheck-Objekt wird auf alle Maschinen angewendet, die die angegebenen Einschränkungen erfüllen. Geben Sie die Schlüssel-Wert-Paare im folgenden Format an:

    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: Wenn die Anzahl der fehlerhaften Maschinen den von Ihnen mit diesem Flag festgelegten Wert überschreitet, führt der MachineHealthCheck-Controller keine Standardisierung durch. Die Einstellung --max-unhealthy ist standardmäßig auf 100% festgelegt. Sie können entweder eine absolute Zahl oder einen Prozentsatz für dieses Flag angeben.

    tanzu cluster machinehealthcheck control-plane set CLUSTER-NAME --max-unhealthy "60%"
    tanzu cluster machinehealthcheck node set CLUSTER-NAME --max-unhealthy "60%"
    
  • --node-startup-timeout: Diese Option steuert, wie lange der MachineHealthCheck-Controller auf den Beitritt einer Maschine zum Cluster wartet, ehe die Maschine als fehlerhaft eingestuft wird. Beispiel: In den folgenden Befehlen wird als Einstellung für die Option --node-startup-timeout der Wert 21m festgelegt:

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

    Kann eine Maschine nicht innerhalb des angegebenen Zeitraums zum Cluster hinzugefügt werden, erstellt der MachineHealthCheck-Controller die Maschine neu.

  • --unhealthy-conditions: Mit dieser Option können die Bedingungen Ready, MemoryPressure, DiskPressure, PIDPressure und NetworkUnavailable festgelegt werden. Der MachineHealthCheck-Controller verwendet die Bedingungen, die Sie für die Integritätsüberwachung Ihrer Knoten der Steuerungsebene und Ihrer Worker-Knoten festgelegt haben. Den Status einer Bedingung legen Sie mit True, False oder Unknown fest. Beispiel:

    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"
    

    Im obigen Beispiel werden als Einstellung für die Bedingung Ready die Werte False:5m und Unknown:5m festgelegt. Verbleibt eine Maschine länger als 5m im Status Unknown oder False, stuft der MachineHealthCheck-Controller die Maschine als fehlerhaft ein und erstellt sie neu.

Abrufen eines MachineHealthCheck-Objekts

Führen Sie die nachfolgenden Schritte aus, um MachineHealthCheck-Objekte für Ihre Cluster abzurufen. Bei klassenbasierten Clustern wird das Flag --mhc-name ignoriert.

  • Wenn Sie das MachineHealthCheck-Objekt für die Steuerungsebene des Zielclusters abrufen möchten, führen Sie den folgenden Befehl aus:

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

    Geben Sie das Flag --mhc-name nicht an, wenn das Objekt mit dem Standardnamen erstellt wurde oder wenn Sie einen klassenbasierten Cluster als Ziel verwenden.

  • Wenn Sie das MachineHealthCheck-Objekt für die Worker-Knoten des Zielclusters abrufen möchten, führen Sie den folgenden Befehl aus:

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

    Geben Sie das Flag --mhc-name nicht an, wenn das Objekt mit dem Standardnamen erstellt wurde oder wenn Sie einen klassenbasierten Cluster als Ziel verwenden.

Löschen eines MachineHealthCheck-Objekts

Führen Sie die nachfolgenden Schritte aus, um MachineHealthCheck-Objekte für Ihre Cluster zu löschen.

  • Klassenbasierte Cluster:

    • So löschen Sie das MachineHealthCheck-Objekt für die Steuerungsebene eines klassenbasierten Clusters:

      tanzu cluster machinehealthcheck control-plane delete CLUSTER-NAME
      
    • So löschen Sie das (oder die) MachineHealthCheck-Objekt(e) für die Worker-Knoten eines klassenbasierten Clusters:

      • Führen Sie bei Clustern mit einer Bereitstellung einer einzelnen Maschine den folgenden Befehl aus:

        tanzu cluster machinehealthcheck node delete CLUSTER-NAME
        
      • Führen Sie bei Clustern mit Bereitstellungen mehrerer Maschinen den folgenden Befehl für jede Maschinenbereitstellung aus:

        tanzu cluster machinehealthcheck node delete CLUSTER-NAME --machine-deployment MACHINE-DEPLOYMENT-NAME
        
  • Legacy-Cluster:

    • So löschen Sie das MachineHealthCheck-Objekt für die Steuerungsebene eines Legacy-Clusters:

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

      Geben Sie das Flag --mhc-name nicht an, wenn das Objekt mit dem Standardnamen erstellt wurde.

    • Wenn Sie das MachineHealthCheck-Objekt für die Worker-Knoten eines Legacy-Clusters löschen möchten, führen Sie den folgenden Befehl aus:

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

      Geben Sie das Flag --mhc-name nicht an, wenn das Objekt mit dem Standardnamen erstellt wurde.

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