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 Minutentrue
.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