Como has visto en la descripción general de la creación de flotas, los clústeres de GKE on-premise en VMware y en bare metal, así como los clústeres multicloud (tanto en AWS como en Azure), se registran automáticamente en la flota de tu proyecto cuando se crean. Sin embargo, los clústeres de GKE en Google Cloud y los clústeres de Kubernetes de terceros (clústeres adjuntos) deben registrarse manualmente para unirse a tu flota. Puede consultar más detalles sobre las distintas opciones de registro en el resumen de la creación de flotas.
En esta página se describen los requisitos previos y los requisitos para registrar manualmente cualquier clúster de Kubernetes en una Google Cloud flota. 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 del tipo de clúster que quieras registrar.
Te recomendamos que consultes las restricciones generales sobre el registro de clústeres antes de empezar.
Instalar herramientas de línea de comandos
Asegúrate de que tienes instaladas las siguientes herramientas de línea de comandos. Si usas Cloud Shell como entorno de shell para interactuar con Google Cloud, estas herramientas ya están instaladas.
Instalar Google Cloud CLI
Google Cloud CLI es la interfaz de línea de comandos (CLI) de Google Cloud. Puedes registrar clústeres mediante la CLI de Google Cloud o, en función del tipo de clúster, con otras herramientas, como Terraform o la Google Cloud consola. Sin embargo, aunque no lo uses para registrar clústeres, gcloud
es necesario o útil para muchos de los otros pasos de configuración de esta guía.
Si aún no la has instalado, instala la CLI de Google Cloud siguiendo las instrucciones de instalación. Te recomendamos que uses la versión más reciente de la CLI de Google Cloud. 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 quieres usar los comandos de registro no antiguos de GKE, con el componente alfa o beta instalado.
Ejecuta el siguiente comando para iniciar sesión en Google Cloud:
gcloud auth login
(Opcional) Asegúrate de haber instalado el componente
gcloud beta
si tienes previsto probar funciones alfa o beta:gcloud components install beta
Instalar kubectl
Aunque no es necesario kubectl
para registrar un clúster, puede que lo necesites para conceder los permisos de control de acceso basado en roles (RBAC) necesarios al usuario que registre el clúster (si no es el propietario del clúster), así como para otras configuraciones específicas de la plataforma. Necesitas una versión de kubectl
que no sea inferior a la versión mínima admitida de Kubernetes de Google Kubernetes Engine (GKE).
Te recomendamos que instales kubectl
con Google Cloud CLI.
Para comprobar la versión de kubectl
, sigue estos pasos:
kubectl version
La versión del cliente se indica con gitVersion
en el resultado.
Para instalar kubectl
, sigue estos pasos:
gcloud components install kubectl
Habilitar APIs
Debes habilitar las siguientes APIs en tu proyecto host de la flota:
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
, también conocida como API Fleet. Este es el Google Cloud servicio que gestiona el registro de clústeres y la pertenencia a flotas.cloudresourcemanager.googleapis.com
Los pods del clúster que quieras registrar deben poder acceder a las direcciones googleapis.com
y gkeconnect.googleapis.com
, ya sea directamente o mediante un servidor proxy configurado.
Si quieres habilitar Workload Identity de flota para tu registro, también debes habilitar lo siguiente:
iam.googleapis.com
Los usuarios que no sean propietarios del proyecto deben tener el permiso serviceusage.services.enable
para poder habilitar APIs.
gcloud
Para habilitar estas APIs, 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
donde:
- FLEET_HOST_PROJECT_ID es el Google Cloud ID del proyecto en el que quieres registrar los clústeres. Consulta cómo encontrar este valor.
Si no quieres habilitar la identidad de cargas de trabajo de la flota, puedes omitir iam.googleapis.com
.
Para ver las APIs que ya has habilitado en tus proyectos, sigue las instrucciones de la sección Listar servicios de la documentación de Uso de servicios.
Conceder permisos de acceso
Asegúrate de que tienes los permisos de acceso adecuados para registrar un clúster. Para registrar un clúster, se necesita permiso para registrarlo en una flota y permisos de administrador en el propio clúster.
Conceder permisos de registro de clústeres
Para registrar un clúster, se necesitan permisos de gestión de identidades y accesos en el proyecto de host de la flota. Si tienes roles/owner
en tu proyecto host de la flota, lo tienes automáticamente y tienes todos los permisos de acceso que necesitas para completar todas las tareas de registro.
Si no tienes roles/owner
en tu proyecto, debes tener asignados roles de gestión de identidades y accesos específicos para poder conectar clústeres a Google. Para ello, sigue estos pasos:
Para registrar un clúster con Workload Identity de la flota para autenticarte en Google, solo necesitas el siguiente rol de gestión de identidades y accesos:
roles/gkehub.admin
Algunas opciones de registro externas Google Cloud requieren que configures una cuenta de servicio para que el clúster la use para autenticarse en Google en lugar de Workload Identity. Para registrar el clúster y gestionar esta cuenta de servicio, necesitas los siguientes roles:
roles/gkehub.admin
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountKeyAdmin
roles/resourcemanager.projectIamAdmin
Para ver una lista de los permisos detallados incluidos en los roles de gkehub
, consulta Roles de gestión de identidades y accesos de Connect.
gcloud
Para conceder un rol de gestión de identidades y accesos a un usuario, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
--member user:GCP_EMAIL_ADDRESS \
--role=ROLE
donde:
- FLEET_HOST_PROJECT_ID es el Google Cloud ID del proyecto en el que quieres registrar los clústeres. Consulta cómo encontrar este valor.
- GCP_EMAIL_ADDRESS es la cuenta que usa el usuario para iniciar sesión en Google Cloud.
- ROLE es el rol de gestión de identidades y accesos que quieres conceder, como
roles/gkehub.admin
.
Para obtener más información sobre cómo conceder roles de gestión de identidades y accesos, consulta el artículo Conceder, cambiar y revocar el acceso a los recursos de la documentación de gestión de identidades y accesos.
Conceder permisos de administrador de clúster
Además de los permisos necesarios para registrar un clúster, también necesitas permisos de administrador en el propio clúster. En función de la ubicación de tu clúster, puedes asignar este permiso mediante roles de gestión de identidades y accesos o el control de acceso basado en roles (RBAC) de Kubernetes.
Clústeres de GKE en Google Cloud
En el caso de los clústeres de GKE en Google Cloud , añade el siguiente rol de gestión de identidades y accesos para obtener permisos de administrador en el clúster, si aún no lo tienes (es probable que tu cuenta de usuario lo tenga si has creado el clúster):
roles/container.admin
Este rol de gestión de identidades y accesos incluye el rol cluster-admin
de control de acceso basado en roles (RBAC) de Kubernetes. En otros entornos de clúster, debes asignar este rol RBAC mediante kubectl
, tal como se describe en la siguiente sección.
Puedes consultar más información sobre la relación entre los roles de gestión de identidades y accesos y de control de acceso basado en roles en GKE en la documentación de GKE.
Clústeres externos Google Cloud
Para adjuntar clústeres de terceros externos a Google Cloud, asegúrate de que el usuario que registra el clúster tenga el rol cluster-admin
de RBAC de Kubernetes.
kubectl
Si has creado el clúster, es probable que tengas este rol. Para verificarlo, ejecuta el siguiente comando:
kubectl auth can-i '*' '*' --all-namespaces
Si tú u otro usuario necesitáis el rol, crea un recurso ClusterRoleBinding en el clúster:
kubectl create clusterrolebinding BINDING_NAME --clusterrole cluster-admin --user USER
donde:
- BINDING_NAME es el nombre que elijas para el recurso ClusterRoleBinding.
- USER es la identidad que se usa para autenticar el clúster.
Siguientes pasos
Sigue la guía de requisitos previos del tipo de clúster que quieras registrar:
- Requisitos previos para los clústeres de GKE en Google Cloud
- Requisitos previos para los clústeres de EKS
- Requisitos previos de los clústeres de AKS
- Requisitos previos para otros tipos de clústeres adjuntos