Cluster über die Google Cloud Console verwalten

In diesem Dokument wird erläutert, wie Sie GKE on VMware für die Verwaltung in der Google Cloud Console verfügbar machen. Dazu gehört die einfache Verwaltung, z. B. die Möglichkeit, sich bei Clustern anzumelden und deren Arbeitslasten anzusehen sowie die Verwaltung des Clusterlebenszyklus zu aktivieren, damit Sie Cluster upgraden, aktualisieren und löschen können.

Flottenmitglieder und die Console

Alle GKE on VMware müssen Mitglieder einer Flotte sein. Damit können Sie mehrere Cluster und deren Arbeitslasten einheitlich ansehen und verwalten. Jede Clusterflotte ist einem Flotten-Hostprojekt zugeordnet.

In GKE auf VMware wird ein Administratorcluster bei der Erstellung bei einer Flotte registriert. Dazu geben Sie Ihr Flottenhostprojekt im Abschnitt gkeConnect der Clusterkonfigurationsdatei an. GKE on VMware verwendet diese Informationen, um Ihren Cluster beim angegebenen Flottenprojekt zu registrieren. Wenn die Registrierung fehlgeschlagen ist, können Sie die Registrierung mit gkectl update credentials register noch einmal versuchen.

Wenn Sie die Registrierung noch einmal versuchen, müssen Sie den Connect-Register-Dienstkontoschlüssel nicht aktualisieren. Sie können also weiterhin Ihr ursprüngliches Connect-Register-Dienstkonto verwenden. Weitere Informationen zu dem Befehl finden Sie unter Dienstkontoschlüssel rotieren.

In GKE auf VMware wird ein Nutzercluster bei der Erstellung bei einer Flotte registriert:

  • Wenn Sie einen Nutzercluster mit gkectl erstellen, geben Sie Ihr Flottenhostprojekt im Abschnitt gkeConnect der Clusterkonfigurationsdatei an. GKE on VMware verwendet diese Informationen, um Ihren Cluster im angegebenen Flottenprojekt zu registrieren.

  • Wenn Sie einen Nutzercluster in der Console erstellen, wird der Cluster automatisch zu einem Flottenmitglied in dem in der Console ausgewählten Projekt.

Flottenmitglieder außerhalb von Google Cloud, z. B. GKE on VMware, werden zusammen mit anderen Flottenclustern wie GKE in Google Cloud in der Console in Ihrem Flottenhostprojekt angezeigt. In welchem Umfang Sie GKE on VMware über die Console verwalten können, hängt von folgenden Faktoren ab:

  • Wenn Sie die Authentifizierung eingerichtet haben, können Sie sich bei Ihren Clustern anmelden und deren Arbeitslasten und andere Details ansehen.

  • Wenn Sie die Verwaltung des Clusterlebenszyklus für den Cluster aktiviert haben, können Sie Nutzercluster auch über die Console aktualisieren, aktualisieren oder löschen. Dazu muss der Cluster von einem Dienst namens Anthos On-Prem API verwaltet werden. Bei Nutzerclustern, die in der Console erstellt wurden, wird die Verwaltung des Clusterlebenszyklus bei der Clustererstellung aktiviert. Sie können dieses Feature auch später für Nutzercluster aktivieren, die mit gkectl erstellt wurden. Wenn dieses Feature nicht aktiviert ist, können Sie den Clusterlebenszyklus nur mit gkectl auf Ihrer Administratorworkstation verwalten.

Registrierte Cluster ansehen

Alle Ihre Flottencluster werden in der Console auf den Seiten GKE Enterprise-Cluster und GKE-Cluster angezeigt. So erhalten Sie einen Überblick über Ihre gesamte Flotte und können bei GKE on VMware sehen, welche Cluster von der Anthos On-Prem API verwaltet werden.

So rufen Sie Ihre Flottencluster auf:

  1. Rufen Sie in der Console die Seite „GKE Enterprise-Cluster“ auf.

    Zur Seite „GKE Enterprise-Cluster“

  2. Wählen Sie das Google Cloud-Projekt aus.

    • Wenn in der Spalte Typ VM Anthos (VMware) angezeigt wird, wird der Cluster von der Anthos On-Prem API verwaltet.

    • Wenn in der Spalte Typ Extern angezeigt wird, wird der Cluster nicht von der Anthos On-Prem API verwaltet.

    Liste der GKE Enterprise-Cluster

Nutzer müssen sich beim Cluster anmelden und sich authentifizieren, um weitere Details zu einem Cluster zu sehen. Gehen Sie dazu so vor:

Authentifizierung einrichten

