Requisitos previos generales

Como aprendiste en la descripción general de la creación de flotas, clústeres de GKE locales en VMware y en equipos físicos, y clústeres de múltiples nubes (tanto en AWS como en Azure) se registran automáticamente en la flota de tu proyecto cuando se crea el clúster. Sin embargo, los clústeres de GKE en Google Cloud y los clústeres de Kubernetes de terceros (clústeres conectados) deben registrarse de forma manual para unirse a tu flota. Puedes encontrar más detalles sobre las diferentes opciones de registro en la descripción general de la creación de la flota.

En esta página, se describen los requisitos para registrar manualmente cualquier clúster de Kubernetes en una flota de Google Cloud. También hay requisitos específicos para los clústeres de GKE en Google Cloud y los clústeres adjuntos. Una vez que hayas completado esta guía, sigue las instrucciones para el tipo de clúster que quieres registrar.

Instala herramientas de línea de comandos

Asegúrate de tener instaladas las siguientes herramientas de línea de comandos: Si usas Cloud Shell como entorno de shell para interactuar con Google Cloud, estas herramientas están instaladas.

Instala Google Cloud CLI

Google Cloud CLI es la interfaz de línea de comandos (CLI) de Google Cloud. Puedes registrar clústeres con Google Cloud CLI o, según tu tipo de clúster, con otras herramientas, como Terraform o la consola de Google Cloud. Sin embargo, incluso si no lo usas para el registro del clúster, gcloud es obligatorio o útil para muchos de los otros pasos de configuración en esta guía.

  1. Si aún no lo tienes instalado, instala la CLI de Google Cloud según las instrucciones de instalación. Te recomendamos usar la versión más reciente de Google Cloud CLI. Necesitas la versión 361.0.0 o una posterior para registrar clústeres y la versión 423.0.0 o una posterior si deseas usar los comandos de registro no heredados de GKE, con el componente Alfa o Beta instalado.

  2. Ejecuta el siguiente comando para acceder a Google Cloud:

    gcloud auth login
  3. Asegúrate de haber instalado el componente gcloud beta si planeas probar las funciones alfa o beta (opcional):

     gcloud components install beta 

Instale kubectl

Si bien kubectl no es necesario para registrar un clúster, es posible que lo necesites para otorgar los permisos de control de acceso basado en funciones (RBAC) necesarios al usuario que registra el clúster (si no es el propietario del clúster), así como para otra configuración específica de la plataforma. Necesitas una versión de kubectl no anterior a la versión de Kubernetes mínima compatible de Google Kubernetes Engine (GKE).

Te recomendamos instalar kubectl con Google Cloud CLI.

Para verificar la versión de kubectl, haz lo siguiente:

kubectl version

La versión del cliente se indica mediante gitVersion en el resultado.

Para instalar kubectl:

gcloud components install kubectl

Habilita las APIs

Debes habilitar las siguientes API en tu proyecto host de flota:

  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com, también conocida como API de Fleet. Este es el servicio de Google Cloud que controla el registro de clústeres y la membresía de la flota.
  • cloudresourcemanager.googleapis.com

Los Pods en el clúster que deseas registrar deben poder acceder a las direcciones googleapis.com y gkeconnect.googleapis.com, ya sea directamente o mediante un servidor proxy configurado.

Si deseas habilitar Workload Identity de la flota para tu registro, también debes habilitar lo siguiente:

  • iam.googleapis.com

Se debe otorgar el permiso serviceusage.services.enable a los propietarios ajenos al proyecto antes de que puedan habilitar las API.

gcloud

Para habilitar estas API, ejecuta el siguiente comando:

gcloud services enable \
   --project=FLEET_HOST_PROJECT_ID \
   container.googleapis.com \
   gkeconnect.googleapis.com \
   gkehub.googleapis.com \
   cloudresourcemanager.googleapis.com \
   iam.googleapis.com

En el ejemplo anterior, se ilustra lo siguiente:

Si no deseas habilitar Workload Identity de la flota, puedes omitir iam.googleapis.com.

