In diesem Dokument wird erläutert, wie Administrator- und Nutzercluster, die mit Google Distributed Cloud-Software auf Bare Metal erstellt wurden, für die Verwaltung in der Google Cloud Console verfügbar gemacht werden. Zu den Verwaltungsfunktionen des Clusters gehören die Möglichkeit, sich bei Clustern anzumelden, Arbeitslasten anzusehen sowie Cluster zu aktualisieren, zu aktualisieren und zu löschen.
Flottenmitglieder und die Console
Alle Cluster müssen Mitglieder einer Flotte sein. So können Sie mehrere Cluster und deren Arbeitslasten auf einheitliche Weise ansehen und verwalten. Jede Clusterflotte ist einem Flotten-Hostprojekt zugeordnet.
Alle Cluster werden zum Zeitpunkt der Erstellung bei einer Flotte registriert:
Wenn Sie einen Cluster mit
bmctl
erstellen, geben Sie Ihr Flotten-Hostprojekt im AbschnittgkeConnect
der Clusterkonfigurationsdatei an. Der Cluster wird zum Flottenmitglied des angegebenen Projekts.Wenn Sie einen Administrator- oder Nutzercluster mit einem GKE On-Prem API-Standardclient (der Console, der Google Cloud CLI oder Terraform) erstellen, wird der Cluster ein Flottenmitglied im 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. Der Umfang, in dem 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 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 die Administrator- und Nutzercluster über die Console aktualisieren und die Console zum Aktualisieren und Löschen von Nutzerclustern verwenden. Wenn dieses Feature nicht aktiviert ist, können Sie den Clusterlebenszyklus nur mit
bmctl
auf Ihrer Administratorworkstation verwalten.
Registrierte Cluster ansehen
Alle Ihre Cluster werden in der Console auf der Seite GKE-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:
Rufen Sie in der Console die Übersichtsseite für Google Kubernetes Engine-Cluster 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. 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 beim Cluster anmelden und sich authentifizieren. Führen Sie dazu die folgenden Schritte aus:
- 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. Wenn Sie jedoch weitere Details wie Knoten und Arbeitslasten sehen und Aufgaben des Clusterlebenszyklus verwalten möchten, wenn das Feature aktiviert ist, müssen Sie sich beim Cluster anmelden und sich authentifizieren. Dazu müssen Ihre Cluster mit einer der folgenden Authentifizierungsmethoden eingerichtet werden:
Google-Identität: Mit dieser Option können Sie sich mit Ihrer Google Cloud-Identität 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. Wir haben daher unter Google-Identitätsauthentifizierung einrichten ausführlicher beschrieben, wie sie eingerichtet werden.
OpenID Connect (OIDC): Mit dieser Option können Sie sich über die Console bei Clustern mit deren Identität von einem OIDC-Drittanbieter wie Okta oder Microsoft AD FS 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:
Cluster für den GKE Identity Service mit OIDC konfigurieren: In diesem Leitfaden erfahren Sie, wie Sie die OIDC-Authentifizierung für einzelne Cluster einrichten.
GKE Identity Service für eine Flotte einrichten: Mit dieser Option können Sie OIDC auf Flottenebene 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 Identity and Access Management (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 ansehen. Weitere Informationen zu den in dieser Rolle enthaltenen Berechtigungen oder zum Zuweisen einer Rolle mit Lese- und Schreibberechtigungen finden Sie unter Kubernetes Engine-Rollen in der IAM-Dokumentation.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- und 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 Rolleroles/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 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. Bei Clustern, die mitbmctl
erstellt wurden, ist dies das Projekt, das Sie im AbschnittgkeConnect
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 Formatuser:emailID
, z. B.user:alice@example.com
.
Verwaltung des Clusterlebenszyklus in der Console aktivieren
Administrator- und Nutzercluster, die mit Standardtools (Konsole, 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 diese standardmäßig bei der GKE On-Prem API registriert. Wenn Sie einen Cluster bei der GKE On-Prem API registrieren müssen, führen Sie die Schritte unter Cluster für die Verwaltung durch die GKE On-Prem API konfigurieren aus.
Google-Identitätsauthentifizierung einrichten
Damit sich Nutzer mit ihrer Google-Identität beim 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 GKE-Cluster sehen und mit ihnen interagieren zu können.
Nutzer müssen den RBAC-Richtlinien (Role-Based Access Control) von Kubernetes hinzugefügt werden, die das Verbindungsgateway benötigt, um mit dem Connect-Agent auf den Kubernetes API-Server des Clusters zuzugreifen.
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 Richtlinien für die rollenbasierte Zugriffssteuerung (Role-based Access Control, RBAC) von Kubernetes für Nutzer in jedem Cluster konfigurieren. Ihr Google-Konto wird in den folgenden Fällen als Administrator mit uneingeschränktem 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.
Sie können andere Nutzer 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 Befehlgenerate-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.
Wenn Sie einen Administratorcluster in der Google Cloud Console erstellt haben, erhalten Sie Lesezugriff auf den Cluster. Wenn Ihnen die Rolle clusterrole/cluster-admin
zugewiesen werden soll, muss ein Nutzer mit dieser Rolle Sie mit dem Befehl gcloud ... generate-gateway-rbac
hinzufügen.
generate-gateway-rbac
Führen Sie auf Ihrer Administratorworkstation die folgenden Schritte 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 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=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 jede Ressource im Cluster in allen Namespaces gewähren möchten, geben Sie
clusterrole/cluster-admin
an. Wenn Sie Lesezugriff gewähren möchten, geben Sieclusterrole/view
an. Wenn Sie den Zugriff einschränken möchten, 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 Flotten-Hostprojekts.
- 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, prüfen Sie, ob er für den Zugriff auf den Cluster funktioniert. Führen Sie dazu einen 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 Verbindungsgateway.
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
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 bare-metal 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.
bmctl
Führen Sie auf Ihrer Administratorworkstation die folgenden Schritte 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-Adresse 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 der Cluster ein selbst verwaltender Cluster ist (z. B. ein Administrator- oder eigenständiger 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 admin-Clusters.
Console
Führen Sie in der Console die folgenden Schritte aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:
Rufen Sie in der Console die Übersichtsseite für Google Kubernetes Engine-Cluster 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 Abschnitt Autorisierung auf das Feld Administratornutzer und geben Sie die E-Mail-Adressen der einzelnen Nutzer ein.
Wenn Sie alle gewünschten Nutzer hinzugefügt haben, klicken Sie auf Fertig.
Weitere Informationen
- Übersicht über die Flottenverwaltung
- Über die Google Cloud Console mit Clustern arbeiten
- Connect – Übersicht
- Connect Agent – Übersicht