CNCF-konformen Cluster anhängen

Mit angehängten GKE-Clustern können Sie vorhandene CNCF-konforme Kubernetes-Cluster zentral in der Google Cloud -Konsole verwalten, einschließlich Clustern, die auf AWS, Azure oder an einem anderen Ort gehostet werden. Diese zentralisierte Verwaltung konsolidiert Vorgänge und hilft Ihnen, Cluster effizienter in mehreren Umgebungen bereitzustellen und auszuführen. In diesem Dokument wird Plattformadministratoren gezeigt, wie sie berechtigte Kubernetes-Cluster an Google Cloudanhängen.

Wenn Sie einen Amazon EKS- oder Azure AKS-Cluster anhängen, finden Sie die aktuelle Anleitung unter EKS-Cluster anhängen oder AKS-Cluster anhängen. Eine Anleitung zur Verwendung der vorherigen Generation von mit GKE angehängten Clustern finden Sie unter Drittanbietercluster anhängen.

Unterstützte Kubernetes-Cluster

Sie können Ihrer Flotte beliebige konforme Kubernetes-Cluster mit x86-Knoten hinzufügen und sie dann in der Google Cloud Console zusammen mit Ihren GKE-Clustern ansehen.

Google überprüft zwar nicht jede Kubernetes-Distribution auf vollständige Funktionskompatibilität, aber alle festgestellten Inkompatibilitäten werden hier dokumentiert. Weitere Informationen und Unterstützung bei der Fehlerbehebung finden Sie unter Unterstützung für GKE-Clusterversionen und ‑Upgrades.

Vorbereitung

Achten Sie darauf, dass Ihr Cluster die Clusteranforderungen erfüllt.

Wenn Sie Ihren Cluster anhängen, müssen Sie Folgendes angeben:

Die administrative Region ist eine Google Cloud Region, über die Sie Ihren angehängten Cluster verwalten. Sie können eine beliebige unterstützte Region auswählen. Es empfiehlt sich jedoch, die Region auszuwählen, die Ihrem Cluster geografisch am nächsten liegt. In der administrativen Region werden keine Nutzerdaten gespeichert.

Die Plattformversion ist die Version der GKE-verbundenen Cluster, die in Ihrem Cluster installiert werden sollen. Mit dem folgenden Befehl können Sie alle unterstützten Versionen auflisten:

gcloud container attached get-server-config  \
  --location=GOOGLE_CLOUD_REGION

Ersetzen Sie GOOGLE_CLOUD_REGION durch den Namen desGoogle Cloud Standorts, von dem aus Sie Ihren Cluster verwalten möchten.

Plattformversionsnummerierung

In diesen Dokumenten wird die Version des GKE-angehängten Clusters als Plattformversion bezeichnet, um sie von der Kubernetes-Version zu unterscheiden. Bei GKE-angehängten Clustern wird die gleiche Versionsnummerkonvention wie bei GKE verwendet, z. B. 1.21.5-gke.1. Wenn Sie Ihren Cluster anhängen oder aktualisieren, müssen Sie eine Plattformversion auswählen, deren Nebenversion der Kubernetes-Version Ihres Clusters entspricht oder eine Ebene darunter liegt. Sie können beispielsweise einen Cluster mit Kubernetes v1.22.* und der GKE-angehängten Clusterplattformversion 1.21.* oder 1.22.* anhängen.

Dadurch können Sie Ihren Cluster auf die nächste Nebenversion aktualisieren, bevor Sie GKE-angehängte Cluster aktualisieren.

Cluster anhängen

