Cluster über die Google Cloud Console verwalten

In diesem Dokument wird erläutert, wie Sie Anthos-Cluster auf Bare Metal zur Verwaltung in der Google Cloud Console verfügbar machen. Dies umfasst grundlegende Verwaltung, z. B. die Möglichkeit, sich in Clustern anzumelden und ihre Arbeitslasten anzusehen, und wie Sie die Verwaltung des Clusterlebenszyklus aktivieren, damit Sie Cluster upgraden, aktualisieren und löschen können.

Flottenmitglieder und die Console

Alle Anthos-Cluster auf Bare Metal müssen Mitglieder einer Flotte sein – eine einheitliche Methode, um mehrere Cluster und deren Arbeitslasten anzusehen und zu verwalten. Jede Flotte Cluster ist einem Flotten-Hostprojekt zugeordnet.

In Anthos-Clustern auf Bare Metal wird ein Nutzercluster bei der Erstellung in einer Flotte registriert:

  • Wenn Sie einen Cluster mit bmctl erstellen, geben Sie Ihr Flotten-Hostprojekt im Abschnitt gkeConnect der Clusterkonfigurationsdatei an. Anthos-Cluster auf Bare Metal verwenden diese Informationen, um Ihren Cluster für das angegebene Flottenprojekt zu registrieren.

  • Wenn Sie einen Nutzercluster in der Console erstellen, wird der Cluster automatisch ein Flottenmitglied im Projekt, das in der Console ausgewählt wird.

Flottenmitglieder außerhalb von Google Cloud wie Anthos-Cluster auf Bare Metal werden zusammen mit anderen Flottenclustern wie GKE in Google Cloud in der Konsole in Ihrem Flotten-Hostprojekt angezeigt. Der Umfang, in dem Sie Anthos-Cluster auf Bare Metal ü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 aktiviert haben, können Sie Nutzercluster auch über die Console upgraden, aktualisieren oder löschen. Dazu muss der Cluster von einem Dienst namens Anthos On-Prem API verwaltet werden. Bei in der Console erstellten Nutzerclustern wird die Verwaltung des Clusterlebenszyklus beim Erstellen des Clusters aktiviert. Sie können dieses Feature später für Nutzercluster aktivieren, die mit bmctl erstellt wurden. Wenn dieses Feature nicht aktiviert ist, können Sie den Clusterlebenszyklus nur mit bmctl auf Ihrer Administratorworkstation verwalten.

Registrierte Cluster ansehen

Alle Flottencluster werden auf den Seiten Anthos-Cluster und GKE-Cluster in der Console angezeigt. Dadurch erhalten Sie einen Überblick über Ihre gesamte Flotte und für Anthos-Cluster auf Bare Metal können Sie 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 "Anthos-Cluster" auf.

    Zur Seite "Anthos-Cluster"

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

    • Wenn in der Spalte Typ der Wert Anthos Bare Metal angezeigt wird, wird der Cluster von der Anthos On-Prem API verwaltet.

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

Wenn Sie weitere Details zu einem Cluster aufrufen möchten, müssen sich Nutzer beim Cluster anmelden und authentifizieren. Gehen Sie dazu so vor:

Authentifizierung einrichten

Wie zuvor beschrieben, werden alle Flottencluster in der Liste der GKE- und Anthos-Cluster in der Console angezeigt. Damit Nutzer jedoch weitere Details wie Knoten und Arbeitslasten sehen und ggf. Verwaltungsaufgaben für den Clusterlebenszyklus ausführen können, müssen sich die Nutzer anmelden und sich beim Cluster authentifizieren. Dazu müssen Ihre registrierten Cluster mit einer der folgenden Authentifizierungsmethoden eingerichtet sein:

  • Google-Identität: Nutzer können sich mit ihrer Google Cloud-Identität anmelden, also der 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 im Cluster anmelden. Für andere Nutzer müssen Sie jedoch die Authentifizierung konfigurieren.

    „Über Google anmelden“ ist die einfachste Methode zur Authentifizierung in der Console. Daher wird im Folgenden unter Google-Identitätsauthentifizierung einrichten ausführlicher beschrieben.

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

  • Bearer-Token: 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 über Google Cloud IAM gesteuert. Zum Verwalten des Clusterlebenszyklus in der Console müssen Sie Nutzern, die keine Projektinhaber sind, einige IAM-Rollen zuweisen:

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

  • Weisen Sie die IAM-Rolle roles/gkeonprem.admin zu, damit Nutzer den Clusterlebenszyklus in der Console verwalten können. Die Rolle roles/gkeonprem.admin gewährt Nutzern Administratorzugriff auf die Anthos On-Prem API, mit der die Console den Clusterlebenszyklus verwaltet wird. Weitere Informationen zu den in dieser Rolle enthaltenen Berechtigungen finden Sie in der IAM-Dokumentation unter GKE On-Prem-Rollen.

