Cluster über die Google Cloud Console verwalten

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

Flottenmitglieder und die Console

Alle Google Distributed Clouds müssen Mitglieder einer Flotte sein – eine einheitliche Möglichkeit, um mehrere Cluster und deren Arbeitslasten anzusehen und zu verwalten. Jede Clusterflotte ist einem Flotten-Hostprojekt zugeordnet.

In Google Distributed Cloud wird ein Administratorcluster bei der Erstellung bei einer Flotte registriert. Dazu geben Sie Ihr Flotten-Hostprojekt im Abschnitt gkeConnect der Clusterkonfigurationsdatei an. Google Distributed Cloud verwendet diese Informationen, um Ihren Cluster beim angegebenen Flottenprojekt zu registrieren. Wenn die Registrierung fehlgeschlagen ist, kannst du sie noch einmal starten, indem du gkectl update credentials register ausführst.

Wenn Sie die Registrierung noch einmal versuchen, müssen Sie den Dienstkontoschlüssel „connect-register“ 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 Google Distributed Cloud ist ein Nutzercluster bei einer Flotte bei der Erstellung registriert:

  • Wenn Sie einen Nutzercluster mit gkectl erstellen, geben Sie Ihr Flotten-Hostprojekt im Abschnitt gkeConnect der Clusterkonfigurationsdatei an. Google Distributed Cloud verwendet diese Informationen, um Ihren Cluster beim angegebenen Flottenprojekt zu registrieren.

  • Wenn Sie einen Nutzercluster mit einem Standardtool (der Console, der Google Cloud CLI oder Terraform) erstellen, wird der Cluster automatisch ein Flottenmitglied im von Ihnen angegebenen Projekt.

Flottenmitglieder außerhalb von Google Cloud, z. B. Google Distributed Cloud, werden in der Console Ihres Flotten-Hostprojekts zusammen mit anderen Flottenclustern wie GKE in Google Cloud angezeigt. Wie stark Sie Google Distributed Cloud ü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. Wenn dieses Feature nicht aktiviert ist, können Sie den Clusterlebenszyklus nur mit gkectl auf Ihrer Administratorworkstation verwalten.

Registrierte Cluster ansehen

Alle Flottencluster werden in der Console auf der Übersichtsseite für Google Kubernetes Engine-Cluster angezeigt. So erhalten Sie sowohl einen Überblick über Ihre gesamte Flotte als auch für Google Distributed Cloud können Sie sehen, welche Cluster von der GKE On-Prem API verwaltet werden.

So rufen Sie Ihre Flottencluster auf:

  1. Rufen Sie in der Console die Übersichtsseite für Google Kubernetes Engine-Cluster auf.

    Zu GKE-Clustern

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

    • Wenn in der Spalte Typ VM GKE on VMware angezeigt wird, wird der Cluster von der GKE On-Prem API verwaltet.

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

    Liste der GKE Enterprise-Cluster

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

Authentifizierung einrichten