Führen Sie die folgenden Befehle aus, um Ihren CNCF-konformen Cluster an die Google Cloud Flottenverwaltung anzuhängen:

  1. Achten Sie darauf, dass Ihre kubeconfig-Datei einen Eintrag für den Cluster enthält, den Sie anhängen möchten. Die genauen Anleitungen variieren je nach Distribution.

  2. Führen Sie diesen Befehl aus, um den kubeconfig-Kontext Ihres Clusters zu extrahieren und in der Umgebungsvariablen KUBECONFIG_CONTEXT zu speichern:

    KUBECONFIG_CONTEXT=$(kubectl config current-context)
    
  3. Der Befehl zum Registrieren Ihres Clusters variiert geringfügig, je nachdem, ob Ihr Cluster einen öffentlichen oder privaten OIDC-Aussteller hat. Wählen Sie den Tab aus, der auf Ihren Cluster zutrifft:

    Privater OIDC-Aussteller

    Verwenden Sie den Befehl gcloud container attached clusters register, um den Cluster zu registrieren:

    gcloud container attached clusters register CLUSTER_NAME \
      --location=GOOGLE_CLOUD_REGION \
      --fleet-project=PROJECT_NUMBER \
      --platform-version=PLATFORM_VERSION \
      --distribution=generic \
      --context=KUBECONFIG_CONTEXT \
      --has-private-issuer \
      --kubeconfig=KUBECONFIG_PATH
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: Der Name Ihres Clusters. Der CLUSTER_NAME muss dem RFC 1123-Standard für Labelnamen entsprechen.
    • GOOGLE_CLOUD_REGION: die Google Cloud Region, in der Sie Ihren Cluster verwalten möchten
    • PROJECT_NUMBER: das Flotten-Hostprojekt, in dem der Cluster registriert werden soll
    • PLATFORM_VERSION: die Plattformversion, die für den Cluster verwendet werden soll
    • KUBECONFIG_CONTEXT: Kontext in der kubeconfig für den Zugriff auf den Cluster
    • KUBECONFIG_PATH: Pfad zu Ihrer kubeconfig-Datei

    Öffentlicher OIDC-Aussteller

    1. Rufen Sie die OIDC-Aussteller-URL Ihres Clusters ab und speichern Sie sie zur späteren Verwendung. Die genauen Anleitungen variieren je nach Distribution.

    2. Führen Sie diesen Befehl aus, um den kubeconfig-Kontext Ihres Clusters zu extrahieren und in der Umgebungsvariablen KUBECONFIG_CONTEXT zu speichern:

      KUBECONFIG_CONTEXT=$(kubectl config current-context)
      
    3. Verwenden Sie den Befehl gcloud container attached clusters register, um den Cluster zu registrieren:

      gcloud container attached clusters register CLUSTER_NAME \
        --location=GOOGLE_CLOUD_REGION \
        --fleet-project=PROJECT_NUMBER \
        --platform-version=PLATFORM_VERSION \
        --distribution=generic \
        --issuer-url=ISSUER_URL \
        --context=KUBECONFIG_CONTEXT \
        --kubeconfig=KUBECONFIG_PATH
      

      Ersetzen Sie Folgendes:

      • CLUSTER_NAME: Der Name Ihres Clusters. Der CLUSTER_NAME muss dem RFC 1123-Standard für Labelnamen entsprechen.
      • GOOGLE_CLOUD_REGION: die Google Cloud Region, in der Ihr Cluster verwaltet wird
      • PROJECT_NUMBER: das Flotten-Hostprojekt, in dem der Cluster registriert wird
      • PLATFORM_VERSION: die Version der GKE-angehängten Cluster, die für den Cluster verwendet werden soll
      • ISSUER_URL: die zuvor abgerufene Aussteller-URL
      • KUBECONFIG_CONTEXT: Der Kontext in der kubeconfig für den Zugriff auf Ihren Cluster, wie er zuvor extrahiert wurde.
      • KUBECONFIG_PATH: Pfad zu Ihrer kubeconfig-Datei

Cloud Logging/Cloud Monitoring autorisieren

Damit angehängte GKE-Cluster Systemlogs und Messwerte erstellen und inGoogle Cloudhochladen können, muss dies autorisiert werden.

Führen Sie den folgenden Befehl aus, um die Kubernetes-Arbeitslastidentität gke-system/gke-telemetry-agent zum Schreiben von Logs in Google Cloud Logging und von Messwerten in Google Cloud Monitoring zu autorisieren:

gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
  --member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
  --role=roles/gkemulticloud.telemetryWriter

Ersetzen Sie GOOGLE_PROJECT_ID durch die Projekt-ID des Clusters. Google Cloud

Diese IAM-Bindung gewährt Zugriff auf alle Cluster im Projekt Google Cloud , um Logs und Messwerte hochzuladen. Sie müssen ihn nur ausführen, nachdem Sie den ersten Cluster für das Projekt erstellt haben.

Das Hinzufügen dieser IAM-Bindung schlägt fehl, sofern nicht in Ihrem Google Cloud -Projekt mindestens ein Cluster erstellt wurde. Dies liegt daran, dass der Workload Identity-Pool, auf den es sich bezieht (GOOGLE_PROJECT_ID.svc.id.goog), erst beim Erstellen des Clusters bereitgestellt wird.