Mit Google Distributed Cloud (GDC) mit Air Gap können Sie Ihre Kubernetes-Cluster nach der Erstellung mit GKE in GDC verwalten. Mit diesem Dienst können Sie sich an die sich ändernden Anforderungen Ihrer Containerarbeitslasten anpassen und Ihre vorhandenen Clusterknoten mit den folgenden Workflows verwalten:
Freigegebene Cluster an Projekte anhängen und von ihnen trennen: Sie können Ihren freigegebenen Cluster nach der Erstellung an mehrere Projekte anhängen und von ihnen trennen, um den Bereich der Arbeitslasten Ihres freigegebenen Clusters zu ändern.
Cluster in Ihrer Organisation ansehen: Listen Sie die Cluster in Ihrer Organisation auf, um zu sehen, was für Ihre Containerarbeitslasten verfügbar ist.
Kubernetes-Versionen auflisten: Rufen Sie die Kubernetes-Version Ihres Clusters auf, um sich über die Funktionen des Clusters im Zusammenhang mit den neuesten Kubernetes-Releases zu informieren.
Aktualisierbare Clustereigenschaften ansehen: Sehen Sie sich die Eigenschaften an, die in der benutzerdefinierten Ressourcendefinition
Clustergeändert werden können.
Dieses Dokument richtet sich an IT-Administratoren in der Gruppe der Plattformadministratoren, die Containerarbeitslasten verwalten, die in Clustern über mehrere Projekte hinweg gehostet werden, und an Entwickler in der Gruppe der Anwendungsoperatoren, die für die Erstellung von Anwendungsarbeitslasten innerhalb eines einzelnen Projekts verantwortlich sind. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.
Hinweis
Zum Ausführen der Aufgaben in diesem Dokument müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten.
IAM-Rollen anfordern
Sie benötigen bestimmte Rollen, um die Berechtigungen zu erhalten, die Sie zum Verwalten Ihres Kubernetes-Clusters benötigen. Welche Rollen Sie benötigen, hängt davon ab, ob Sie in einem freigegebenen Cluster auf Organisationsebene oder in einem Standardcluster auf Projektebene arbeiten. Weitere Informationen finden Sie unter Kubernetes-Clusterkonfigurationen.
Freigegebene Clusterrollen
Bitten Sie den IAM-Admin Ihrer Organisation, Ihnen die folgenden Rollen zuzuweisen, damit Sie Ihren freigegebenen Kubernetes-Cluster und seine Ressourcen aufrufen und verwalten können:
Projektersteller (
project-creator): Projektressourcen erstellen oder ansehen. Diese Rolle ist erforderlich, um einen freigegebenen Cluster an ein Projekt anzuhängen.Project Editor (
project-editor): Projektressourcen löschen, aktualisieren oder ansehen. Diese Rolle ist erforderlich, um einen freigegebenen Cluster von einem Projekt zu trennen.User Cluster Viewer (
user-cluster-viewer): Den freigegebenen Cluster und seine Ressourcen ansehen. Diese Rolle bietet Zugriff auf die APIs der Verwaltungsebene für den freigegebenen Cluster, der auf dem Verwaltungs-API-Server gehostet wird.
Diese Rollen sind nicht an einen Projekt-Namespace gebunden.
Standardclusterrollen
Bitten Sie Ihren IAM-Projektadministrator, Ihnen die Rolle Standard Cluster Viewer (standard-cluster-viewer) zuzuweisen, um Ihren Standard-Kubernetes-Cluster und seine Ressourcen aufzurufen. Diese Rolle bietet Zugriff auf die APIs der Verwaltungsebene für den Standardcluster, der auf dem Verwaltungs-API-Server gehostet wird.
Diese Rolle ist an Ihren Projekt-Namespace gebunden.
Umgebung vorbereiten
Wenn Sie Befehle für einen Kubernetes-Cluster über die API ausführen möchten, benötigen Sie die folgenden Ressourcen:
Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie ein Mitglied der Plattformadministratorgruppe nach dem Clusternamen.
Ersetzen Sie
CLUSTER_NAMEin dieser Anleitung durch den Namen des Kubernetes-Clusters.Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server.
Ersetzen Sie
MANAGEMENT_API_SERVERin dieser Anleitung durch den kubeconfig-Pfad des Verwaltungs-API-Servers.
Cluster in der Projekthierarchie verschieben
Projekte ermöglichen die logische Gruppierung von Dienstinstanzen. Sie können freigegebene Kubernetes-Cluster zur GDC-Projekthierarchie hinzufügen und daraus entfernen, um Ihre Dienste entsprechend zu gruppieren. Standardcluster können nicht in der Projekthierarchie verschoben werden, da sie nur für ein einzelnes Projekt gelten.
Projekt an einen freigegebenen Cluster anhängen
Wenn Sie einen freigegebenen Cluster über die GDC-Konsole erstellen, müssen Sie mindestens ein Projekt anhängen, bevor Sie Containerarbeitslasten darauf bereitstellen können. Wenn Sie einem vorhandenen Cluster zusätzliche Projekte hinzufügen müssen, führen Sie die folgenden Schritte aus:
Console
- Wählen Sie im Navigationsmenü Kubernetes Engine > Cluster aus.
- Klicken Sie in der Liste der Cluster auf den Clusternamen, um die Seite Clusterdetails zu öffnen.
- Wählen Sie Projekt anhängen aus.
- Klicken Sie in der Liste der verfügbaren Projekte auf den Namen des Projekts, das Sie an den Cluster anhängen möchten.
- Klicken Sie auf Speichern.
API
Erstellen Sie eine neue benutzerdefinierte
ProjectBinding-Ressource für Ihren Cluster:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectBinding metadata: name: CLUSTER_NAME-PROJECT_NAME namespace: platform labels: resourcemanager.gdc.goog/projectbinding-for-user-project: "true" spec: clusterRef: name: CLUSTER_NAME selector: nameSelector: matchNames: - PROJECT_NAME EOFErsetzen Sie Folgendes:
MANAGEMENT_API_SERVER: der kubeconfig-Pfad des zonalen API-Servers.CLUSTER_NAMEist der Name des Clusters.PROJECT_NAME: der Name des Projekts, an das der Cluster gebunden werden soll. JedeProjectBinding-Ressource kann nur einem Cluster zugeordnet werden. Wenn ein Projekt Zugriff auf mehrere Cluster benötigt, muss für jeden Cluster ein eindeutigerProjectBindingerstellt werden.
Terraform
Fügen Sie in einer Terraform-Konfigurationsdatei das folgende Code-Snippet ein, um die benutzerdefinierte Ressource
ProjectBindingzu erstellen:provider "kubernetes" { config_path = "MANAGEMENT_API_SERVER" } resource "kubernetes_manifest" "PROJECT_BINDING_RESOURCE_NAME" { manifest = { "apiVersion" = "resourcemanager.gdc.goog/v1" "kind" = "ProjectBinding" "metadata" = { "name" = "CLUSTER_NAME-PROJECT_NAME" "namespace" = "platform" "labels" = { "resourcemanager.gdc.goog/projectbinding-for-user-project" = "true" } } "spec" = { "clusterRef" = { "name" = "CLUSTER_NAME" } "selector" = { "nameSelector" = { "matchNames" = [ "PROJECT_NAME", ] } } } } }Ersetzen Sie Folgendes:
MANAGEMENT_API_SERVER: der kubeconfig-Pfad des zonalen API-Servers.PROJECT_BINDING_RESOURCE_NAME: der Terraform-Ressourcenname der Projektbindung, z. B.CLUSTER_NAME-PROJECT_NAME-binding. Dieser Name wird von Terraform verwendet, um Ihre Projektbindung zu identifizieren, und wird nicht von GDC verwendet.CLUSTER_NAMEist der Name des Clusters. JedeProjectBinding-Ressource kann nur einem Cluster zugeordnet werden. Wenn ein Projekt Zugriff auf mehrere Cluster benötigt, muss für jeden Cluster ein eindeutigerProjectBindingerstellt werden.PROJECT_NAME: der Name des Projekts, an das gebunden werden soll. JedeProjectBinding-Ressource kann nur einem Cluster zugeordnet werden. Wenn ein Projekt Zugriff auf mehrere Cluster benötigt, muss für jeden Cluster ein eindeutigesProjectBindingerstellt werden.
Wenden Sie die neue Projektbindung an:
terraform apply
Projekt von einem freigegebenen Cluster trennen
Das Trennen eines Projekts von einem freigegebenen Cluster kann zu erheblichen Änderungen führen, z. B. zum Löschen von Arbeitslasten, die im Cluster ausgeführt werden. Machen Sie sich mit den Konsequenzen vertraut, bevor Sie ein Projekt von einem freigegebenen Cluster trennen.
So trennen Sie ein Projekt von einem vorhandenen freigegebenen Cluster:
Console
- Wählen Sie im Navigationsmenü Kubernetes Engine > Cluster aus.
- Klicken Sie in der Clusterliste auf den Cluster, um die Seite Clusterdetails zu öffnen.
- Klicken Sie für das Projekt, das Sie vom Cluster trennen möchten, auf delete Trennen.
API
Löschen Sie die Ressource
ProjectBinding, die das Projekt und den Cluster verknüpft:kubectl --kubeconfig MANAGEMENT_API_SERVER delete projectbinding \ CLUSTER_NAME-PROJECT_NAME -n platformErsetzen Sie Folgendes:
MANAGEMENT_API_SERVER: der kubeconfig-Pfad des zonalen API-Servers.CLUSTER_NAMEist der Name des Clusters.PROJECT_NAME: der Name des Projekts, das vom Cluster getrennt werden soll.
Terraform
Löschen Sie die Projektbindungsressource:
terraform destroy -target kubernetes_manifest.PROJECT_BINDING_RESOURCE_NAMEErsetzen Sie
PROJECT_BINDING_RESOURCE_NAMEdurch den Terraform-Ressourcennamen der zu löschenden Projektbindung, z. B.CLUSTER_NAME-PROJECT_NAME-binding. Dieser Name wird von Terraform verwendet, um Ihre Projektbindung zu identifizieren, und wird nicht von GDC verwendet.
Alle Cluster in einem Projekt oder einer Organisation ansehen
Sie können alle verfügbaren Kubernetes-Cluster in einem Projekt oder einer Organisation aufrufen, einschließlich ihres Status, der Kubernetes-Versionen und anderer Details.
Da Kubernetes-Cluster eine zonale Ressource sind, können Sie Cluster nur pro Zone auflisten.
Console
Wählen Sie in der Projektauswahl Ihr Projekt oder Ihre Organisation aus.
Standardcluster sind projektbezogen und freigegebene Cluster sind organisationsbezogen. Wählen Sie den richtigen Bereich aus, um den entsprechenden Kubernetes-Clustertyp aufzurufen.
Wählen Sie im Navigationsmenü Kubernetes Engine > Cluster aus.
Alle verfügbaren freigegebenen Cluster in der Organisation werden mit ihrem Status und anderen Informationen angezeigt:

gdcloud
Listen Sie die verfügbaren Kubernetes-Cluster der Zone auf:
gdcloud clusters listDie Ausgabe sieht etwa so aus:
CLUSTERREF.NAME READINESS.STATE TYPE CURRENTVERSION.USERCLUSTERVERSION CURRENTVERSION.SUPPORT.STATUS user-vm-1 Ready user 1.15.0-gdch.394225-1.28.15-gke.1200 In Support user-vm-2 Ready user 1.15.0-gdch.394225-1.29.12-gke.800 In Support
API
Listen Sie die verfügbaren Kubernetes-Cluster der Zone auf:
kubectl get clusters.cluster.gdc.goog -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERErsetzen Sie Folgendes:
MANAGEMENT_API_SERVER: der kubeconfig-Pfad des zonalen API-Servers.KUBERNETES_CLUSTER_NAMESPACE: der Namespace des Clusters. Verwenden Sie für freigegebene Cluster den Namespaceplatform. Verwenden Sie für Standardcluster den Projekt-Namespace des Clusters.
Die Ausgabe sieht etwa so aus:
NAME STATE K8S VERSION user-vm-1 Running 1.25.10-gke.2100 user-test Running 1.26.5-gke.2100
Verfügbare Kubernetes-Versionen für einen Cluster auflisten
Sie können die verfügbaren Kubernetes-Versionen in Ihrer GDC-Zone auflisten, um die Kubernetes-Features zu prüfen, auf die Sie im Cluster zugreifen können.
Listen Sie die verfügbaren Kubernetes-Versionen in Ihrer Zone auf:
kubectl get userclustermetadata.upgrade.private.gdc.goog \ -o=custom-columns=K8S-VERSION:.spec.kubernetesVersion \ --kubeconfig MANAGEMENT_API_SERVERErsetzen Sie
MANAGEMENT_API_SERVERdurch die kubeconfig-Datei des zonalen API-Servers Ihres Clusters.Die Ausgabe sieht dann ungefähr so aus:
K8S-VERSION 1.25.10-gke.2100 1.26.5-gke.2100 1.27.4-gke.500
Aktualisierbare Attribute ansehen
Für jeden Kubernetes-Cluster sind nach der Erstellung eine Reihe von Attributen verfügbar, die geändert werden können. Sie können nur die änderbaren Attribute ändern, die sich im spec der benutzerdefinierten Ressource Cluster befinden. Nicht alle Attribute in der spec können nach der Bereitstellung des Clusters aktualisiert werden. So rufen Sie diese aktualisierbaren Attribute auf:
Console
Wählen Sie im Navigationsmenü Kubernetes Engine > Cluster aus.
Klicken Sie in der Liste der Kubernetes-Cluster auf einen Clusternamen, um die zugehörigen Attribute aufzurufen.
Bearbeitbare Eigenschaften sind mit dem Symbol Bearbeiten edit gekennzeichnet.
API
Hier finden Sie die Liste der Properties für die
Cluster-Spezifikation und die gültigen Werte für jede Property:kubectl explain clusters.cluster.gdc.goog.spec \ --kubeconfig MANAGEMENT_API_SERVERErsetzen Sie
MANAGEMENT_API_SERVERdurch den kubeconfig-Pfad des zonalen API-Servers.Die Ausgabe sieht etwa so aus:
KIND: Cluster VERSION: cluster.gdc.goog/v1 RESOURCE: spec <Object> DESCRIPTION: <empty> FIELDS: clusterNetwork <Object> The cluster network configuration. If unset, the default configurations with pod and service CIDR sizes are used. Optional. Mutable. initialVersion <Object> The GDC air-gapped version information of the user cluster during cluster creation. Optional. Default to use the latest applicable version. Immutable. loadBalancer <Object> The load balancer configuration. If unset, the default configuration with the ingress service IP address size is used. Optional. Mutable. nodePools <[]Object> The list of node pools for the cluster worker nodes. Optional. Mutable. releaseChannel <Object> The release channel a cluster is subscribed to. When a cluster is subscribed to a release channel, GDC maintains the cluster versions for users. Optional. Mutable.Aktualisieren Sie diese Einstellungen über die GDC-Konsole oder die kubectl-Befehlszeile. Sie können beispielsweise die Größe eines Knotenpools ändern.
Nächste Schritte
- Kubernetes-Cluster – Übersicht
- Hochverfügbarkeit für Ihre Anwendungen
- Kubernetes-Clusterkonfigurationen