Knoten in einem Cluster hinzufügen oder entfernen

In Anthos-Cluster on Bare Metal können Sie Knoten in einem Cluster hinzufügen oder entfernen, indem Sie die Knotenpooldefinitionen des Clusters bearbeiten. Sie können diese Definitionen mit dem Befehl kubectl ändern.

Es gibt drei verschiedene Arten von Knotenpools in Anthos-Cluster on Bare Metal: Steuerungsebene, Load-Balancer und Worker-Knotenpools. Sie bearbeiten die Knoten der Steuerungsebene und des Load-Balancers anhand der Definitionen in den zugehörigen Clusterressourcen, während Sie die Knotenpooldefinitionen bearbeiten.

Knotenstatus ansehen

Mit dem Befehl kubectl get können Sie den Status von Knoten und den zugehörigen Knotenpools anzeigen lassen.

Der folgende Befehl zeigt beispielsweise den Status der Knotenpools im Cluster-Namespace my-cluster an:

  kubectl -n my-cluster get nodepools.baremetal.cluster.gke.io
  

Das System gibt Ergebnisse ähnlich der folgenden:

  NAME                    READY   RECONCILING   STALLED   UNDERMAINTENANCE   UNKNOWN
  my-cluster              3       0             0         0                  0
  my-cluster-lb           2       0             0         0                  0
  np1                     3       0             0         0                  0

Weitere Informationen zur Diagnose Ihrer Cluster finden Sie unter Cluster diagnostizieren und zurücksetzen.

Knoten ändern

Die meisten Knotenänderungen werden in der Clusterkonfigurationsdatei angegeben, die dann auf den Cluster angewendet wird. Wir empfehlen die Verwendung der Cluster-Konfigurationsdatei als primäre Quelle für die Aktualisierung des Clusters. Es empfiehlt sich, die Konfigurationsdatei in einem Versionsverwaltungssystem zu speichern, um Änderungen für die Fehlerbehebung zu verfolgen. Beachten Sie, dass der Befehl bmctl update nur für eigenständige Cluster unterstützt wird. Bei Administrator-, Nutzer- und Hybridclustern verwenden Sie kubectl apply, um den Cluster mit Ihren Knotenpooländerungen zu aktualisieren.

Die Anthos-Cluster auf Bare-Metal-Clusterkonfigurationsdatei enthält einen Header-Abschnitt mit Anmeldedaten. Die Anmeldedateneinträge und der Rest der Konfigurationsdatei sind gültiges YAML, aber die Anmeldedaten sind für die Clusterressource nicht gültig. Entfernen Sie die Pfadeinträge des Anmeldedatenschlüssels, z. B. gcrKeyPath und sshPrivateKeyPath, bevor Sie kubectl apply verwenden. Verwenden Sie bmctl update credentials für die Aktualisierung von Anmeldedaten.

Alternativ können Sie die Clusterressource mit kubectl edit direkt ändern. Beispiel:

  kubectl edit cluster -n CLUSTER_NAMESPACE CLUSTER_NAME

In den folgenden Abschnitten werden einige wichtige Unterschiede bei der Aktualisierung bestimmter Knotentypen beschrieben.

Knoten der Steuerungsebene und der Load-Balancer

Die Steuerungsebene- und Load-Balancer-Knotenpoolspezifikationen für Anthos-Cluster auf Bare-Metal sind spezifisch. Diese Spezifikationen deklarieren und steuern wichtige Clusterressourcen. Die kanonische Quelle für diese Ressourcen sind die entsprechenden Abschnitte in der Cluster-Konfigurationsdatei:

  • spec.controlPlane.nodePoolSpec
  • spec.LoadBalancer.nodePoolSpec

Zum Hinzufügen oder Entfernen von Steuerungsebenen- oder Load-Balancer-Knoten bearbeiten Sie das Array von Adressen im korrespondierenden Abschnitt der Clusterkonfigurationsdatei unter nodes.

Bei einer Hochverfügbarkeitskonfiguration ist eine ungerade Anzahl von Knotenpools (drei oder mehr) der Steuerungsebene erforderlich, um ein Quorum zu erstellen. So wird sichergestellt, dass bei einem Ausfall einer Steuerungsebene auch andere übernommen werden. Wenn Sie vorübergehend eine gerade Anzahl von Knoten haben, während Sie Knoten zur Wartung oder zum Austausch hinzufügen oder entfernen, hält Ihre Bereitstellung HA aufrecht, solange Sie genügend Quorum haben.

Worker-Knoten

Mit dem Befehl kubectl können Sie Worker-Knoten direkt hinzufügen oder entfernen. Worker-Knotenpools müssen mindestens einen gewünschten Knoten haben.

Im folgenden Beispiel löscht der Befehl einen Knotenpool namens np1, wobei die Variable für den Cluster-Namespace my-cluster lautet:

  kubectl -n my-cluster delete nodepool np1
  

Die Größe von Knotenpools kann auch geändert werden, wenn Sie das spec.nodes-Array von Adressen bearbeiten.

Beachten Sie, dass nach dem Entfernen von Knoten aus einem Cluster zuerst alle Pods entleert werden. Knoten können nicht aus dem Cluster entfernt werden, wenn Pods nicht auf anderen Knoten neu geplant werden können. Beim Entfernen von Knoten wird der Knoten nur aus der Steuerungsebene entfernt. Der Inhalt des Knotens wird nicht zurückgesetzt.

Mit dem folgenden kubectl edit-Befehl können Sie Änderungen für den Cluster-Namespace my-cluster und den Knotenpool np1 bearbeiten und anschließend festschreiben:

  kubectl -n my-cluster edit nodepool np1