Auf dieser Seite wird beschrieben, wie Sie häufige Fehler beheben können, die beim Registrieren von Clustern in einer Flotte oder beim Herstellen einer Verbindung zu Clustern außerhalb von Google Cloud über die Google Cloud Console, die Google Cloud CLI oder kubectl
über das Connect-Gateway.
Lokale Cluster und Cluster in anderen öffentlichen Clouds sind auf den Connect Agent angewiesen, um eine Verbindung zwischen dem Cluster und Ihrem Google Cloud-Projekt herzustellen und aufrechtzuerhalten sowie Kubernetes-Anfragen zu verarbeiten. Wenn Fehler wie "Nicht erreichbarer Agent" oder "Fehler beim Herstellen einer Verbindung zur Steuerungsebene des Clusters" angezeigt werden, kann dies auf ein Problem mit dem Connect Agent hinweisen.
Connect-Agent-Logs erfassen
Wenn Sie einen Cluster außerhalb von Google Cloud registrieren, wird der Connect Agent verwendet, um die Kommunikation zwischen Ihrem Cluster und Ihrem Fleet-Hostprojekt zu verarbeiten. Der Connect-Agent ist ein Deployment (gke-connect-agent
), das normalerweise in Ihrem Cluster im Namespace gke-connect
installiert wird. Das Erfassen von Logs von diesem Connect-Agent kann nützlich sein, um Probleme bei der Registrierung und Verbindung zu beheben.
Sie können die Logs des Agents mit dem folgenden Befehl abrufen (falls erforderlich, die Anzahl der Zeilen anpassen):
kubectl logs -n gke-connect -l app=gke-connect-agent --tail=-1
So rufen Sie Informationen zu jedem Connect-Agent ab, der in Ihren Projektclustern ausgeführt wird:
kubectl describe deployment --all-namespaces -l app=gke-connect-agent
Eine erfolgreiche Verbindung sollte Einträge wie im folgenden Beispiel haben:
2019/02/16 17:28:43.312056 dialer.go:244: dialer: dial: connected to gkeconnect.googleapis.com:443 2019/02/16 17:28:43.312279 tunnel.go:234: serve: opening egress stream... 2019/02/16 17:28:43.312439 tunnel.go:248: serve: registering endpoint="442223602236", shard="88d2bca5-f40a-11e8-983e-42010a8000b2" {"Params":{"GkeConnect":{"endpoint_class":1,"metadata":{"Metadata":{"Default":{"manifest_version":"234227867"}}}}}} ... 2019/02/16 17:28:43.312656 tunnel.go:259: serve: serving requests...
GKE Identity Service-Logs erfassen
Die Überprüfung der GKE Identity Service-Logs kann hilfreich sein, wenn Sie Probleme mit Google Groups oder dem Drittanbieter-Support für das Connect-Gateway haben. Diese Methode zum Generieren von Logs gilt nur für GKE on VMware- oder Google Distributed Cloud Virtual for Bare Metal-Cluster.
Erhöhen Sie die Ausführlichkeit der GKE Identity Service-Logs. Bearbeiten Sie dazu die benutzerdefinierte Ressource "clientconfig" mit dem folgenden Befehl:
kubectl edit deployment -n anthos-identity-service
Außerdem fügen Sie unter dem Feld
containers
das Flagvmodule
hinzu:spec: containers: ... - command: - --vmodule=cloud/identity/hybrid/charon/*=9
Starten Sie den GKE Identity Service-Pod neu, indem Sie ihn mit dem folgenden Befehl löschen:
kubectl delete pods -l k8s-app=ais -n anthos-identity-service
Ein Pod sollte innerhalb weniger Sekunden wieder aktiviert werden.
Führen Sie nach dem Neustart des Pods den ursprünglichen Befehl aus, der eine unerwartete Antwort zurückgegeben hat, um die Pod-Logs von GKE Identity Service mit weiteren Details zu füllen.
Speichern Sie die Ausgabe dieser Logs mit dem folgenden Befehl in einer Datei:
kubectl logs -l k8s-app=ais -n anthos-identity-service --tail=-1 > gke_id_service_logs.txt
Wenn die erwarteten Gruppen in den Pod-Logs von GKE Identity Service fehlen, prüfen Sie, ob die Clustereinrichtung korrekt ist. Weitere Informationen zu Problemen mit GKE Identity Service finden Sie unter Fehlerbehebung bei Problemen mit dem Nutzerzugriff oder Probleme mit der Einrichtung auf Flottenebene beheben.
tls: oversized record
Fehler
- Symptom
Ein Fehler wie der folgende kann auftreten:
... dialer: dial: connection to gkeconnect.googleapis.com:443 failed after 388.080605ms: serve: egress call failed: rpc error: code = Unauthenticated desc = transport: oauth2: cannot fetch token: Post https://oauth2.googleapis.com/token: proxyconnect tcp: tls: oversized record received with length 20527
- Mögliche Ursachen
Das bedeutet, dass der Connect-Agent versucht, über HTTPS eine Verbindung mit einem HTTP-Proxy herzustellen. Der Connect-Agent unterstützt nur CONNECT-basierte HTTP-Proxys.
- Lösung
Sie müssen Ihre Proxy-Umgebungsvariablen so neu konfigurieren:
http_proxy=http://[PROXY_URL]:[PROXY_PORT] https_proxy=http://[PROXY_URL]:[PROXY_PORT]
oauth2: cannot fetch token
Fehler
- Symptom
Ein Fehler wie der folgende kann auftreten:
... dialer: dial: connection to gkeconnect.googleapis.com:443 failed after 388.080605ms: serve: egress call failed: rpc error: code = Unauthenticated desc = transport: oauth2: cannot fetch token: Post https://oauth2.googleapis.com/token: read tcp 192.168.1.40:5570->1.1.1.1:80 read: connection reset by peer
- Mögliche Ursachen:
Dies kann bedeuten, dass der Upstream-HTTP-Proxy die Verbindung zurücksetzt, höchstwahrscheinlich, weil diese bestimmte URL von Ihrem HTTP-Proxy nicht zugelassen wird. Im obigen Beispiel ist 1.1.1.1:80 die HTTP-Proxyadresse.
- Lösung
Achten Sie darauf, dass Ihre HTTP-Proxy-allowlist die folgenden URLs/Domains enthält:
gkeconnect.googleapis.com oauth2.googleapis.com/token www.googleapis.com/oauth2/v1/certs
Fehler beim Absturz und Neustart des Connect Agent-Pods
- Symptom
In der Google Cloud Console können für Ihren Cluster zeitweise Fehler vom Typ „Nicht erreichbarer Agent“ auftreten und/oder der Pod wurde mehrmals neu gestartet:
$ kubectl get pods -n gke-connect NAME READY STATUS RESTARTS AGE gke-connect-agent-20230706-03-00-6b8f75dd58-dzwmt 1/1 Running 5 99m
Um dieses Verhalten zu beheben, beschreiben Sie den Pod, um festzustellen, ob sein letzter Status aufgrund eines Fehlers aufgrund fehlenden Arbeitsspeichers (OOMKilled) beendet wurde:
kubectl describe pods/gke-connect-agent-20230706-03-00-6b8f75dd58-dzwmt -n gke-connect
<some details skipped..>
Last State: Terminated
Reason: OOMKilled
- Mögliche Ursachen
- Connect-Agent-Pods haben standardmäßig ein 256-MiB-RAM-Limit. Wenn im Cluster viele Arbeitslasten installiert sind, können einige Anfragen und Antworten nicht wie erwartet verarbeitet werden.
- Lösung
Aktualisieren Sie die Bereitstellung des Connect-Agents und gewähren Sie ihm ein höheres Speicherlimit. Beispiel:
containers: name: gke-connect-agent-20230706-03-00 resources: limits: memory: 512Mi
PermissionDenied
Fehler
- Symptom
Ein Fehler wie der folgende kann auftreten:
tunnel.go:250: serve: recv error: rpc error: code = PermissionDenied desc = The caller does not have permission dialer.go:210: dialer: dial: connection to gkeconnect.googleapis.com:443 failed after 335.153278ms: serve: receive request failed: rpc error: code = PermissionDenied desc = The caller does not have permission dialer.go:150: dialer: connection done: serve: receive request failed: rpc error: code = PermissionDenied desc = The caller does not have permission dialer.go:228: dialer: backoff: 1m14.1376766s
- Mögliche Ursachen
Dies bedeutet möglicherweise, dass Sie die erforderliche Rolle der Identitäts- und Zugriffsverwaltung (IAM) nicht an das Google Cloud-Dienstkonto gebunden haben, das Sie erstellt haben, um den Connect-Agent für die Verbindung mit Google zu autorisieren. Das Google Cloud-Dienstkonto erfordert die IAM-Rolle
gkehub.connect
Dies kann auch auftreten, wenn Sie das Google Cloud-Dienstkonto mit demselben Namen löschen und neu erstellen. Sie müssen in diesem Fall auch die IAM-Rollenbindung löschen und neu erstellen. Weitere Informationen finden Sie unter Dienstkonten löschen und neu erstellen.
- Lösung
Binden Sie die
gkehub.connect
-Rolle an Ihr Dienstkonto. Die Rollegkehub.admin
hat nicht die erforderlichen Berechtigungen für die Verbindung und ist nicht für die Verwendung durch Dienstkonten vorgesehen.Für ein Projekt mit dem Namen
my-project
und ein Google Cloud-Dienstkonto namensgkeconnect@my-project.iam.gserviceaccount.com
, führen Sie den folgenden Befehl aus, um die Rolle an das Dienstkonto zu binden:gcloud projects add-iam-policy-binding my-project --member \ serviceAccount:gkeconnect@my-project.iam.gserviceaccount.com \ --role "roles/gkehub.connect"
Sie können die Dienstkontoberechtigungen, die auf ein Google Cloud-Dienstkonto angewendet wurden, aufrufen und überprüfen, indem Sie die Ausgabe des folgenden Befehls prüfen. Danach sollten Sie sehen, dass
role: roles/gkehub.connect
an das verknüpfte Google- Cloud-Dienstkonto.gcloud projects get-iam-policy my-project
Fehler beim Binden der IAM-Rolle an das Google Cloud-Dienstkonto
- Symptom
Ein Fehler wie der folgende kann auftreten:
ERROR: (gcloud.projects.add-iam-policy-binding) PERMISSION_DENIED: Service Management API has not been used in project [PROJECT_ID] before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/servicemanagement.googleapis.com/overview?project=[PROJECT_ID] then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
- Mögliche Ursachen
Möglicherweise haben Sie nicht die IAM-Berechtigungen zum Ausführen des Befehls
gcloud projects add-iam-policy-binding
.- Lösung
Sie benötigen die Berechtigung
resourcemanager.projects.setIamPolicy
. Wenn Sie die RollenProject IAM Admin
,Owner
oderEditor
haben, sollten Sie den Befehl ausführen können. Wenn Sie durch eine interne Sicherheitsrichtlinie den Befehl nicht ausführen können, wenden Sie sich an Ihren Administrator.
Fehler aufgrund eines ungültigen Dienstkontoschlüssels
- Symptom
Ein Fehler wie der folgende kann auftreten:
2020/05/08 01:22:21.435104 environment.go:214: Got ExternalID 3770f509-b89b-48c4-96e0-860bb70b3a58 from namespace kube-system. 2020/05/08 01:22:21.437976 environment.go:485: Using gcp Service Account key 2020/05/08 01:22:21.438140 gkeconnect_agent.go:50: error creating kubernetes connect agent: failed to get tunnel config: unexpected end of JSON input
- Mögliche Ursachen
Diese Logs weisen darauf hin, dass dem Connect-Agent während der Installation ein ungültiger Dienstkontoschlüssel bereitgestellt wurde.
- Lösung
Erstellen Sie eine neue JSON-Datei mit Anmeldedaten für das Dienstkonto und führen Sie die Schritte zum Registrieren eines Clusters aus, um den Connect-Agent neu zu installieren.
Fehler aus abgelaufenem Dienstkontoschlüssel
- Symptom
Ein Fehler wie der folgende kann auftreten:
2020/05/08 01:22:21.435104 dialer.go:277: dialer: dial: connection to gkeconnect.googleapis.com:443 failed after 37.901608ms: serve: egress call failed: rpc error: code = Unauthenticated desc = transport: oauth2: cannot fetch token: 400 Bad Request Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}
- Mögliche Ursachen
Diese Logs zeigen an, dass der Connect-Agent Connect mit einem problematischen Dienstkontoschlüssel gewählt hat, der vom Google-Authentifizierungsdienst nicht akzeptiert wird. Die Schlüsseldatei des Dienstkontos ist möglicherweise beschädigt oder der Schlüssel ist abgelaufen.
Wie Sie prüfen, ob der Schlüssel abgelaufen ist, können Sie in der Google Cloud Console auf der Detailseite eines Dienstkontos ermitteln. In einigen Fällen hat Ihr Projekt oder Ihre Organisation eine spezielle Richtlinie, für die ein Dienstkonto standardmäßig nur eine kurze Lebensdauer hat.
- Lösung
Erstellen Sie eine neue JSON-Datei mit Anmeldedaten für das Dienstkonto und führen Sie die Schritte zum Registrieren eines Clusters aus, um den Connect-Agent neu zu installieren.
Fehler aufgrund verzerrter Systemuhr
- Symptom
Ein Fehler wie der folgende kann auftreten:
acceptCall: failed to parse token in req [rpc_id=1]: Token used before issued [rpc_id=1]
- Mögliche Ursachen
Die Lognachricht gibt normalerweise an, dass der Cluster eine Zeitverzerrung aufweist. Das vom Cluster ausgestellte Token hat einen abweichenden Zeitstempel, daher wird das Token abgelehnt.
- Lösung
Prüfen Sie, ob die Uhr nicht richtig synchronisiert wird. Sie können den
date
-Befehl auf Ihrem Cluster ausführen und ihn mit der Standardzeit vergleichen. Normalerweise tritt das Problem innerhalb weniger Sekunden auf. Um dieses Problem zu beheben, müssen Sie die Clusteruhr noch einmal synchronisieren.
Arbeitslasten werden in der Google Cloud Console nicht angezeigt
- Symptome
In den Connect-Agent-Logs tritt möglicherweise folgende Fehler auf:
"https://10.0.10.6:443/api/v1/nodes" YYYY-MM-DDTHH mm:ss.sssZ http.go:86: GET "https://10.0.10.6:443/api/v1/pods" YYYY-MM-DDTHH mm:ss.sssZ http.go:139: Response status: "403 Forbidden" YYYY-MM-DDTHH mm:ss.sssZ http.go:139: Response status: "403 Forbidden"`
- Mögliche Ursachen
Diese Logs zeigen an, dass Google Cloud versucht, mit den Anmeldedaten, die Sie bei der Registrierung angegeben haben, auf den Cluster zuzugreifen. 403-Fehler zeigen an, dass die Anmeldedaten nicht die erforderlichen Berechtigungen für den Zugriff auf den Cluster haben.
- Lösung
Überprüfen Sie, ob das Token und das Konto, an das es gebunden ist, vorhanden sind, und achten Sie darauf, dass es über die entsprechenden Berechtigungen für den Cluster verfügt.
Kontextfrist überschritten
- Symptom
Ein Fehler wie der folgende kann auftreten:
2019/03/06 21:08:43.306625 dialer.go:235: dialer: dial: connecting to gkeconnect.googleapis.com:443... 2019/03/06 21:09:13.306893 dialer.go:240: dialer: dial: unable to connect to gkeconnect.googleapis.com:443: context deadline exceeded 2019/03/06 21:09:13.306943 dialer.go:183: dialer: connection done: context deadline exceeded
- Mögliche Ursachen
Dieser Fehler gibt ein Low-Level-TCP-Netzwerkproblem an, bei dem der Connect-Agent nicht mit gkeconnect.googleapis.com kommunizieren kann.
- Lösung
Prüfen Sie, ob Pod-Arbeitslasten in diesem Cluster aufgelöst werden können und ausgehende Verbindungen zu gkeconnect.googleapis.com über Port 443 haben.
Verbindung mit Agent unterbrochen
- Symptome
In den Connect-Agent-Logs tritt möglicherweise folgende Fehler auf:
2020/10/06 18:02:34.409749 dialer.go:277: dialer: dial: connection to gkeconnect.googleapis.com:443 failed after 8m0.790286282s: serve: receive request failed: rpc error: code = Unavailable desc = transport is closing 2020/10/06 18:02:34.416618 dialer.go:207: dialer: connection done: serve: receive request failed: rpc error: code = Unavailable desc = transport is closing 2020/10/06 18:02:34.416722 dialer.go:295: dialer: backoff: 978.11948ms 2020/10/06 18:02:34.410097 tunnel.go:651: sendResponse: EOF [rpc_id=52] 2020/10/06 18:02:34.420077 tunnel.go:651: sendResponse: EOF [rpc_id=52] 2020/10/06 18:02:34.420204 tunnel.go:670: sendHalfClose: EOF [rpc_id=52] 2020/10/06 18:02:34.401412 tunnel.go:670: sendHalfClose: EOF [rpc_id=53]
- Mögliche Ursachen
Die Verbindung mit Connect wird getrennt, wenn Connect Agent nicht genügend Ressourcen hat, z. B. auf kleineren AWS EC2-Instanzen wie
t3.medium
.- Lösung
Wenn Sie AWS und den T3-Instanztyp verwenden, aktivieren Sie T3 unbegrenzt oder verwenden Sie einen Instanztyp mit mehr Ressourcen. für Ihre Knotenpools.
Fleet kann nicht auf das Projekt zugreifen
- Symptome
Bei einigen Fleet-Vorgängen (normalerweise Cluster-Registrierung) wird möglicherweise ein Fehler wie der folgende angezeigt:
ERROR: (gcloud.container.hub.memberships.register) failed to initialize Feature "authorizer", the fleet service account (service-PROJECT_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com) may not have access to your project
- Mögliche Ursachen
Die Verknüpfung des Fleet-Standarddienstkontos
gcp-sa-gkehub
mit einem Projekt kann versehentlich aufgehoben werden. Der Fleet-Dienstagent ist eine IAM-Rolle, mit der dem Dienstkonto die Berechtigungen zum Verwalten von Clusterressourcen erteilt werden. Wenn Sie diese Rollenbindung aus dem Dienstkonto entfernen, wird die Verknüpfung des Standarddienstkontos mit dem Projekt aufgehoben. Dies kann verhindern, dass Sie Cluster und andere Clustervorgänge registrieren können.Mit der gcloud CLI oder der Google Cloud Console können Sie prüfen, ob das Dienstkonto aus Ihrem Projekt entfernt wurde. Wenn im Befehl oder im Dashboard unter Ihren Dienstkonten
gcp-sa-gkehub
nicht angezeigt wird, wurde die Verknüpfung mit dem Dienstkonto aufgehoben.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud projects get-iam-policy PROJECT_NAME
Dabei ist PROJECT_NAME
der Name des Projekts, in dem Sie den Cluster registrieren möchten.
Console
Öffnen Sie in der Google Cloud Console die Seite IAM und Verwaltung.
- Lösung
Wenn Sie die Rollenbindung des Fleet-Dienst-Agents entfernt haben, führen Sie die folgenden Befehle aus, um die Rollenbindung wiederherzustellen:
PROJECT_NUMBER=$(gcloud projects describe PROJECT_NAME --format "value(projectNumber)") gcloud projects add-iam-policy-binding PROJECT_NAME \ --member "serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-gkehub.iam.gserviceaccount.com" \ --role roles/gkehub.serviceAgent
Mit dem folgenden Befehl bestätigen Sie, dass die Rollenbindung erteilt wurde:
gcloud projects get-iam-policy PROJECT_NAME
Wenn der Name des Dienstkontos zusammen mit der Rolle
gkehub.serviceAgent
angezeigt wird, wurde die Rollenbindung erteilt. Beispiel:- members: - serviceAccount:service-1234567890@gcp-sa-gkehub.iam.gserviceaccount.com role: roles/gkehub.serviceAgent
Fehler bei der Registrierung eines GKE-Clusters in einem anderen Projekt als Fleet
- Symptome
Wenn Sie einen GKE-Cluster von einem anderen Projekt als dem Fleet-Projekt registrieren, wird in der gcloud CLI möglicherweise ein Fehler wie der folgende angezeigt:
... message: 'DeployPatch failed'> detail: 'DeployPatch failed' ...
Sie können dies in Logging prüfen, indem Sie die folgenden Filter anwenden:
resource.type="gke_cluster" resource.labels.cluster_name="my-cluster" protoPayload.methodName="google.container.v1beta1.ClusterManager.UpdateCluster" protoPayload.status.code="13" protoPayload.status.message="Internal error." severity=ERROR
- Mögliche Ursachen
Das Fleet-Standarddienstkonto hat nicht die erforderlichen Berechtigungen im Projekt des GKE-Clusters.
- Lösung
Weisen Sie dem Fleet-Standarddienstkonto die erforderlichen Berechtigungen zu, bevor Sie den Cluster registrieren.
Fehler bei der Registrierung/Registrierung eines GKE-Clusters oder beim Aktualisieren der Details zur Flotten-Mitgliedschaft für einen registrierten GKE-Cluster während der Rotation von Anmeldedaten
- Symptome
Bei der Rotation Ihrer Clusteranmeldedaten(https://cloud.google.com/kubernetes-engine/docs/how-to/credential-rotation) können Fehler auftreten, wenn Sie einen GKE-Cluster registrieren/aufheben oder die Mitgliedschaft für Einen registrierten GKE-Cluster.
ERROR: (gcloud.container.hub.memberships.unregister) "code": 13, "message": "an internal error has occurred"
- Mögliche Ursachen
Clusteranmeldedaten befinden sich in einem Zwischenzustand, in dem der Fleet-Dienst nicht darauf zugreifen kann.
- Lösung
Schließen Sie die Rotation ab, bevor Sie den Cluster registrieren/umpregistrieren oder die Mitgliedschaft für einen registrierten GKE-Cluster aktualisieren.
Fehler beim Deaktivieren der Fleet API
- Symptome
Beim Versuch, die Fleet-API (
gkehub.googleapis.com
) zu deaktivieren, tritt möglicherweise ein Fehler wie der folgende auf:Not ready to deactivate the service on this project; ensure there are no more resources managed by this service.
- Mögliche Ursachen
Es sind noch Cluster vorhanden, die in Google Cloud (Mitgliedschaften) oder Flotten-Features angemeldet sind. Alle APIs und Funktionen müssen zuerst abgemeldet oder deaktiviert werden, bevor die API deaktiviert werden kann.
Folgen Sie der Anleitung unter Mitglieder der Flotte aufrufen, um Ihre derzeit registrierten Cluster anzusehen.
So rufen Sie alle aktiven Funktionen der Flotte auf:
gcloud und cURL
$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://gkehub.googleapis.com/v1alpha1/projects/PROJECT_NAME/locations/global/features
Dabei ist PROJECT_NAME
der Name des Projekts, in dem Sie die Fleet API deaktivieren möchten.
Console
Wenn Sie GKE Enterprise in Ihrem Projekt aktiviert haben, rufen Sie die Seite Features in der Google Cloud Console auf. Als AKTIVIERT aufgeführte Funktionen sind aktive Features der Flotte.
- Lösung
Zuerst heben Sie die Registrierung von Clustern auf, die weiterhin bei Ihrer Projektflotte registriert sind. Bevor Sie einige Funktionen deaktivieren können, müssen alle Cluster abgemeldet sein.
Deaktivieren Sie anschließend alle Funktionen der Flotte. Derzeit ist dies nur mit der Fleet REST API möglich.
Deaktivieren Sie die Features der Flotte, die Sie für Ihr Projekt aktiviert haben.
$ gcloud alpha container hub FEATURE_COMMAND disable
Funktion zum Autorisieren und Messen von Funktionen deaktivieren, die standardmäßig aktiviert sind.
$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -X "DELETE" \ https://gkehub.googleapis.com/v1alpha1/projects/PROJECT_NAME/locations/global/features/FEATURE
Dabei ist
FEATURE
der Name des Features, das deaktiviert werden soll (z. B.authorizer
odermetering
).
Fehlende Clusterberechtigungen beim Registrieren eines Clusters
- Symptom:
Beim Versuch, einen Cluster mit einem Nutzerkonto oder einem Google Cloud-Dienstkonto zu registrieren, wird möglicherweise ein Fehler wie der folgende angezeigt:
ERROR: (gcloud.container.hub.memberships.register) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/my-project/zones/zone-a/clusters/my-cluster"
- Mögliche Ursache:
Das Konto, das versucht, den Cluster zu registrieren, hat nicht die erforderliche
cluster-admin
Rolle "rollenbasierte Zugriffssteuerung" (Role-based Access Control, RBAC) im Cluster.- Lösung:
Weisen Sie dem Konto die RBAC-Rolle
cluster-admin
zu, bevor Sie den Cluster registrieren.
Fehler Failed to check if the user is a cluster-admin: Unable to connect to the server
beim Registrieren eines Clusters
- Symptom:
Beim Registrieren eines Clusters kann ein Fehler wie der folgende auftreten:
ERROR: (gcloud.container.hub.memberships.register) Failed to check if the user is a cluster-admin: Unable to connect to the server: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Oder
ERROR: (gcloud.container.hub.memberships.register) Failed to check if the user is a cluster-admin: Unable to connect to the server: dial tcp MASTER_ENDPOINT_IP:443: i/o timeout
- Mögliche Ursache:
Der Computer, auf dem Sie den Registrierungsbefehl
gcloud
ausführen, kann keine Verbindung zum externen Endpunkt des Clusters herstellen. Dies tritt normalerweise auf, wenn Sie einen privaten Cluster mit deaktiviertem externem Zugriff/IP-Adresse haben, die externe IP-Adresse Ihres Computers jedoch nicht zugelassen ist. Beachten Sie, dass die Registrierung eines GKE-Clusters nach gcloud 407.0.0 nicht erforderlich ist.- Lösung:
Achten Sie darauf, dass der Computer, auf dem Sie den
gcloud
-Registrierungsbefehl ausführen möchten, auf den API-Server des Clusters zugreifen kann. Wenn für den Cluster kein externer Zugriff aktiviert ist, melden Sie den Fall dem Google Cloud-Support.
Unterstützung anfordern
Gehen Sie so vor, um ein Ticket beim Google Cloud-Support für GKE Enterprise einzureichen:
- Stellen Sie eine Supportanfrage beim Google Cloud-Support.
- Speichern Sie die Connect-Logs gemäß der Anleitung unter Connect-Agent-Logs erfassen.
- Wenn Sie Fehler bei einem GKE on VMware- oder Google Distributed Cloud Virtual for Bare Metal-Cluster mit Google Groups oder Drittanbieter-Support beheben möchten, folgen Sie der Anleitung unter GKE Identity Service-Logs erfassen, um die GKE Identity Service-Logs zu speichern. Bereinigen Sie gegebenenfalls die Pod-Logs in der gespeicherten Datei.
- Hängen Sie die relevanten Logs an Ihren Fall an.