Wie oben beschrieben, werden alle Flottencluster in der Console in den Listen der GKE- und GKE Enterprise-Cluster angezeigt. Nutzer müssen sich jedoch beim Cluster anmelden und sich authentifizieren, um weitere Details wie Knoten und Arbeitslasten zu sehen (und Aufgaben zur Verwaltung des Clusterlebenszyklus auszuführen, wenn das Feature aktiviert ist). Dazu müssen Ihre registrierten Cluster mit einer der folgenden Authentifizierungsmethoden eingerichtet werden:

  • Google-Identität: Mit dieser Option können sich Nutzer mit ihrer Google Cloud Identity anmelden. Das ist die E-Mail-Adresse, die mit Ihrem Google Cloud-Konto verknüpft ist. Verwenden Sie diese Option, wenn Nutzer bereits mit ihrer Google-Identität Zugriff auf Google Cloud haben. Wenn Sie den Cluster in der Console erstellt haben, können Sie sich mit Ihrer Google-Identität beim Cluster anmelden, müssen aber die Authentifizierung für andere Nutzer konfigurieren.

    Die Anmeldung mit der Google-Identität ist der einfachste Ansatz für die Authentifizierung in der Console, insbesondere wenn Sie GKE auf VMware mit einer minimalen Installation testen. Wie Sie dies einrichten, wird weiter unten unter Google-Identitätsauthentifizierung einrichten ausführlicher beschrieben.

  • OpenID Connect (OIDC): Mit dieser Option können sich Nutzer über die Konsole mit ihrer Identität eines OIDC-Drittanbieter-Identitätsanbieters wie Okta oder Microsoft AD FS in Clustern anmelden. Sie sollten diese Option verwenden, wenn Ihre Nutzer bereits Nutzernamen, Passwörter und Sicherheitsgruppenmitgliedschaften von Ihrem Anbieter haben. Informationen zum Einrichten der OIDC-Authentifizierung eines Drittanbieters für Ihre Cluster finden Sie in den folgenden Anleitungen:

  • Inhabertoken: Wenn die von Google bereitgestellten Lösungen für Ihre Organisation nicht geeignet sind, können Sie die Authentifizierung mit einem Kubernetes-Dienstkonto einrichten und sich mit dessen Inhabertoken anmelden. Weitere Informationen finden Sie unter Mit einem Inhabertoken einrichten.

Erforderliche Rollen gewähren

Der Zugriff auf die Console wird von Google Cloud IAM gesteuert. Diese IAM-Rollen sind unabhängig von der ausgewählten Authentifizierungsmethode erforderlich. Zum Verwalten des Clusterlebenszyklus in der Console müssen Sie einige IAM-Rollen zuweisen.

  • Damit Nutzer mindestens auf die Console zugreifen können, müssen Sie die folgenden Rollen zuweisen:

    • roles/container.viewer: Mit dieser Rolle können Nutzer die GKE-Clusterseite und andere Containerressourcen in der Console ansehen. Weitere Informationen zu den in dieser Rolle enthaltenen Berechtigungen oder zum Gewähren einer Rolle mit Lese-/Schreibberechtigungen finden Sie in der IAM-Dokumentation unter Kubernetes Engine-Rollen.

    • roles/gkehub.viewer: Mit dieser Rolle können Nutzer Cluster außerhalb von Google Cloud in der Console ansehen. Weitere Informationen zu den in dieser Rolle enthaltenen Berechtigungen oder zum Gewähren einer Rolle mit Lese-/Schreibberechtigungen finden Sie in der IAM-Dokumentation unter GKE-Hub-Rollen.

  • Damit Nutzer den Clusterlebenszyklus in der Console verwalten können, weisen Sie die IAM-Rolle roles/gkeonprem.admin zu. Die Rolle roles/gkeonprem.admin gewährt Nutzern Administratorzugriff auf die Anthos On-Prem API, die von der Console zum Verwalten des Clusterlebenszyklus verwendet wird. Weitere Informationen zu den Berechtigungen, die in dieser Rolle enthalten sind, finden Sie in der IAM-Dokumentation unter GKE On-Prem-Rollen.

Die folgenden Befehle zeigen, wie Sie die Mindestrollen gewähren, die zum Verwalten des Clusterlebenszyklus in der Console erforderlich sind:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member=MEMBER \
    --role=roles/container.viewer

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkehub.viewer

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkeonprem.admin

wobei

  • FLEET_HOST_PROJECT_ID ist das Flottenhostprojekt. Bei Clustern, die mit gkectl erstellt wurden, ist dies das Projekt, das Sie im Abschnitt gkeConnect der Konfigurationsdatei des Nutzerclusters konfiguriert haben. Bei Clustern, die in der Console erstellt wurden, ist dies das Projekt, das Sie beim Erstellen des Clusters ausgewählt haben.

  • MEMBER ist die E-Mail-Adresse des Nutzers im Format user:emailID, z. B. user:alice@example.com.

Verwaltung des Clusterlebenszyklus in der Console aktivieren

In der Console erstellte Nutzercluster werden automatisch von der Anthos On-Prem API verwaltet und ermöglichen es Ihnen, Aufgaben zur Verwaltung des Clusterlebenszyklus in der Console auszuführen. Wenn Sie dieses Feature für Nutzercluster aktivieren möchten, die mit gkectl erstellt wurden, folgen Sie der Anleitung unter Nutzercluster konfigurieren, die von der Anthos On-Prem API verwaltet werden sollen. Wenn die Verwaltung des Clusterlebenszyklus aktiviert ist, können Sie die folgenden Aufgaben über die Console ausführen:

