Configurer un cluster d'utilisateur pour qu'il soit géré par l'API GKE On-Prem

Les clusters d'utilisateur Anthos sur VMware (GKE On-Prem) créés avec gkectl ne sont pas configurés pour fonctionner avec l'API GKE On-Prem, qui est l'API hébergée par Google Cloud activée automatiquement lorsque vous créez des clusters d'utilisateur dans la console Google Cloud. Pour gérer le cycle de vie des clusters d'utilisateur créés à l'aide de gkectl dans la console, vous devez configurer le cluster à l'aide de la commande gkectl enroll cluster.

Conditions requises

Le cluster d'utilisateur doit répondre aux exigences suivantes :

  • Version 1.11 ou ultérieure
  • Enregistré auprès d'un parc (opération effectuée automatiquement à la création du cluster à partir de la version 1.8)
  • Si votre organisation a configuré une liste d'autorisation qui permet au trafic des API Google et d'autres adresses de transiter par votre serveur proxy, ajoutez ce qui suit à la liste d'autorisation :

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

Enregistrer un cluster d'utilisateur

Exécutez les étapes suivantes sur votre poste de travail administrateur.

  1. Connectez-vous avec votre compte Google:

    gcloud auth login --no-browser
    
  2. Créez un compte de service pour autoriser gkectl à enregistrer le cluster:

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

    Remplacez les éléments suivants :

    • SA_NAME par le nom que vous souhaitez donner au compte de service. Vous pouvez utiliser un nom décrivant l'objectif du compte de service, par exemple enrollment-sa.
    • SA_PROJECT_ID est l'ID du projet parent de votre compte de service. Le projet dans lequel vous créez le compte de service peut être le même ou un projet différent dans lequel le compte de service est utilisé.
  3. Créez une clé JSON pour votre compte de service:

    gcloud iam service-accounts keys create SA_NAME-key.json \
       --iam-account=SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com
    
  4. Activez l'API GKE On-Prem dans votre projet hôte de parc:

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

    Remplacez FLEET_PROJECT_ID par l'ID de votre projet hôte de parc. Il doit s'agir du projet Cloud dans lequel vos clusters d'administrateur et d'utilisateur sont enregistrés, que vous spécifiez dans le champ gkeConnect.projectID du fichier de configuration du cluster.

  5. Attribuez le rôle gkeonprem.admin à votre compte de service:

    gcloud projects add-iam-policy-binding FLEET_PROJECT_ID \
        --member "serviceAccount:SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/gkeonprem.admin"
    
  6. Configurez les identifiants par défaut de votre application pour utiliser le compte de service. Cela garantit que la CLI gcloud utilise le compte de service que vous avez créé précédemment.

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SA_KEY/SA_NAME-key.json
    
  7. Exécutez la commande gkectl enroll cluster. Remplacez les éléments suivants :

    • CLUSTER_NAME par le nom du cluster d'utilisateur.
    • ADMIN_CLUSTER_KUBECONFIG par le chemin d'accès au fichier kubeconfig de votre cluster d'administrateur.
    gkectl enroll cluster --cluster-name=CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Si vous souhaitez vous inscrire à plusieurs clusters d'utilisateur dans un projet, vous pouvez utiliser le même compte de service et la même clé, puis exécuter la commande gkectl enroll cluster pour chaque cluster.