In diesem Dokument wird erläutert, wie Sie mit der Google Distributed Cloud-Software auf Bare Metal erstellte Administrator- und Nutzercluster für die Verwaltung in derGoogle Cloud -Konsole verfügbar machen. Die Clusterverwaltung umfasst die Möglichkeit, sich bei Clustern anzumelden, Arbeitslasten anzusehen sowie Cluster zu upgraden, zu aktualisieren und zu löschen.
Flottenmitglieder und die Console
Alle Cluster müssen Mitglieder einer Flotte sein – einer einheitlichen Möglichkeit, mehrere Cluster und ihre Arbeitslasten anzuzeigen und zu verwalten. Jede Flotte von Clustern ist mit einem Flotten-Hostprojekt verknüpft.
Alle Cluster werden bei der Erstellung bei einer Flotte registriert:
Wenn Sie einen Cluster mit
bmctl
erstellen, geben Sie das Hostprojekt Ihrer Flotte im AbschnittgkeConnect
der Clusterkonfigurationsdatei an. Der Cluster wird zu einem Flottenmitglied des angegebenen Projekts.Wenn Sie einen Administrator- oder Nutzercluster mit einem Standard-GKE On-Prem API-Client (Console, Google Cloud CLI oder Terraform) erstellen, wird der Cluster zu einem Flottenmitglied im angegebenen Projekt.
Flottenmitglieder außerhalb von Google Cloud, z. B. Google Distributed Cloud, werden in der Console in Ihrem Flottenhostprojekt zusammen mit anderen Flottenclustern wie GKE auf Google Cloudangezeigt. Ob und wie Sie Bare-Metal-Cluster über die Console verwalten können, hängt von folgenden Faktoren ab:
Wenn Sie die Authentifizierung eingerichtet haben, können Sie sich in Ihren Clustern anmelden und sich die Arbeitslasten und andere Details ansehen.
Falls Sieaktiviert haben die Verwaltung des Clusterlebenszyklus für den Cluster können Sie Administrator- und Nutzercluster mit der Console aktualisieren und Nutzercluster mit der Console aktualisieren und löschen. Wenn diese Funktion nicht aktiviert ist, können Sie nur den Clusterlebenszyklus mit
bmctl
auf Ihrer Administratorworkstation verwalten.
Registrierte Cluster ansehen
Alle Ihre Cluster werden auf der Seite GKE-Cluster in der Console angezeigt. So erhalten Sie einen Überblick über Ihre gesamte Flotte und können für Google Distributed Cloud sehen, welche Cluster von der GKE On-Prem API verwaltet werden.
So rufen Sie Ihre Flottencluster auf:
Rufen Sie in der Console die Seite Google Kubernetes Engine-Cluster – Übersicht auf.
Wählen Sie das Google Cloud -Projekt aus.
Wenn in der Spalte Typ Bare Metal angezeigt wird, wird der Cluster von der GKE On-Prem API verwaltet. Hinweis: Nur Administrator- und Nutzercluster können von der GKE On-Prem API verwaltet werden.
Wenn in der Spalte Typ Extern angezeigt wird, wird der Cluster nicht von der GKE On-Prem API verwaltet.
Wenn sie weitere Details zu einem Cluster sehen möchten, müssen Sie sich anmelden und beim Cluster authentifizieren. Gehen Sie dazu so vor:
- Authentifizierungsmethode einrichten
- Nutzern bestimmte Rollen für Identity and Access Management gewähren
Authentifizierung einrichten
Wie bereits beschrieben, werden alle Cluster auf der Seite „GKE-Cluster“ in der Console angezeigt. Um jedoch weitere Details wie Knoten und Arbeitslasten anzusehen (und den Clusterlebenszyklus auszuführen, wenn die Funktion aktiviert ist), müssen Sie sich anmelden und beim Cluster authentifizieren. Dazu müssen Ihre Cluster mit einer der folgenden Authentifizierungsmethoden eingerichtet sein:
Google Identity: Mit dieser Option können Sie sich mit IhrerGoogle Cloud -Identität anmelden. Das ist die E‑Mail-Adresse, die mit IhremGoogle Cloud -Konto verknüpft ist. Verwenden Sie diese Option, wenn Nutzer bereits Zugriff aufGoogle Cloud mit ihrer Google-Identität haben. Wenn Sie den Cluster in in der Console erstellt haben, können Sie sich über Ihre Google-Identität anmelden, aber Sie müssen die Authentifizierung für andere Nutzer konfigurieren.
Die einfachste Authentifizierungsmethode ist die Anmeldung mit einer Google-Identität in der Console. Daher haben wir dies detaillierter unter Google-Identitätsauthentifizierung einrichten beschrieben.
OpenID Connect (OIDC): Mit dieser Option können Sie sich über die Console mit der Identität von Clustern über einen externen OIDC-Identitätsanbieter wie Okta oder Microsoft AD FS bei Clustern anmelden. Diese Option ist möglicherweise sinnvoll, wenn Ihre Nutzer bereits Nutzernamen, Passwörter und Mitgliedschaften in Sicherheitsgruppen von Ihrem Anbieter haben. In den folgenden Anleitungen erfahren Sie, wie Sie die OIDC-Authentifizierung von Drittanbietern für Ihre Cluster einrichten:
Cluster für GKE Identity Service mit OIDC konfigurieren: In dieser Anleitung wird beschrieben, wie Sie die OIDC-Authentifizierung auf Clusterbasis einrichten.
GKE Identity Service für eine Flotte einrichten: Mit dieser Option können Sie OIDC auf Flottenebene einrichten.
Inhabertoken: Wenn die oben 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 zuweisen
Der Zugriff auf die Console wird durch Identity and Access Management (IAM) gesteuert. Wenn Sie den Clusterlebenszyklus in der Console verwalten möchten, müssen Sie Nutzern, die keine Projektinhaber sind, einige IAM-Rollen zuweisen:
Damit Nutzer auf die Console zugreifen können, müssen Sie ihnen mindestens die folgenden Rollen zuweisen:
roles/container.viewer
: Mit dieser Rolle können Nutzer die GKE-Clusterseite und andere Containerressourcen in der Console aufrufen. Ausführliche Informationen zu den in dieser Rolle enthaltenen Berechtigungen und 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 die Cluster außerhalb vonGoogle Cloud in der Console aufrufen. Ausführliche Informationen zu den in dieser Rolle enthaltenen Berechtigungen und 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 ihnen die IAM-Rolle
roles/gkeonprem.admin
zu. Die Die Rolleroles/gkeonprem.admin
gewährt Nutzern Administratorzugriff auf die GKE On-Prem API, mit der die Console den Clusterlebenszyklus verwaltet. Weitere Informationen zu den in dieser Rolle enthaltenen Berechtigungen finden Sie in der IAM-Dokumentation unter GKE On-Prem-Rollen.
Mit den folgenden Befehlen werden die Mindestrollen gewährt, 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
Dabei gilt:
PROJECT_ID
ist das Flotten-Hostprojekt. Für Cluster, die mitbmctl
erstellt wurden, ist dies das Projekt, das Sie im AbschnittgkeConnect
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 Formatuser:emailID
, z. B.user:alice@example.com
.
Lebenszyklusverwaltung für Cluster in der Console aktivieren
Administrator- und Nutzercluster, die mit Standardtools (der Console, der gcloud CLI oder Terraform) erstellt wurden, werden automatisch in der GKE On-Prem API registriert. So können Sie Aufgaben zur Verwaltung des Clusterlebenszyklus in der Console ausführen. Wenn Sie in Google Distributed Cloud 1.16 und höher Nutzer- und Administratorcluster mit bmctl
erstellen, werden sie standardmäßig in der GKE On-Prem API registriert. Wenn Sie einen Cluster in der GKE On-Prem API registrieren müssen, folgen Sie der Anleitung unter Cluster konfigurieren, der von der GKE On-Prem API verwaltet werden soll.
Google-Identitätsauthentifizierung einrichten
Damit sich Nutzer 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 der Seite der GKE-Cluster sehen und mit diesen interagieren zu können.
Nutzer müssen den Richtlinien der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes hinzugefügt werden, auf die das Connect-Gateway über den Kubernetes API-Server des Clusters den Connect-Agent zugreifen muss.
RBAC-Autorisierung konfigurieren
Der Kubernetes API-Server jedes Clusters muss Anfragen von der Console autorisieren können. Um die Autorisierung zu konfigurieren, müssen Sie für Nutzer in jedem Cluster Richtlinien für die rollenbasierte Zugriffssteuerung (Role-based Access Control, RBAC) von Kubernetes konfigurieren. Ihr Google-Konto wird in den folgenden Fällen als Administrator mit vollem Zugriff auf einen Nutzercluster hinzugefügt:
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.Sie haben den Nutzercluster mit
bmctl
erstellt und Ihr Google-Konto in clusterSecurity.authorization.clusterAdmin.gcpAccounts konfiguriert.
Nachdem der Cluster erstellt wurde, können Sie weitere Nutzer als Administratoren hinzufügen. Sie haben folgende Möglichkeiten, Administratorzugriff auf die
Cluster zu gewähren. Es werden zwei verschiedene gcloud
-Befehle bereitgestellt.
Der Befehl
gcloud ... generate-gateway-rbac
muss auf Ihrer Administrator-Workstation ausgeführt werden, da für den Befehl Zugriff auf die kubeconfig und den Kontext des Clusters erforderlich ist. Diese sind in der Regel nur auf Ihrer Administrator-Workstation verfügbar. Mit dem Befehlgenerate-gateway-rbac
können Sie die RBAC-Richtlinien anpassen. Die E-Mail-Adressen der Nutzer werden jedoch nicht als Administratoren im Abschnitt Clusterdetails in der Console angezeigt.Der Befehl
gcloud ... update
kann auf einer beliebigen Administratorworkstation oder einen beliebigen Computer mit Zugriff auf die GKE On-Prem API ausgeführt werden.
Wenn Sie einen Administratorcluster in der Google Cloud -Konsole erstellt haben, erhalten Sie Lesezugriff auf den Cluster. Wenn Sie die Rolle clusterrole/cluster-admin
erhalten möchten, muss Sie jemand mit dieser Rolle mit dem Befehl gcloud ... generate-gateway-rbac
hinzufügen.
generate-gateway-rbac
Führen Sie die folgenden Schritte auf Ihrer Administrator-Workstation aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:
Führen Sie den folgenden Befehl aus, um Komponenten zu aktualisieren (falls erforderlich):
gcloud components update
Generieren Sie die RBAC-Richtlinien für Ihren Cluster für Nutzer und Dienstkonten und wenden Sie sie 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 dabei 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 Name des Clusters identisch.
- ROLE: die Kubernetes-Rolle, die Sie den Nutzern auf dem Cluster gewähren. Wenn Sie Nutzern vollständigen Zugriff auf jede Ressource im Cluster in allen Namespaces gewähren möchten, geben Sie
clusterrole/cluster-admin
an. Wenn Sie nur Lesezugriff gewähren möchten, geben Sieclusterrole/view
an. Um den Zugriff einzuschränken, erstellen Sie eine benutzerdefinierte Rolle, 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=222larabrown@gmail.com,test-acct@test-project.iam.gserviceaccount.com
. - PROJECT_ID: die Projekt-ID des Hostprojekts der Flotte.
- KUBECONFIG_PATH: der lokale Pfad Ihrer kubeconfig-Datei, die einen Eintrag für den Cluster enthält.
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
Nach der Ausführung von
gcloud container fleet memberships generate-gateway-rbac
wird am Ende der Ausgabe etwa Folgendes angezeigt. Die Ausgabe wurde zur besseren Lesbarkeit gekürzt: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
Führen Sie den folgenden Befehl aus, um Komponenten zu aktualisieren:
gcloud components update
Fügen Sie für jeden Nutzer, dem die Rolle
clusterrole/cluster-admin
zugewiesen werden muss, das Flag--admin-users
ein und führen Sie den folgenden Befehl aus. Sie können nicht mehrere Nutzer in einem einzelnen Flag angeben. Geben Sie unbedingt Ihr Google-Konto im Befehl an, da die Berechtigungsliste mit den Nutzern überschrieben wird, die Sie im Befehl angeben.gcloud container bare-metal clusters update USER_CLUSTER_NAME \ --admin-users YOUR_GOOGLE_ACCOUNT \ --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
Zusätzlich zur Zuweisung der Kubernetes-Rolle clusterrole/cluster-admin
gewährt der Befehl die RBAC-Richtlinien, die die Nutzer für den Zugriff auf den Cluster über das Connect-Gateway benötigen.
bmctl
Führen Sie die folgenden Schritte auf Ihrer Administrator-Workstation aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:
Fügen Sie der Clusterkonfigurationsdatei den Abschnitt
clusterSecurity.authorization
hinzu. Geben Sie Ihre E-Mail-Adresse und die E-Mail-Adressen anderer Nutzer an, die den Cluster verwalten müssen. Beispiel:... clusterSecurity: authorization: clusterAdmin: gcpAccounts: [alex@example.com,hao@example.com,sasha@example.com] ...
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. ein Administrator- oder Standalone-Cluster), ersetzen Sie KUBECONFIG durch den Pfad zur kubeconfig-Datei des Clusters. Wenn es sich bei dem Cluster um einen Nutzercluster handelt, ersetzen Sie KUBECONFIG durch den Pfad zur kubeconfig-Datei des Administratorclusters.
Console
Führen Sie die folgenden Schritte in der Console aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:
Rufen Sie in der Console die Seite Google Kubernetes Engine-Cluster – Übersicht auf.
Wählen Sie das Google Cloud Projekt aus, in dem sich der Nutzercluster befindet.
Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.
Klicken Sie im Berechtigungsbereich auf das Feld Administratornutzer und geben Sie die E-Mail-Adresse jedes Nutzers ein.
Wenn Sie keine weiteren Nutzer mehr hinzufügen möchten, klicken Sie auf Fertig.
Weitere Informationen
- Flottenverwaltung – Übersicht
- Über die Google Cloud Console mit Clustern arbeiten
- Connect – Übersicht
- Connect Agent – Übersicht