Para enumerar las API que ya habilitaste en los proyectos, sigue las instrucciones de Mostrar una lista de servicios en la documentación de Service Usage.

Otorga permisos de acceso

Asegúrate de tener los permisos de acceso adecuados para registrar un clúster. El registro de clústeres requiere permiso para registrar el clúster en una flota y permisos de administrador en el propio clúster.

Otorga permisos de registro de clúster

Registrar un clúster requiere permisos de IAM en tu proyecto host de flota para registrar clústeres. Si tienes roles/owner en tu proyecto host de flota, lo tienes de forma automática, además de todos los permisos de acceso que necesitas para completar todas las tareas de registro.

Si no tienes roles/owner en tu proyecto, debes tener los roles de IAM específicos antes de poder conectar clústeres a Google, como se indica a continuación:

  • Para registrar un clúster con Workload Identity de la flota para la autenticación en Google, solo necesitas el siguiente rol de IAM:

    • roles/gkehub.admin
  • Algunas opciones de registro fuera de Google Cloud requieren que configures una cuenta de servicio para que el clúster la use en Google en lugar de Workload Identity. Para registrar el clúster y administrar esta cuenta de servicio, necesitas el siguiente conjunto de roles:

    • roles/gkehub.admin
    • roles/iam.serviceAccountAdmin
    • roles/iam.serviceAccountKeyAdmin
    • roles/resourcemanager.projectIamAdmin

Para obtener una lista detallada de los permisos incluidos en los roles gkehub, consulta Conecta roles de IAM.

gcloud

Para otorgar un rol de IAM a un usuario, ejecuta el siguiente comando:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
   --member user:GCP_EMAIL_ADDRESS \
   --role=ROLE

En el ejemplo anterior, se ilustra lo siguiente:

  • FLEET_HOST_PROJECT_ID es el ID del proyecto de Google Cloud en el que deseas registrar los clústeres. Obtén más información para encontrar este valor.
  • GCP_EMAIL_ADDRESS es la cuenta que el usuario usa para acceder a Google Cloud.
  • ROLE es el rol de IAM que deseas otorgar, como roles/gkehub.admin.

Para obtener más información sobre cómo otorgar funciones de IAM, consulta Otorga, cambia y revoca el acceso a los recursos en la documentación de IAM.

Otorga permisos de administrador del clúster

Además de los permisos necesarios para registrar un clúster, también necesitas permisos de administrador en el clúster. Según la ubicación de tu clúster, puedes asignar este permiso con roles de IAM o control de acceso basado en roles (RBAC) de Kubernetes.

Clústeres de GKE en Google Cloud.

Solo para los clústeres de GKE en Google Cloud, agrega el siguiente rol de IAM a fin de obtener permisos de administrador en el clúster, si aún no lo tienes (es probable que tu cuenta de usuario lo tenga si creaste el clúster):

  • roles/container.admin

Este rol de IAM incluye el rol cluster-admin de RBAC de Kubernetes. Para otros entornos de clúster, debes otorgar este rol de RBAC mediante kubectl, como se describe en la siguiente sección. Puedes obtener más información sobre la relación entre los roles de IAM y RBAC en GKE en la documentación de GKE.

Clústeres fuera de Google Cloud

Para conectar clústeres de terceros fuera de Google Cloud, asegúrate de que el usuario que registra el clúster tenga el rol cluster-admin de RBAC de Kubernetes.

kubectl

Si creaste el clúster, es probable que tengas esta función. Para verificarlo, ejecuta el siguiente comando:

kubectl auth can-i '*' '*' --all-namespaces

Si tú u otro usuario necesitan la función, crea un recurso ClusterRoleBinding en el clúster:

kubectl create clusterrolebinding BINDING_NAME --clusterrole cluster-admin --user USER

En el ejemplo anterior, se ilustra lo siguiente:

  • BINDING_NAME es un nombre que eliges para el recurso ClusterRoleBinding.
  • USER es la identidad que se usa para autenticarse en el clúster.

Próximos pasos

Sigue la guía de requisitos previos para el tipo de clúster que deseas registrar: