In diesem Dokument wird erläutert, wie Sie GKE on Bare Metal für die Verwaltung in der Google Cloud Console verfügbar machen. Dazu gehört die einfache Verwaltung, beispielsweise die Möglichkeit, sich bei Clustern anzumelden und deren Arbeitslasten anzusehen, sowie die Aktivierung der Verwaltung des Clusterlebenszyklus, sodass Sie Cluster upgraden, aktualisieren und löschen können.
Flottenmitglieder und die Console
GKE on Bare Metal muss alle Mitglieder einer Flotte sein. Auf diese Weise können mehrere Cluster und deren Arbeitslasten einheitlich angezeigt und verwaltet werden. Jede Clusterflotte ist einem Flotten-Hostprojekt zugeordnet.
In GKE on Bare Metal wird ein Nutzercluster bei der Erstellung bei einer Flotte registriert:
Wenn Sie einen Cluster mit
bmctl
erstellen, geben Sie das Flotten-Hostprojekt im AbschnittgkeConnect
der Clusterkonfigurationsdatei an. GKE on Bare Metal verwendet diese Informationen, um Ihren Cluster beim 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 wie GKE on Bare Metal werden in der Konsole in Ihrem Flottenhostprojekt zusammen mit anderen Flottenclustern wie GKE in Google Cloud angezeigt. In welchem Umfang Sie GKE on 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 für den Cluster die Verwaltung des Clusterlebenszyklus 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
bmctl
erstellt wurden. Wenn dieses Feature nicht aktiviert ist, können Sie den Clusterlebenszyklus nur mitbmctl
auf Ihrer Administratorworkstation verwalten.
Registrierte Cluster ansehen
Alle Flottencluster werden auf den Seiten GKE Enterprise-Cluster und GKE-Cluster in der Console angezeigt. So erhalten Sie einen Überblick über Ihre gesamte Flotte und können für GKE on Bare Metal sehen, welche Cluster von der Anthos On-Prem API verwaltet werden.
So rufen Sie Ihre Flottencluster auf:
Rufen Sie in der Console die Seite „GKE Enterprise-Cluster“ auf.
Wählen Sie das Google Cloud-Projekt aus.
Wenn Anthos Bare Metal in der Spalte Typ 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.
Nutzer müssen sich beim Cluster anmelden und sich authentifizieren, um weitere Details zu einem Cluster zu sehen. 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 Flottencluster in der Console in den Listen der GKE- und GKE Enterprise-Cluster angezeigt. Nutzer müssen sich jedoch beim Cluster anmelden und sich beim Cluster authentifizieren, um weitere Details wie Knoten und Arbeitslasten anzuzeigen (und Verwaltungsaufgaben für den Clusterlebenszyklus auszuführen, wenn das Feature aktiviert ist). Dazu müssen Ihre registrierten Cluster mit einer der folgenden Authentifizierungsmethoden eingerichtet werden:
Google Identity: 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. Sie müssen jedoch die Authentifizierung für andere Nutzer konfigurieren.
Die Anmeldung mit einer Google-Identität ist der einfachste Ansatz für die Authentifizierung in der Konsole. Die entsprechende Anleitung finden Sie unten unter Google-Identitätsauthentifizierung einrichten.
OpenID Connect (OIDC): Mit dieser Option können sich Nutzer über die Konsole mit der Identität eines OIDC-Identitätsanbieters eines Drittanbieters wie Okta oder Microsoft AD FS bei Clustern anmelden. Sie sollten diese Option verwenden, wenn Ihre Nutzer bereits Nutzernamen, Passwörter und Sicherheitsgruppenmitgliedschaften von Ihrem Anbieter haben. Informationen zum Einrichten der Drittanbieter-OIDC-Authentifizierung für Ihre Cluster finden Sie in den folgenden Anleitungen:
Cluster für GKE Identity Service mit OIDC konfigurieren: In dieser Anleitung wird beschrieben, wie Sie die OIDC-Authentifizierung für Cluster für 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 Verwendung eines Inhabertokens einrichten.
Erforderliche Rollen gewähren
Der Zugriff auf die Console wird von Google Cloud IAM gesteuert. Um den Clusterlebenszyklus in der Console zu verwalten, 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. Ausführliche 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. Ausführliche 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, müssen Sie die IAM-Rolle
roles/gkeonprem.admin
zuweisen. Die Rolleroles/gkeonprem.admin
gewährt Nutzern Administratorzugriff auf die Anthos On-Prem API, die in der Console zur Verwaltung des Clusterlebenszyklus verwendet wird. Weitere Informationen zu den Berechtigungen in dieser Rolle finden Sie in der IAM-Dokumentation unter GKE On-Prem-Rollen.
Die folgenden Befehle zeigen, wie Sie die minimalen Rollen zuweisen, 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. Bei Clustern, 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
.
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 bmctl
erstellt wurden, führen Sie die Schritte unter Nutzercluster für die Verwaltung durch die Anthos On-Prem API konfigurieren aus.
Wenn die Verwaltung des Clusterlebenszyklus aktiviert ist, können Sie Cluster über die Console aktualisieren:
- Nutzercluster aktualisieren
- Knotenpools zu Nutzerclustern hinzufügen oder daraus entfernen
- Nutzercluster löschen
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 den Seiten GKE-Clusterliste und GKE Enterprise-Clusterliste sehen und mit ihnen interagieren zu können.
Nutzer müssen den Kubernetes-Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) 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 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.
gcloud-CLI
Führen Sie die folgenden Schritte auf Ihrer Administrator-Workstation aus, um die RBAC-Richtlinien auf Nutzer anzuwenden:
Führen Sie die folgenden Befehle aus, um sich mit Ihrem Google-Konto anzumelden und Komponenten zu aktualisieren:
gcloud auth login gcloud components update
Generieren Sie die RBAC-Richtlinien und wenden Sie sie für Nutzer und Dienstkonten auf den 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 GKE on Bare Metal sind der Name der Mitgliedschaft und der Clustername identisch.
- ROLE: die Kubernetes-Rolle, die Sie den Nutzern im Cluster zuweisen möchten. Wenn Sie Nutzern vollständigen Zugriff auf jede Ressource im Cluster in allen Namespaces gewähren möchten, geben Sie
clusterrole/cluster-admin
an. Erstellen Sie eine benutzerdefinierte Rolle, z. B.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
. - 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, die zur besseren Lesbarkeit gekürzt wurde, in etwa Folgendes: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 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 der Cluster ein selbst verwaltender Cluster ist (z. B. 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.
Weitere Informationen
- Gerätepool verwalten
- Über die Google Cloud Console mit Clustern arbeiten
- Connect – Übersicht
- Connect Agent – Übersicht