Allgemeine Voraussetzungen

Wie Sie in der Übersicht zur Flottenerstellung gelernt haben, werden lokale GKE-Cluster auf VMware sowie 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 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.

  1. Installieren Sie, falls noch nicht geschehen, die Google Cloud CLI. Folgen Sie dazu der Installationsanleitung. Wir empfehlen die Verwendung der neuesten Version der 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.

  2. Führen Sie den folgenden Befehl aus, um sich in Google Cloud anzumelden:

    gcloud auth login
  3. (Optional) Wenn Sie die 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:

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

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
  • 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

Wenn Sie Drittanbietercluster außerhalb von Google Cloud anhängen möchten, 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: