Wie Sie in der Übersicht zur Flottenerstellung gelernt haben, werden GKE auf VMware-, GKE auf Bare-Metal- und Multi-Cloud-Cluster (sowohl in AWS als auch in Azure) zum Zeitpunkt der Clustererstellung automatisch in Ihrer Projektflotte registriert. GKE-Cluster in Google Cloud und Kubernetes-Cluster von Drittanbietern (angehängte Cluster) müssen jedoch manuell registriert werden, um Ihrer Flotte hinzugefügt werden zu können. Weitere Informationen zu den verschiedenen Registrierungsoptionen finden Sie im Überblick über die Erstellung der Flotte.
Auf dieser Seite werden die Voraussetzungen und Anforderungen für die manuelle Registrierung eines beliebigen Kubernetes-Clusters bei einer Google Cloud-Flotte beschrieben. Es gibt außerdem bestimmte Anforderungen, die sich für GKE-Cluster in Google Cloud und angehängte Cluster unterscheiden. Folgen Sie nach dem Abschluss dieser Anleitung den Anweisungen für den Clustertyp, den Sie registrieren möchten.
Befehlszeilentools installieren
Die folgenden Befehlszeilentools müssen installiert sein. Wenn Sie Cloud Shell als Shell-Umgebung für die Interaktion mit Google Cloud verwenden, sind diese Tools für Sie installiert.
Google Cloud CLI installieren
Die Google Cloud CLI ist die Befehlszeile für Google Cloud. Sie können Cluster über die Google Cloud CLI oder abhängig vom Clustertyp mit anderen Tools wie Terraform oder der Google Cloud Console registrieren. Selbst wenn Sie es nicht für die Clusterregistrierung verwenden, ist gcloud
für viele der anderen Einrichtungsschritte in dieser Anleitung erforderlich oder nützlich.
Installieren Sie, falls noch nicht geschehen, die Google Cloud CLI. Folgen Sie dazu der Installationsanleitung. Wir empfehlen die Verwendung der neuesten Version des Google Cloud CLI. Sie benötigen Version 361.0.0 oder höher, um Cluster zu registrieren, und Version 423.0.0 oder höher, wenn Sie die Nicht-Legacy-Registrierungsbefehle für GKE mit installierter Alpha- oder Beta-Komponente verwenden möchten.
Führen Sie den folgenden Befehl aus, um sich in Google Cloud anzumelden:
gcloud auth login
Optional: Wenn Sie Alpha- oder Betafeatures testen möchten, muss die Komponente
gcloud beta
installiert sein:gcloud components install beta
kubectl
installieren
kubectl
ist zwar zum Registrieren eines Clusters nicht erforderlich, wird aber möglicherweise benötigt, um dem Nutzer, der den Cluster registriert (wenn er nicht der Clusterinhaber ist), die erforderlichen RBAC-Berechtigungen zu erteilen sowie für andere plattformspezifische Einrichtungen. Sie benötigen eine kubectl
-Version, die nicht älter als die unterstützte Kubernetes-Mindestversion von Google Kubernetes Engine (GKE) ist.
Wir empfehlen, kubectl
mit Google Cloud CLI zu installieren.
So prüfen Sie die Version von kubectl
:
kubectl version
Die Clientversion wird durch gitVersion
in der Ausgabe angezeigt.
So installieren Sie kubectl
:
gcloud components install kubectl
APIs aktivieren
Sie müssen in Ihrem Flotten-Host-Projekt die folgenden APIs aktivieren:
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
, auch als Fleet API bezeichnet. Dies ist der Google Cloud-Dienst, der die Clusterregistrierung und die Mitgliedschaft in der Flotte übernimmt.cloudresourcemanager.googleapis.com
Pods in dem Cluster, den Sie registrieren möchten, müssen die Adressen googleapis.com
und gkeconnect.googleapis.com
entweder direkt oder über einen konfigurierten Proxyserver erreichen können.
Wenn Sie für Ihre Registrierung Workload Identity für Flotten aktivieren möchten, müssen Sie außerdem Folgendes aktivieren:
iam.googleapis.com
Nicht-Projektinhabern muss die Berechtigung serviceusage.services.enable
erteilt werden, damit sie APIs aktivieren können.
gcloud
Aktivieren Sie diese APIs mit folgendem Befehl:
gcloud services enable \
--project=FLEET_HOST_PROJECT_ID \
container.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
cloudresourcemanager.googleapis.com \
iam.googleapis.com
Dabei gilt:
- FLEET_HOST_PROJECT_ID ist die ID des Google Cloud-Projekts, in dem Sie Cluster registrieren möchten. Informationen zum Ermitteln dieses Werts
Wenn Sie Workload Identity der Flotte nicht aktivieren möchten, können Sie iam.googleapis.com
weglassen.
Um APIs aufzulisten, die Sie bereits in Ihren Projekten aktiviert haben, folgen Sie den Anleitungen unter Dienste auflisten in der Dokumentation zur Dienstnutzung.
Zugriffsberechtigungen erteilen
Stellen Sie sicher, dass Sie die erforderlichen Zugriffsberechtigungen haben, um einen Cluster zu registrieren. Für die Clusterregistrierung sind sowohl die Berechtigung zum Registrieren des Clusters bei einer Flotte als auch Administratorberechtigungen für den Cluster selbst erforderlich.
Berechtigungen für die Clusterregistrierung erteilen
Zum Registrieren eines Clusters benötigen Sie IAM-Berechtigungen in Ihrem Flotten-Hostprojekt, um Cluster zu registrieren. Wenn Sie in Ihrem Flotten-Host-Projekt roles/owner
haben, verfügen Sie automatisch über dies und haben alle Zugriffsberechtigungen, die Sie zum Ausführen aller Registrierungsaufgaben benötigen.
Wenn in Ihrem Projekt keine roles/owner
vorhanden sind, benötigen Sie bestimmte IAM-Rollen, damit Sie eine Verbindung von Clustern zu Google herstellen können, wie folgt:
Für die Registrierung eines Clusters bei Workload Identity für Flotten für die Authentifizierung bei Google benötigen Sie nur die folgende IAM-Rolle:
roles/gkehub.admin
Bei einigen Registrierungsoptionen außerhalb von Google Cloud müssen Sie ein Dienstkonto für den Cluster einrichten, das zur Authentifizierung bei Google anstelle von Workload Identity verwendet werden soll. Zum Registrieren des Clusters und zum Verwalten dieses Dienstkontos benötigen Sie die folgenden Rollen:
roles/gkehub.admin
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountKeyAdmin
roles/resourcemanager.projectIamAdmin
Eine Liste der detaillierten Berechtigungen, die in den gkehub
-Rollen enthalten sind, finden Sie unter IAM-Rollen verbinden.
gcloud
Führen Sie den folgenden Befehl aus, um einem Nutzer eine IAM-Rolle zuzuweisen:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
--member user:GCP_EMAIL_ADDRESS \
--role=ROLE
wobei
- FLEET_HOST_PROJECT_ID ist die ID des Google Cloud-Projekts, in dem Sie Cluster registrieren möchten. Informationen zum Ermitteln dieses Werts
- GCP_EMAIL_ADDRESS ist das Konto, mit dem sich der Nutzer bei Google Cloud anmeldet.
- ROLE ist die IAM-Rolle, die Sie zuweisen möchten, z. B.
roles/gkehub.admin
.
Weitere Informationen zum Zuweisen von IAM-Rollen finden Sie in der IAM-Dokumentation unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
Administratorberechtigungen für Cluster erteilen
Zusätzlich zu den für die Registrierung eines Clusters erforderlichen Berechtigungen benötigen Sie auch Administratorberechtigungen für den Cluster selbst. Je nach Standort des Clusters können Sie diese Berechtigung mithilfe von IAM-Rollen oder der rollenbasierten Zugriffssteuerung von Kubernetes (RBAC) zuweisen.
GKE-Cluster in Google Cloud.
Fügen Sie nur für GKE-Cluster in Google Cloud die folgende IAM-Rolle hinzu, um Administratorberechtigungen für den Cluster zu erhalten, falls Sie diese noch nicht haben (Ihr Nutzerkonto wird diese wahrscheinlich haben, wenn Sie den Cluster erstellt haben):
roles/container.admin
Diese IAM-Rolle enthält die Rolle cluster-admin
von Kubernetes RBAC. In anderen Clusterumgebungen müssen Sie diese RBAC-Rolle mithilfe von kubectl
zuweisen, wie im folgenden Abschnitt beschrieben.
Weitere Informationen zur Beziehung zwischen IAM- und RBAC-Rollen in GKE finden Sie in der GKE-Dokumentation.
Cluster außerhalb von Google Cloud
Zum Anhängen von Drittanbieterclustern außerhalb von Google Cloud muss der Nutzer, der den Cluster registriert, die Rolle cluster-admin
von Kubernetes RBAC haben.
kubectl
Sie haben diese Rolle in der Regel, wenn Sie den Cluster erstellen. Überprüfen Sie dies mit folgendem Befehl:
kubectl auth can-i '*' '*' --all-namespaces
Wenn Sie oder ein anderer Nutzer die Rolle benötigen, erstellen Sie im Cluster eine Ressource "ClusterRoleBinding":
kubectl create clusterrolebinding BINDING_NAME --clusterrole cluster-admin --user USER
Dabei gilt:
- BINDING_NAME ist ein Name, den Sie für die Ressource „ClusterRoleBinding“ auswählen.
- USER ist die Identität, die zur Authentifizierung beim Cluster verwendet wird.
Nächste Schritte
Folgen Sie den Voraussetzungsanleitungen für den Clustertyp, den Sie registrieren möchten:
- Voraussetzungen für GKE-Cluster in Google Cloud
- Voraussetzungen für EKS-Cluster
- Voraussetzungen für AKS-Cluster
- Voraussetzungen für andere angehängte Clustertypen