Wie bereits beschrieben, werden alle Flottencluster in der Console in der Liste 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 anzeigen zu lassen (und um 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. Dies ist die E-Mail-Adresse, die mit Ihrem Google Cloud-Konto verknüpft ist. Verwenden Sie diese Option, wenn Nutzer mit ihrer Google-Identität bereits 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. Sie müssen jedoch die Authentifizierung für andere Nutzer konfigurieren.

    Die Anmeldung mit Google-Identität ist der einfachste Ansatz zur Authentifizierung in der Console, insbesondere wenn Sie Google Distributed Cloud mit einer minimalen Installation testen. Daher wird unten unter Google-Identitätsauthentifizierung einrichten ausführlicher beschrieben, wie Sie dies einrichten können.

  • OpenID Connect (OIDC): Mit dieser Option können sich Nutzer über die Console mit ihrer Identität von einem OIDC-Drittanbieter wie Okta oder Microsoft AD FS bei Clustern anmelden. Sie können diese Option verwenden, wenn Ihre Nutzer bereits von Ihrem Anbieter Nutzernamen, Passwörter und Sicherheitsgruppenmitgliedschaften haben. In den folgenden Anleitungen erfahren Sie, wie Sie die OIDC-Authentifizierung von Drittanbietern für Ihre Cluster einrichten:

  • Inhabertoken: Wenn die vorherigen 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 Inhabertoken einrichten.

Erforderliche Rollen gewähren

Der Zugriff auf die Console wird über die Identitäts- und Zugriffsverwaltung (Identity and Access Management, 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 gewähren.

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

    • roles/container.viewer: Mit dieser Rolle können Nutzer die Seite „GKE-Cluster“ und andere Containerressourcen in der Console ansehen. Weitere Informationen zu den in dieser Rolle enthaltenen Berechtigungen oder zum Zuweisen 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 Zuweisen 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 bietet Nutzern Administratorzugriff auf die GKE On-Prem API, die die Console zur Verwaltung des Clusterlebenszyklus verwendet. Weitere Informationen zu den in dieser Rolle enthaltenen Berechtigungen finden Sie unter GKE On-Prem-Rollen in der IAM-Dokumentation.

Die folgenden Befehle zeigen, wie Sie die minimalen Rollen gewähren, die zur Verwaltung 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

Dabei gilt:

  • FLEET_HOST_PROJECT_ID ist das Flotten-Hostprojekt. Bei Clustern, die mit gkectl erstellt wurden, ist dies das Projekt, das Sie im Abschnitt gkeConnect der Konfigurationsdatei des Nutzerclusters konfiguriert haben. Für Cluster, 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

Nutzercluster, die mit Standardtools (Konsole, gcloud CLI oder Terraform) erstellt wurden, werden automatisch in der GKE On-Prem API registriert. Damit können Sie Verwaltungsaufgaben für den Clusterlebenszyklus in der Console ausführen. Wenn Sie dieses Feature für Nutzercluster aktivieren möchten, die mit gkectl erstellt wurden, führen Sie die Schritte unter Nutzercluster konfigurieren, der von der GKE On-Prem API verwaltet werden soll aus. Wenn die Verwaltung des Clusterlebenszyklus aktiviert ist, können Sie über die Console die folgenden Aufgaben ausführen:

Google-Identitätsauthentifizierung einrichten

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

RBAC-Autorisierung konfigurieren

Der Kubernetes API-Server eines jeden Clusters muss in der Lage sein, Anfragen zu autorisieren, die von der Console kommen. Zum Konfigurieren der Autorisierung müssen Sie auf jedem Cluster Richtlinien für die rollenbasierte Zugriffssteuerung (Role-based Access Control, RBAC) von Kubernetes konfigurieren.

Wenn Sie zum Erstellen des Nutzerclusters ein Standardtool verwendet haben, haben Sie möglicherweise bereits die entsprechenden RBAC-Richtlinien, die Ihnen vollständigen Administratorzugriff auf den Cluster gewähren. Die GKE On-Prem API fügt Ihr Google-Konto in den folgenden Fällen automatisch als Administrator hinzu:

  • Sie haben den Nutzercluster in der Console erstellt.

  • Sie haben den Nutzercluster mit der gcloud CLI erstellt und Ihr Google-Konto wurde im Flag --admin-users im Befehl zum Erstellen des Clusters angegeben.

  • Sie haben den Nutzercluster mit Terraform erstellt und Ihr Google-Konto wurde im Feld authorization.admin_users.username angegeben.

Nutzercluster, die mit gkectl erstellt wurden, gewähren Ihnen nicht die RBAC-Richtlinien, um den Cluster über die Console zu verwalten. Sie müssen sich selbst hinzufügen, nachdem der Cluster erstellt wurde. Unabhängig davon, mit welchem Tool Sie den Cluster erstellt haben, können Sie andere als Administratoren hinzufügen, nachdem der Cluster erstellt wurde.

Sie haben folgende Möglichkeiten, um Administratorzugriff auf den Cluster zu gewähren. Es stehen zwei verschiedene gcloud-Befehle zur Verfügung.

  • Der Befehl gcloud ... generate-gateway-rbac muss auf Ihrer Administratorworkstation ausgeführt werden, da er Zugriff auf die kubeconfig- und den Kontext des Clusters benötigt (diese befinden sich normalerweise nur auf Ihrer Administratorworkstation). Mit dem Befehl generate-gateway-rbac können Sie die RBAC-Richtlinien anpassen. Die E-Mail-Adressen der Nutzer werden jedoch nicht als Administratoren im Abschnitt Clusterdetails der Console angezeigt.

  • Der Befehl gcloud ... update kann entweder auf Ihrer Administratorworkstation oder auf jedem Computer mit Zugriff auf die GKE On-Prem API ausgeführt werden.

generate-gateway-rbac

  1. Stellen Sie eine Verbindung zu Ihrer Administrator-Workstation her.

  2. Führen Sie den folgenden Befehl aus, um Komponenten zu aktualisieren:

    gcloud components update
    
  3. 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 Google Distributed Cloud sind der Name der Mitgliedschaft und der Clustername identisch.
    • ROLE: Die Kubernetes-Rolle, die Sie den Nutzern im Cluster gewähren möchten. Wenn Sie Nutzern vollen Zugriff auf alle Ressourcen im Cluster in allen Namespaces gewähren möchten, geben Sie clusterrole/cluster-admin an. Wenn Sie Lesezugriff gewähren möchten, geben Sie clusterrole/view an. Sie können auch eine benutzerdefinierte Rolle erstellen, z. B. role/mynamespace/namespace-reader. 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 Flotten-Hostprojekts.
    • KUBECONFIG_PATH: der lokale Pfad, unter 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, wird am Ende der Ausgabe, die zur besseren Lesbarkeit abgeschnitten wird, in etwa Folgendes angezeigt:

    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.

update

  1. Führen Sie den folgenden Befehl aus, um Komponenten zu aktualisieren:

    gcloud components update
    
  2. Fügen Sie für jeden Nutzer, dem die Rolle clusterrole/cluster-admin gewährt werden muss, das Flag --admin-users hinzu und führen Sie den folgenden Befehl aus. Es ist nicht möglich, mehrere Nutzer in einem einzelnen Flag anzugeben. Achten Sie darauf, dass Sie Ihr Google-Konto in den Befehl aufnehmen, da der Befehl die Berechtigungsliste mit den Nutzern überschreibt, die Sie im Befehl angeben.

    gcloud container vmware clusters update USER_CLUSTER_NAME \
      --admin-users YOUR_GOOGLE_ACCOUNT \
      --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
    

Zusätzlich zur Kubernetes-Rolle clusterrole/cluster-admin gewährt der Befehl die RBAC-Richtlinien, die Nutzer benötigen, um über das Connect-Gateway auf den Cluster zuzugreifen.

Console

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

  1. Rufen Sie in der Console die Übersichtsseite für Google Kubernetes Engine-Cluster auf.

    Zu GKE-Clustern

  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 Feld Details auf Weitere Details.

  4. Klicken Sie im Abschnitt Autorisierung auf das Feld Clusteradministratoren 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