Google-Identitätsauthentifizierung einrichten

Damit sich Nutzer mit ihrer Google-Identität im Cluster anmelden können, müssen Sie Folgendes konfigurieren:

RBAC-Autorisierung konfigurieren

Der Kubernetes API-Server jedes Clusters muss in der Lage sein, Anfragen von der Console zu autorisieren. Zum Konfigurieren der Autorisierung müssen Sie Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes für jeden Cluster konfigurieren. Wenn Sie den Cluster in der Console erstellt haben, fügt die Anthos On-Prem API Ihr Nutzerkonto als Administrator hinzu und erstellt entsprechende RBAC-Richtlinien, die Ihnen vollständigen Administratorzugriff auf den Cluster gewähren.

Wenn Sie den Cluster in der Console erstellt haben und später gcloud zum Konfigurieren der RBAC-Richtlinien verwenden, werden die E-Mail-Adressen der Nutzer im Abschnitt Clusterdetails in der Console nicht angezeigt.

gcloud-CLI

  1. Führen Sie die folgenden Befehle aus, um sich mit Ihrem Google-Konto anzumelden und Komponenten zu aktualisieren:

    gcloud auth login
    gcloud components update
    
  2. Generieren Sie die RBAC-Richtlinien und wenden Sie sie für Nutzer und Dienstkonten auf Ihren Cluster an:

    gcloud container fleet memberships generate-gateway-rbac  \
        --membership=MEMBERSHIP_NAME \
        --role=ROLE \
        --users=USERS \
        --project=FLEET_HOST_PROJECT_ID \
        --kubeconfig=KUBECONFIG_PATH \
        --context=KUBECONFIG_CONTEXT \
        --apply
    

    Ersetzen Sie Folgendes:

    • MEMBERSHIP_NAME: Der Name, der zur eindeutigen Darstellung des Clusters in seiner Flotte verwendet wird. In GKE auf VMware sind der Name der Mitgliedschaft und der Clustername identisch.
    • ROLE: die Kubernetes-Rolle, die Sie den Nutzern im Cluster zuweisen möchten. Geben Sie clusterrole/cluster-admin an, um Nutzern vollständigen Zugriff auf jede Ressource im Cluster in allen Namespaces zu gewähren. Erstellen Sie eine benutzerdefinierte Rolle wie role/mynamespace/namespace-reader, um den Zugriff einzuschränken. Die benutzerdefinierte Rolle muss bereits vorhanden sein, bevor Sie den Befehl ausführen.
    • USERS: Die E-Mail-Adressen der Nutzer (Nutzerkonten oder Dienstkonten), denen Sie Berechtigungen erteilen möchten, als durch Kommas getrennte Liste. Beispiel: --users=foo@example.com,test-acct@test-project.iam.gserviceaccount.com.
    • FLEET_HOST_PROJECT_ID: die Projekt-ID des Flottenhostprojekts.
    • KUBECONFIG_PATH: der lokale Dateipfad, in dem die kubeconfig-Datei mit einem Eintrag für den Cluster gespeichert ist.
    • KUBECONFIG_CONTEXT ist der Clusterkontext des Clusters, wie er in der Datei „kubeconfig” angezeigt wird. Sie können den aktuellen Kontext über die Befehlszeile abrufen, indem Sie kubectl config current-context ausführen. Unabhängig davon, ob Sie den aktuellen Kontext verwenden oder nicht, achten Sie darauf, dass er für den Zugriff auf den Cluster funktioniert. Führen Sie dazu einen einfachen Befehl wie den folgenden aus:

      kubectl get namespaces \
        --kubeconfig=KUBECONFIG_PATH \
        --context=KUBECONFIG_CONTEXT
      

    Nachdem Sie gcloud container fleet memberships generate-gateway-rbac ausgeführt haben, sehen Sie am Ende der Ausgabe, die zur besseren Lesbarkeit gekürzt wurde, in etwa so:

    Validating input arguments.
    Specified Cluster Role is: clusterrole/cluster-admin
    Generated RBAC policy is:
    --------------------------------------------
    ...
    Applying the generate RBAC policy to cluster with kubeconfig: /usr/local/google/home/foo/.kube/config, context: kind-kind
    Writing RBAC policy for user: foo@example.com to cluster.
    Successfully applied the RBAC policy to cluster.
    

    Dies ist der Kontext für den Zugriff auf den Cluster über das Connect-Gateway.

    Weitere Informationen zum Befehl generate-gateway-rbac finden Sie im Referenzhandbuch für die gcloud-Befehlszeile.

Console

Führen Sie die folgenden Schritte in der Console aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:

  1. Rufen Sie in der Console die Seite „GKE Enterprise-Cluster“ auf.

    Zur Seite „GKE Enterprise-Cluster“

  2. Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.

  3. Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Weitere Details.

  4. Klicken Sie im Abschnitt Autorisierung auf das Feld Clusteradministratornutzer und geben Sie die E-Mail-Adressen der einzelnen Nutzer ein.

  5. Wenn Sie alle gewünschten Nutzer hinzugefügt haben, klicken Sie auf Fertig.

Weitere Informationen