Auf dieser Seite wird beschrieben, wie Sie die Größe eines GKE On-Prem-Nutzerclusters anpassen. Die Größenanpassung eines Nutzerclusters bedeutet das Hinzufügen oder Entfernen von Knoten aus diesem Cluster. Wenn Sie Knoten aus einem Cluster entfernen, sollten Sie die IP-Adressen dieses Clusters freigeben, damit sie von anderen Knoten verwendet werden können. Für das Hinzufügen von Knoten müssen IP-Adressen für diese Knoten verfügbar sein.
Sie passen die Größe eines Nutzerclusters an, indem Sie die replicas
-Felder im Abschnitt nodePools der Konfigurationsdatei ändern und diese Änderungen mit dem Befehl gkectl update cluster
auf Ihren vorhandenen Cluster anwenden.
Informationen zu Maximal- und Minimallimits für Nutzercluster finden Sie unter Kontingente und Limits.
Weitere Informationen zum Verwalten von Knotenpools mit gkectl update cluster
finden Sie unter Knotenpools erstellen und verwalten.
Prüfen, ob genügend IP-Adressen verfügbar sind
Wenn Sie einem Cluster weitere Knoten hinzufügen, achten Sie darauf, dass der Cluster genügend IP-Adressen hat. Das Prüfen der Verfügbarkeit von genügend IP-Adressen hängt davon ab, ob der Cluster einen DHCP-Server oder statische IP-Adressen verwendet.
DHCP
Wenn der Cluster DHCP verwendet, prüfen Sie, ob der DHCP-Server in dem Netzwerk, in dem die Knoten erstellt werden, über genügend IP-Adressen verfügt. Es sollten mehr IP-Adressen vorhanden sein, als Knoten im Nutzercluster ausgeführt werden.
Statische IP-Adressen
Wenn der Cluster statische IP-Adressen verwendet, überprüft gkectl update cluster
zuerst, ob Sie genügend IP-Adressen im Cluster zugewiesen haben. Wenn nicht, finden Sie in der Fehlermeldung die Anzahl der zusätzlichen IP-Adressen, die für den Aktualisierungsvorgang benötigt werden.
Wenn Sie dem Nutzercluster weitere IP-Adressen hinzufügen müssen, führen Sie die folgenden Schritte aus:
Öffnen Sie die hostconfig-Datei des Nutzerclusters zur Bearbeitung.
So zeigen Sie die für einen Nutzercluster reservierten Adressen an:
kubectl get cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]
-n [USER_CLUSTER_NAME] [USER_CLUSTER_NAME] -o yaml
wobei
- [ADMIN_CLUSTER_KUBECONFIG] weist kubectl an, die kubeconfig-Datei des Administratorclusters zu verwenden, mit der Nutzerclusterkonfigurationen aufgerufen und/oder geändert werden.
-n [USER_CLUSTER_NAME]
weist kubectl an, in einem Namespace zu suchen, der nach dem Nutzercluster benannt ist.[USER_CLUSTER_NAME] -o yaml
teilt kubectl mit, für welchen Nutzercluster Sie den Befehl ausführen.-o yaml
zeigt die Konfiguration des Nutzerclusters an.
Wenn eine der für einen Nutzercluster reservierten Adressen in der hostconfig-Datei enthalten ist, fügen Sie sie zum entsprechenden Block basierend auf
netmask
undgateway
hinzu.Fügen Sie dem entsprechenden Block nach Bedarf weitere statische IP-Adressen hinzu und führen Sie dann gkectl update cluster aus.
Hier sehen Sie eine hostconfig-Datei mit vier hervorgehobenen statischen IP-Blöcken:
hostconfig: dns: 172.16.255.1 tod: 216.239.35.0 blocks: - netmask: 255.255.248.0 gateway: 21.0.135.254 ips: - ip: 21.0.133.41 hostname: user-node-1 - ip: 21.0.133.50 hostname: user-node-2 - ip: 21.0.133.56 hostname: user-node-3 - ip: 21.0.133.47 hostname: user-node-4
Größe eines Nutzerclusters anpassen
Ab 1.5.0 ändern Sie die Größe eines Clusters, indem Sie die Felder replicas
im Abschnitt nodePools der Konfigurationsdatei ändern und diese Änderungen auf Ihren vorhandenen Cluster mit dem Befehl gkectl update cluster anwenden.
Größenanpassung prüfen
Führen Sie folgenden Befehl aus, um zu prüfen, ob die Größenanpassung erfolgreich war:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] describe machinedeployments [NODE_POOL_NAME] | grep Replicas
Dabei ist [USER_CLUSTER_KUBECONFIG] die kubeconfig
-Datei des Nutzerclusters.
Die Anzahl der ausgewählten Knoten sollte in der Ausgabe dieser Befehle angegeben werden.
Fehlerbehebung
Weitere Informationen finden Sie unter Fehlerbehebung.
Anpassen der Größe eines Nutzerclusters schlägt fehl
- Symptome
Ein Vorgang zum Anpassen der Größe eines Nutzerclusters schlägt fehl.
- Mögliche Ursachen
Mehrere Faktoren können dazu führen, dass die Größenanpassung fehlschlägt.
- Lösung
Wenn die Größenanpassung fehlschlägt, führen Sie die folgenden Schritte aus:
Prüfen Sie den MachineDeployment-Status des Clusters, um festzustellen, ob Ereignisse oder Fehlermeldungen vorliegen:
kubectl describe machinedeployments [MACHINE_DEPLOYMENT_NAME]
Prüfen Sie, ob auf den neu erstellten Maschinen Fehler vorliegen:
kubectl describe machine [MACHINE_NAME]
Fehler: "no addresses can be allocated"
- Symptome
Nach der Anpassung der Größe eines Nutzerclusters zeigt
kubectl describe machine [MACHINE_NAME]
den folgenden Fehler an:Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning Failed 9s (x13 over 56s) machineipam-controller ipam: no addresses can be allocated
- Mögliche Ursachen
Für den Nutzercluster sind nicht genügend IP-Adressen verfügbar.
- Lösung
Weisen Sie weitere IP-Adressen für den Cluster zu. Löschen Sie dann die betroffene Maschine:
kubectl delete machine [MACHINE_NAME]
Wenn der Cluster richtig konfiguriert ist, wird eine Ersatzmaschine mit einer IP-Adresse erstellt.
Ausreichende Anzahl von zugewiesenen IP-Adressen, aber Maschine kann sich nicht beim Cluster registrieren
- Symptome
Dem Netzwerk wurden genügend Adressen zugewiesen, aber die Maschine kann sich trotzdem nicht beim Nutzercluster registrieren.
- Mögliche Ursachen:
Möglicherweise liegt ein IP-Adresskonflikt vor. Die IP-Adresse wird eventuell bereits von einer anderen Maschine oder Ihrem Load-Balancer verwendet.
- Lösung
Prüfen Sie, ob die IP-Adresse der betroffenen Maschine nicht schon verwendet wird. Wenn eine Konflikt vorliegt, müssen Sie diesen in Ihrer Umgebung lösen.
Clusterprobleme mit gkectl
diagnostizieren
Verwenden Sie gkectl diagnose
-Befehle, um Clusterprobleme zu identifizieren und Clusterinformationen an Google zu senden. Siehe Clusterprobleme diagnostizieren.
Standard-Logging-Verhalten
Für gkectl
und gkeadm
reicht es aus, die Standard-Logging-Einstellungen zu verwenden:
-
Standardmäßig werden Logeinträge so gespeichert:
-
Für
gkectl
ist die Standard-Logdatei/home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log
. Die Datei ist mit der Dateilogs/gkectl-$(date).log
in dem lokalen Verzeichnis verknüpft, in dem Siegkectl
ausführen. -
Für
gkeadm
ist die Standard-Logdateilogs/gkeadm-$(date).log
im lokalen Verzeichnis, in dem Siegkeadm
ausführen.
-
Für
- Alle Logeinträge werden in der Logdatei gespeichert, auch wenn sie nicht im Terminal ausgegeben werden (wenn
--alsologtostderr
auffalse
gesetzt ist). - Die Ausführlichkeitsstufe
-v5
(Standard) deckt alle Logeinträge ab, die vom Support-Team benötigt werden. - Die Logdatei enthält auch den ausgeführten Befehl und die Fehlermeldung.
Wir empfehlen Ihnen, die Logdatei an das Supportteam zu senden, wenn Sie Hilfe benötigen.
Nicht standardmäßigen Speicherort für die Logdatei angeben
Wenn Sie einen nicht standardmäßigen Speicherort für die Logdatei gkectl
angeben möchten, verwenden Sie das Flag --log_file
. Die von Ihnen angegebene Logdatei wird nicht per Symlink mit dem lokalen Verzeichnis verknüpft.
Wenn Sie einen nicht standardmäßigen Speicherort für die Logdatei gkeadm
angeben möchten, verwenden Sie das Flag --log_file
.
Cluster-API-Logs im Administratorcluster suchen
Wenn eine VM nach dem Start der Administrator-Steuerungsebene nicht gestartet wird, versuchen Sie, dies durch Untersuchen der Logs der Cluster-API-Controller im Administratorcluster zu beheben:
Suchen Sie im Namespace
kube-system
den Namen des Cluster-API-Controller-Pods, wobei [ADMIN_CLUSTER_KUBECONFIG] der Pfad zur kubeconfig-Datei des Administratorclusters ist:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
Öffnen Sie die Logs des Pods, wobei [POD_NAME] der Name des Pods ist. Verwenden Sie optional für die Fehlersuche
grep
oder ein ähnliches Tool:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager
Aktualisierungsbefehl schlägt fehl
Wenn Siegkectl update
zum Aktualisieren eines Clusters ausführen, wird möglicherweise die folgende Fehlermeldung angezeigt:
Failed to update the cluster: failed to begin updating user cluster "CLUSTER_NAME": timed out waiting for the condition
kubectl get --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] onpremusercluster
cluster [CLUSTER_NAME] is READY=true