Die folgenden Befehle zeigen, wie die minimale Rollen gewährt werden, die zum Verwalten des Clusterlebenszyklus in der Console erforderlich sind:

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

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

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

wobei

  • PROJECT_ID ist das Flotten-Hostprojekt. Für Cluster, die mit bmctl 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. Beispiel: 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. Außerdem können Sie Clusterverwaltungsaufgaben in der Console ausführen. Wenn Sie dieses Feature für Nutzercluster aktivieren möchten, die mit bmctl erstellt wurden, folgen Sie den Schritten unter Nutzercluster konfigurieren, der von der Anthos On-Prem API verwaltet werden soll. Wenn die Verwaltung des Clusterlebenszyklus aktiviert ist, können Sie Cluster über die Console aktualisieren:

  • Nutzercluster aktualisieren
  • Knotenpools in Nutzerclustern hinzufügen oder entfernen
  • Nutzercluster löschen

Google-Identitätsauthentifizierung einrichten

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

  • Nutzer benötigen bestimmte IAM-Rollen (Identity and Access Management), um Cluster in der Console auf den Seiten GKE-Cluster und Anthos-Cluster aufrufen und mit ihnen interagieren zu können.

  • Nutzer müssen den Richtlinien für die rollenbasierte Zugriffssteuerung (Role-based Access Control, RBAC) von Kubernetes hinzugefügt werden, die das Connect-Gateway benötigt, um über den Connect-Agent auf den Kubernetes API-Server des Clusters zuzugreifen.

RBAC-Autorisierung konfigurieren

Der Kubernetes API-Server jedes Clusters muss in der Lage sein, Anfragen zu autorisieren, die von der Konsole eingehen. Zum Konfigurieren der Autorisierung müssen Sie in jedem Cluster Richtlinien für die rollenbasierte Zugriffssteuerung von Kubernetes (RBAC) 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.

gcloud-CLI

Führen Sie auf Ihrer Administratorworkstation die folgenden Schritte aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:

  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 auf Ihren Cluster für Nutzer und Dienstkonten an:

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

    Ersetzen Sie Folgendes:

    • MEMBERSHIP_NAME: Der Name, der für den Cluster in seiner Flotte verwendet wird. In Anthos-Clustern auf Bare Metal sind der Mitgliedschaftsname und der Clustername identisch.
    • ROLE: Die Kubernetes-Rolle, die Sie den Nutzern im Cluster gewähren möchten. Geben Sie clusterrole/cluster-admin an, um Nutzern vollständigen Zugriff auf jede Ressource im Cluster in allen Namespaces zu gewähren. Wenn Sie den Zugriff einschränken möchten, erstellen Sie eine benutzerdefinierte Rolle. Beispiel: 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.
    • PROJECT_ID: die Projekt-ID des Flotten-Hostprojekts.
    • 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 etwas, das für die Lesbarkeit gekürzt ist:

    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.

bmctl

Führen Sie auf Ihrer Administratorworkstation die folgenden Schritte aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:

  1. Fügen Sie der Clusterkonfigurationsdatei den Abschnitt clusterSecurity.authorization hinzu. Geben Sie Ihre E-Mail-Adresse und die E-Mail-Adresse anderer Nutzer an, die den Cluster verwalten müssen. Beispiel:

    ...
    clusterSecurity:
      authorization:
        clusterAdmin:
          gcpAccounts: [alex@example.com,hao@example.com,sasha@example.com]
    ...
    
  2. Aktualisieren Sie den Cluster:

    bmctl update cluster \
        -c CLUSTER_NAME \
        --kubeconfig=KUBECONFIG
    

    Nehmen Sie die folgenden Änderungen vor:

    • Ersetzen Sie CLUSTER_NAME durch den Namen des Clusters, den Sie aktualisieren möchten.
    • Wenn es sich bei dem Cluster um einen selbstverwalteten Cluster handelt (z. B. einen Administrator- oder einen eigenständigen Cluster), ersetzen Sie KUBECONFIG durch den Pfad zur kubeconfig-Datei des Clusters. Wenn der Cluster ein Nutzercluster ist, ersetzen Sie KUBECONFIG durch den Pfad zur kubeconfig-Datei des Administrators.

Weitere Informationen