Eine hohe Nutzung der etcd-Datenbank kann zu Clusterinstabilität und Ressourcenknappheit führen, die eine effektive Skalierung Ihrer Google Kubernetes Engine-Cluster (GKE-Cluster) verhindern.
In diesem Dokument erfahren Sie, wie Sie Cluster identifizieren, in denen die etcd-Nutzung das Limit erreicht, und Empfehlungen zum Freigeben von Speicherplatz finden, damit Ihr Cluster stabil bleibt.
Diese Informationen sind wichtig für Plattformadministratoren und ‑operatoren, die für die Aufrechterhaltung der Integrität und Skalierbarkeit von GKE-Clustern verantwortlich sind. Weitere Informationen zu den gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.
In diesem Dokument wird die Fehlerbehebung bei Problemen mit der Clusterstabilität aufgrund einer hohen etcd-Nutzung behandelt. Wenn ein anderes Skalierbarkeitsproblem auftritt, helfen Ihnen möglicherweise die folgenden Dokumente weiter:
Probleme mit dem Cluster Autoscaler:
- Informationen zur Fehlerbehebung, wenn keine neuen Knoten hinzugefügt werden, finden Sie unter Fehlerbehebung, wenn Cluster Autoscaler nicht hochskaliert.
- Informationen zur Fehlerbehebung, wenn unterlastete Knoten nicht entfernt werden, finden Sie unter Fehlerbehebung, wenn Cluster Autoscaler nicht herunterskaliert.
Probleme mit dem horizontalen Pod-Autoscaler: Informationen zur Fehlerbehebung, wenn Ihr horizontaler Pod-Autoscaler nicht funktioniert, finden Sie unter Fehlerbehebung beim horizontalen Pod-Autoscaling.
Autopilot-Skalierungsprobleme: Weitere Informationen zu Autopilot-spezifischen Problemen, einschließlich Problemen im Zusammenhang mit der Skalierung, finden Sie unter Fehlerbehebung bei Autopilot-Clustern.
Cluster identifizieren, in denen die etcd-Nutzung sich dem Limit nähert
GKE bietet Statistiken und Empfehlungen für den Fall, dass die etcd-Nutzung sich dem Limit nähert. So finden Sie diese Statistiken und Empfehlungen:
- Verwenden Sie die Google Cloud Console. Rufen Sie die Seite Kubernetes-Cluster auf. Suchen Sie in der Spalte Benachrichtigungen nach der Empfehlung Geben Sie Speicherplatz frei, um das Risiko von Clusterinstabilität zu verringern.
Verwenden Sie die gcloud CLI oder die Recommender API und geben Sie den Recommender-Untertyp
ETCD_DB_USAGE_APPROACHING_LIMIT
an.Führen Sie den folgenden Befehl aus, um diese Empfehlung abzufragen:
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:ETCD_DB_USAGE_APPROACHING_LIMIT"
Um diese Empfehlung umzusetzen, entfernen Sie alle nicht benötigten Daten aus etcd, um Speicherplatz freizugeben. Dazu gehört möglicherweise das Löschen alter Ressourcen oder das Verschieben großer Objekte aus etcd. Weitere Informationen finden Sie unter Für große GKE-Cluster planen.
Cluster identifizieren, in denen die Speichernutzung pro Objekttyp sich dem Limit nähert
GKE bietet Informationen und Empfehlungen für das Szenario, in dem die Gesamtgröße der etcd-Objekte pro Typ sich dem Limit nähert. So finden Sie diese Statistiken und Empfehlungen:
- Verwenden Sie die Google Cloud Console. Rufen Sie die Seite Kubernetes-Cluster auf. Suchen Sie in der Spalte Benachrichtigungen nach der Empfehlung Größe der Ressourcentypen reduzieren.
Verwenden Sie die gcloud CLI oder die Recommender API und geben Sie den Recommender-Untertyp
APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT
an.Führen Sie den folgenden Befehl aus, um diese Empfehlung abzufragen:
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT"
Mit kubectl können Sie die Objekte auflisten, um zu entscheiden, welche entfernt werden sollen. Wenn ConfigMaps beispielsweise das Speicherlimit erreichen, gibt der folgende Befehl alle ConfigMaps in allen Namespaces aus, sodass Sie Kandidaten für das Löschen identifizieren können:
kubectl get configmaps --all-namespaces > new_file.txt
Um diese Empfehlung umzusetzen und Speicherplatz freizugeben, entfernen Sie alle unnötigen Objekte der angegebenen Typen aus dem Speicher. Dazu gehört möglicherweise das Löschen alter Ressourcen oder das Verschieben großer Objekte aus dem Speicher. Weitere Informationen finden Sie unter Für große GKE-Cluster planen.
Nächste Schritte
Wenn Sie in der Dokumentation keine Lösung für Ihr Problem finden, lesen Sie den Abschnitt Support erhalten. Dort finden Sie weitere Hilfe, z. B. zu den folgenden Themen:
- Sie können eine Supportanfrage erstellen, indem Sie sich an den Cloud Customer Care wenden.
- Support von der Community erhalten, indem Sie Fragen auf Stack Overflow stellen und mit dem Tag
google-kubernetes-engine
nach ähnlichen Problemen suchen. Sie können auch dem#kubernetes-engine
-Slack-Kanal beitreten, um weiteren Community-Support zu erhalten. - Sie können Fehler melden oder Funktionsanfragen stellen, indem Sie die öffentliche Problemverfolgung verwenden.