Configurar un clúster de usuario para que lo administre la API de GKE On-Prem

Los clústeres de Anthos alojados en VMware (GKE On-Prem) que se crean mediante gkectl no están configurados para funcionar con la API de GKE On-Prem, que es la API alojada en Google Cloud que se habilita de forma automática cuando crees clústeres de usuario en la consola de Google Cloud. Para usar la consola a fin de administrar el ciclo de vida de los clústeres de usuario que se crearon con gkectl, debes configurar el clúster con el comando gkectl enroll cluster.

Requisitos

El clúster de usuario debe cumplir con los siguientes requisitos:

  • Versión 1.11 o superior.
  • Estar registrado con una flota, que se hace de forma automática cuando se crea el clúster a partir de la versión 1.8.
  • Si tu organización configuró una lista de entidades permitidas que permite que el tráfico de las API de Google y otras direcciones pasen a través de tu servidor proxy, agrega lo siguiente a la lista de entidades permitidas:

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

Inscribe un clúster de usuario

Ejecuta los siguientes pasos en la estación de trabajo de administrador.

  1. Accede con tu cuenta de Google:

    gcloud auth login --no-browser
    
  2. Crea una cuenta de servicio para autorizar a gkectl a inscribir el clúster:

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

    Reemplaza lo siguiente:

    • SA_NAME por el nombre que deseas asignar a la cuenta de servicio Se recomienda usar un nombre que describa el propósito de la cuenta de servicio, como enrollment-sa.
    • SA_PROJECT_ID es el ID del proyecto superior de tu cuenta de servicio. El proyecto en el que creas la cuenta de servicio puede ser el mismo o uno diferente en el que se usa la cuenta de servicio.
  3. Crea una clave JSON para tu cuenta de servicio:

    gcloud iam service-accounts keys create SA_NAME-key.json \
       --iam-account=SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com
    
  4. Habilita la API de GKE On-Prem en el proyecto host de la flota:

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

    Reemplaza FLEET_PROJECT_ID por el ID del proyecto host de tu flota. Debe ser el mismo proyecto de Cloud en el que están registrados tus clústeres de administrador y de usuario, que especificas en el campo gkeConnect.projectID en el archivo de configuración de clúster.

  5. Otorga la función gkeonprem.admin a tu cuenta de servicio:

    gcloud projects add-iam-policy-binding FLEET_PROJECT_ID \
        --member "serviceAccount:SA_NAME@SA_PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/gkeonprem.admin"
    
  6. Configura las credenciales predeterminadas de la aplicación para usar la cuenta de servicio. Esto garantiza que la CLI de gcloud use la cuenta de servicio que creaste antes.

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SA_KEY/SA_NAME-key.json
    
  7. Ejecuta el comando gkectl enroll cluster. Reemplaza lo siguiente:

    • CLUSTER_NAME por el nombre del clúster de usuario.
    • ADMIN_CLUSTER_KUBECONFIG es la ruta de acceso del archivo kubeconfig del clúster de administrador.
    gkectl enroll cluster --cluster-name=CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Si tienes más de un clúster de usuario en un proyecto que deseas inscribir, puedes usar la misma cuenta de servicio y la misma clave, y ejecutar gkectl enroll cluster para cada clúster.