Nutzercluster konfigurieren, der von der GKE On-Prem API verwaltet werden soll

Anthos-Cluster auf VMware-Nutzercluster (GKE On-Prem), die mit gkectl erstellt wurden, sind nicht für die Verwendung der GKE On-Prem API konfiguriert, die die von Google Cloud gehostete API ist, die automatisch aktiviert wird, wenn Sie Nutzercluster in der Google Cloud Console erstellen. Wenn Sie den Lebenszyklus von Nutzerclustern, die mit gkectl erstellt wurden, in der Konsole verwalten möchten, müssen Sie den Cluster mit dem Befehl gkectl enroll cluster konfigurieren.

Voraussetzungen

Der Nutzercluster muss die folgenden Anforderungen erfüllen:

  • Version 1.11 oder höher
  • Registriert bei einer Flotte, was automatisch erfolgt, wenn der Cluster ab Version 1.8 erstellt wird.
  • Wenn Ihre Organisation eine Zulassungsliste eingerichtet hat, mit der Traffic von Google APIs und anderen Adressen über Ihren Proxyserver geleitet werden kann, fügen Sie der Zulassungs-Liste Folgendes hinzu:

    • gkeonprem.googleapis.com
    • gkeonprem.mtls.googleapis.com

Nutzercluster registrieren

Führen Sie die folgenden Schritte auf Ihrer Administratorworkstation aus.

  1. Melde dich mit deinem Google-Konto an:

    gcloud auth login --no-browser
    
  2. Erstellen Sie ein Dienstkonto, um gkectl zum Registrieren des Clusters zu autorisieren:

    gcloud iam service-accounts create SA_NAME \
        --project SA_PROJECT_ID
    

    Dabei gilt:

    • SA_NAME durch den Namen, den Sie dem Dienstkonto geben möchten. Sie sollten einen Namen verwenden, der den Zweck des Dienstkontos beschreibt, z. B. enrollment-sa.
    • SA_PROJECT_ID ist die ID des übergeordneten Projekts Ihres Dienstkontos. Das Projekt, in dem Sie das Dienstkonto erstellen, kann dasselbe oder ein anderes Projekt sein, in dem das Dienstkonto verwendet wird.
  3. Erstellen Sie einen JSON-Schlüssel für Ihr Dienstkonto:

    gcloud iam service-accounts keys create SA_NAME-key.json \
       --iam-account=SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com
    
  4. Aktivieren Sie die GKE On-Prem API in Ihrem Hostprojekt:

    gcloud services enable \
        --project FLEET_PROJECT_ID \
        gkeonprem.googleapis.com
    

    Ersetzen Sie FLEET_PROJECT_ID durch die ID des Flotten-Hostprojekts. Dies muss das Cloud-Projekt sein, in dem Ihr Administrator und Ihre Nutzercluster registriert sind. Diesen Namen geben Sie im Feld gkeConnect.projectID in der Clusterkonfigurationsdatei an.

  5. Weisen Sie Ihrem Dienstkonto die Rolle gkeonprem.admin zu:

    gcloud projects add-iam-policy-binding FLEET_PROJECT_ID \
        --member "serviceAccount:SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/gkeonprem.admin"
    
  6. Richten Sie Ihre Standardanmeldedaten für Anwendungen so ein, dass das Dienstkonto verwendet wird. Dadurch wird sichergestellt, dass die gcloud CLI das zuvor erstellte Dienstkonto verwendet.

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SA_KEY/SA_NAME-key.json
    
  7. Führen Sie den Befehl gkectl enroll cluster aus: Dabei gilt:

    • Ersetzen Sie CLUSTER_NAME durch den Namen des Nutzerclusters.
    • Ersetzen Sie ADMIN_CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei Ihres Administratorclusters.
    gkectl enroll cluster --cluster-name=CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Wenn Sie in einem Projekt mehrere Nutzercluster registrieren möchten, können Sie dasselbe Dienstkonto und denselben Schlüssel verwenden und einfach gkectl enroll cluster für jeden Cluster ausführen.