AKS-Cluster anhängen

Das Anhängen eines Clusters bedeutet, dass er mit Google Cloud verbunden wird. Dazu registrieren Sie ihn bei der Flottenverwaltung von Google Cloud und installieren die Software für angehängte GKE-Cluster darauf.

Sie können einen Cluster über die gcloud CLI oder Terraform anhängen. Informationen zum Erstellen und Anhängen eines AKS-Clusters mit Terraform finden Sie im GitHub-Repository mit Beispielen für angehängte GKE-Cluster.

Führen Sie die folgenden Schritte aus, um einen AKS-Cluster mit gcloud anzuhängen.

Vorbereitung

Prüfen Sie, ob Ihr Cluster die Clusteranforderungen erfüllt.

Beim Anhängen des Clusters müssen Sie Folgendes angeben:

Die Verwaltungsregion ist eine Google Cloud-Region, von der aus Sie den angehängten Cluster verwalten können. 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 Verwaltungsregion werden keine Nutzerdaten gespeichert.

Die Plattformversion ist die Version der angehängten GKE-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 des Google Cloud-Standorts, von dem aus Sie den Cluster verwalten möchten.

Versionsnummerierung der Plattform

In diesen Dokumenten wird die Version der angehängten GKE-Cluster als Plattformversion bezeichnet, um sie von der Kubernetes-Version zu unterscheiden. Angehängte GKE-Cluster verwendet die gleiche Konvention zur Versionsnummerierung wie GKE, 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 des Clusters entspricht oder eine Ebene darunter liegt. Sie können beispielsweise einen Cluster anhängen, auf dem die Kubernetes-Version 1.22.* und die GKE-Clusterplattformversion 1.21.* oder 1.22.* ausgeführt werden.

So können Sie Ihren Cluster auf die nächste Nebenversion upgraden, bevor Sie ein Upgrade für angehängte GKE-Cluster ausführen.

AKS-Cluster anhängen

Führen Sie die folgenden Befehle aus, um den AKS-Cluster an die Flottenverwaltung von Google Cloud anzuhängen:

  1. Prüfen Sie, ob die kubeconfig-Datei einen Eintrag für den Cluster enthält, den Sie anhängen möchten:

    az aks get-credentials -n CLUSTER_NAME \
      -g RESOURCE_GROUP
    
  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 Sie Ihren Cluster mit dem standardmäßigen privaten OIDC-Aussteller oder dem experimentellen öffentlichen Aussteller konfiguriert haben. Wählen Sie den Tab aus, der auf Ihren Cluster zutrifft:

    Privater OIDC-Aussteller (Standard)

    Registrieren Sie den Cluster mit dem Befehl gcloud container attached clusters register:

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

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: der Name Ihres Clusters
    • GOOGLE_CLOUD_REGION: Die Google Cloud-Region, aus der Sie Ihren Cluster verwalten möchten.
    • PROJECT_NUMBER: Das Flotten-Hostprojekt, bei dem der Cluster registriert werden soll
    • PLATFORM_VERSION: die Plattformversion, die für den Cluster verwendet werden soll
    • KUBECONFIG_CONTEXT: Kontext in der kubeconfig-Datei für den Zugriff auf den AKS-Cluster
    • KUBECONFIG_PATH: Pfad zur kubeconfig-Datei

    Öffentlicher OIDC-Aussteller

    1. Rufen Sie die OIDC-Aussteller-URL des Clusters mit dem folgenden Befehl ab:

        az aks show -n CLUSTER_NAME \
          -g RESOURCE_GROUP \
          --query "oidcIssuerProfile.issuerUrl" -otsv
      

      Ersetzen Sie RESOURCE_GROUP durch die AKS-Ressourcengruppe, zu der Ihr Cluster gehört.

      Die Ausgabe dieses Befehls ist die URL Ihres OIDC-Ausstellers. Speichern Sie diesen Wert zur späteren Verwendung.

    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. Registrieren Sie den Cluster mit dem Befehl gcloud container attached clusters register:

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

      Ersetzen Sie Folgendes:

      • CLUSTER_NAME: der Name Ihres Clusters
      • GOOGLE_CLOUD_REGION: die Google Cloud-Region, in der Ihr Cluster verwaltet werden soll.
      • PROJECT_NUMBER: Das Flotten-Hostprojekt, in dem der Cluster registriert wird
      • PLATFORM_VERSION: die Version des angehängten GKE-Clusters, die für den Cluster verwendet werden soll
      • ISSUER_URL: die zuvor abgerufene Aussteller-URL
      • KUBECONFIG_CONTEXT: Kontext in der kubeconfig-Datei für den Zugriff auf Ihren Cluster, wie zuvor extrahiert
      • KUBECONFIG_PATH: Pfad zur kubeconfig-Datei

Cloud Logging/Cloud Monitoring autorisieren

Damit angehängte GKE-Cluster Systemlogs und -messwerte erstellen und in Google Cloud hochladen können, müssen sie 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 Google Cloud-Projekt-ID des Clusters.

Diese IAM-Bindung gewährt Zugriff auf alle Cluster im Google Cloud-Projekt, 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 mindestens ein Cluster in Ihrem Google Cloud-Projekt erstellt wurde. Dies liegt daran, dass der Workload Identity-Pool, auf den er verweist (GOOGLE_PROJECT_ID.svc.id.goog), erst bei der Clustererstellung bereitgestellt wird.