Automatische Knotenreparatur konfigurieren

Auf dieser Seite wird gezeigt, wie die automatische Knotenreparatur für GKE On-Prem-Cluster aktiviert wird.

Die automatische Reparatur von Knoten erkennt intakte Knoten in einem Cluster kontinuierlich und repariert sie. Die Funktion ist standardmäßig deaktiviert. Sie können dieses Feature während der Erstellung eines Administrator- oder Nutzerclusters aktivieren. Sie können das Feature auch für einen vorhandenen Nutzercluster aktivieren, jedoch nicht für einen vorhandenen Administratorcluster.

Fehlerhafte Störungen

Die folgenden Bedingungen geben an, dass ein Knoten fehlerhaft ist:

  • Die Knotenbedingung NotReady beträgt ca. 10 Minuten true.

  • Der Maschinenstatus lautet Unavailable für etwa zehn Minuten nach dem Erstellen.

  • Der Maschinenstatus ist seit der VM-Erstellung etwa 30 Minuten lang nicht Available.

  • Es gibt kein Knotenobjekt (nodeRef ist null), das einer Maschine im Status Available ungefähr 10 Minuten entspricht.

Reparaturstrategie

GKE On-Prem initiiert eine Reparatur auf einem Knoten, wenn der Knoten mindestens eine der Bedingungen in der obigen Liste erfüllt.

Durch die Reparatur wird der fehlerhafte Knoten geleert und eine neue VM erstellt. Wenn der Knotensausgleich eine Stunde lang fehlschlägt, wird bei der Reparatur der Verbindungsausgleich erzwungen und die angehängten verwalteten Kubernetes-Laufwerke werden getrennt voneinander entfernt.

Wenn sich mehrere fehlerhafte Knoten im selben MachineDeployment befinden, wird die Reparatur nur auf einem dieser Knoten durchgeführt.

Konfigurationsdateien für v1-Cluster

Um die automatische Knotenreparatur zu aktivieren, müssen Sie eine v1-Konfigurationsdatei verwenden, entweder die Konfigurationsdatei für den v1-Administratorcluster oder die Konfigurationsdatei für den Clustercluster v1 Die automatische Knotenreparatur wird in der v0-Konfigurationsdatei nicht unterstützt.

Automatische Knotenreparatur für einen neuen Cluster aktivieren

Legen Sie in der Clusterkonfigurationsdatei Admin oder User den Wert autoRepair.enabled auf true fest:

autoRepair:
  enabled: true

Fahren Sie mit den Schritten zum Erstellen eines Admin- oder Nutzerclusters fort.

Automatische Knotenreparatur für einen vorhandenen Nutzercluster aktivieren:

Legen Sie in der Konfigurationsdatei für Nutzercluster autoRepair.enabled auf true fest:

autoRepair:
  enabled: true

Aktualisieren Sie den Cluster:

gkectl update cluster --config USER_CLUSTER_CONFIG --kubeconfig ADMIN_KUBECONFIG

Dabei gilt:

  • USER_CLUSTER_CONFIG: Pfad Ihrer Nutzercluster-Konfigurationsdatei

  • ADMIN_KUBECONFIG: Pfad der Datei "kubeconfig" Ihres Administratorclusters

Automatische Knotenreparatur für einen Nutzercluster deaktivieren

Legen Sie in der Konfigurationsdatei für Nutzercluster autoRepair.enabled auf false fest:

autoRepair:
  enabled: false

Aktualisieren Sie den Cluster:

gkectl update cluster --config USER_CLUSTER_CONFIG --kubeconfig ADMIN_KUBECONFIG

Automatische Knotenreparatur für Administratorcluster deaktivieren

Wenn Sie die automatische Knotenreparatur für einen Administratorcluster deaktivieren möchten, löschen Sie das Deployment cluster-health-controller:

kubectl --kubeconfig ADMIN_KUBECONFIG] delete deployment cluster-health-controller --namespace kube-system

Fehlerbehebung bei der automatischen Reparatur von Knoten

Sie können Probleme mit der automatischen Knotenreparatur untersuchen, indem Sie die Maschinen- und Knotenobjekte im Administratorcluster beschreiben. Beispiel:

Listen Sie die Maschinenobjekte auf:

kubectl --kubeconfig kubeconfig get machines

Ausgabe:

default     gke-admin-master-wc
default     gke-admin-node-7458969ff8-5cg8d
default     gke-admin-node-7458969ff8-svqj7
default     xxxxxx-user-cluster-41-25j8d-567f9c848f-fwjqt

Beschreiben Sie eines der Maschinenobjekte:

kubectl --kubeconfig kubeconfig describe machine gke-admin-master-wcbrj

Suchen Sie in der Ausgabe nach Ereignissen aus cluster-health-controller.

Ebenso können Sie Knotenobjekte auflisten und beschreiben. Beispiel:

kubectl --kubeconfig kubeconfig get nodes
...
kubectl --kubeconfig kubeconfig describe node gke-admin-master-wcbrj

Manuelle Knotenreparatur

Bei Knotenproblemen, die nicht durch die automatische Reparaturlogik abgedeckt sind oder die automatische Reparatur für Knoten nicht aktiviert ist, können Sie eine manuelle Reparatur durchführen. Dadurch wird der Knoten gelöscht und neu erstellt.

Rufen Sie den Namen des Maschinenobjekts ab, das dem Knoten entspricht:

kubectl --kubeconfig KUBECONFIG get machines

Ersetzen Sie KUBECONFIG durch den Pfad der Kubeconfig-Datei des Administrator- oder Nutzerclusters.

Fügen Sie dem Maschinenobjekt die Anmerkung repair hinzu:

kubectl annotate --kubeconfig KUBECONFIG machine MACHINE_NAME onprem.cluster.gke.io/repair-machine=true

Ersetzen Sie MACHINE_NAME durch den Namen des Maschinenobjekts.

Löschen Sie das Maschinenobjekt:

kubectl delete --kubeconfig KUBECONFIG machine MACHINE_NAME