En este documento, se explica cómo hacer que los clústeres de administrador y de usuario creados con el software de Google Distributed Cloud en Bare Metal estén disponibles para su administración en la consola de Google Cloud. Las funciones de administración de clústeres incluyen la capacidad de acceder a ellos, ver cargas de trabajo, actualizarlos y borrarlos.
Miembros de la flota y la consola
Todos los clústeres deben ser miembros de una flota, una forma unificada de ver y administrar varios clústeres y sus cargas de trabajo. Cada flota de clústeres está asociada con un proyecto host de flota.
Todos los clústeres se registran en una flota en el momento de su creación:
Cuando creas un clúster con
bmctl
, especificas tu proyecto host de flota en la seccióngkeConnect
del archivo de configuración del clúster. El clúster se convierte en miembro de la flota del proyecto especificado.Cuando creas un clúster de administrador o de usuario con un cliente estándar de la API de GKE On-Prem (la consola, Google Cloud CLI o Terraform), el clúster se convierte en un miembro de la flota en el proyecto especificado.
Los miembros de la flota fuera de Google Cloud, como Google Distributed Cloud, se muestran en la consola del proyecto host de tu flota, junto con otros clústeres de flotas, como GKE en Google Cloud. El grado en el que puedes administrar clústeres bare metal desde la consola depende de lo siguiente:
Si configuraste la autenticación, puedes acceder a tus clústeres y ver sus cargas de trabajo y otros detalles.
Si habilitaste la administración del ciclo de vida del clúster para el clúster, puedes actualizar los clústeres de administrador y de usuarios con la consola, y también puedes usar la consola para actualizar y borrar clústeres de usuarios. Si esta función no está habilitada, solo puedes administrar el ciclo de vida del clúster con
bmctl
en tu estación de trabajo de administrador.
Visualiza clústeres registrados
Todos tus clústeres se muestran en la página Clústeres de GKE de la consola. Esto te brinda una descripción general de toda tu flota y, para Google Distributed Cloud, te permite ver qué clústeres administra la API de GKE On-Prem.
Para ver los clústeres de tu flota, haz lo siguiente:
En la consola, ve a la página Descripción general de los clústeres de Google Kubernetes Engine.
Selecciona el proyecto de Google Cloud.
Si se muestra Bare metal en la columna Tipo, la API de GKE On-Prem administra el clúster. Ten en cuenta que solo la API de GKE On-Prem puede administrar los clústeres de administrador y de usuario.
Si se muestra Externo en la columna Tipo, la API de GKE On-Prem no administra el clúster.
Para ver más detalles sobre un clúster, debes acceder a tu cuenta y autenticarte en el clúster. Para ello, sigue estos pasos:
- Configura un método de autenticación
- Otorga a los usuarios roles específicos de Identity and Access Management
Configura la autenticación
Como se describió anteriormente, todos los clústeres aparecen en la página de clústeres de GKE en la consola. Sin embargo, para ver más detalles, como los nodos y las cargas de trabajo (y para realizar tareas de administración del ciclo de vida del clúster si la función está habilitada), debes acceder al clúster y autenticarte en él. Para ello, tus clústeres deben configurarse con uno de los siguientes métodos de autenticación:
Identidad de Google: Esta opción te permite acceder con tu identidad de Google Cloud, que es la dirección de correo electrónico asociada con tu cuenta de Google Cloud. Usa esta opción si tus usuarios ya tienen acceso a Google Cloud con una identidad de Google Cloud. Si creaste el clúster en la consola, puedes acceder al clúster con tu identidad de Google, pero deberás configurar la autenticación para otros usuarios.
Acceder con la identidad de Google es el enfoque más sencillo de autenticación en la consola, por lo que describimos cómo configurarlo con más detalle en Cómo configurar la autenticación de identidad de Google.
OpenID Connect (OIDC): Esta opción te permite acceder a los clústeres desde la consola con tu identidad desde un proveedor de identidad de OIDC de terceros, como Okta o Microsoft AD FS. Te recomendamos que uses esta opción si tus usuarios ya tienen nombres de usuario, contraseñas y membresías de grupos de seguridad de tu proveedor. Puedes obtener información para configurar la autenticación OIDC de terceros para tus clústeres en las siguientes guías:
Configura clústeres para GKE Identity Service con OIDC: En esta guía, se muestra cómo configurar la autenticación de OIDC por clúster.
Configura GKE Identity Service para una flota: Esta opción te permite configurar OIDC a nivel de la flota.
Token del portador: Si las soluciones anteriores que ofrece Google no son adecuadas para tu organización, puedes configurar la autenticación con una cuenta de servicio de Kubernetes y con su token del portador para acceder. Para obtener más información, consulta Configura un token del portador.
Otorga roles necesarios
El acceso a la consola se controla a través de Identity and Access Management (IAM). Para administrar el ciclo de vida del clúster en la consola, debes otorgar algunos roles de IAM a los usuarios que no son propietarios del proyecto:
Para permitir que los usuarios accedan a la consola, como mínimo, debes otorgar los siguientes roles:
roles/container.viewer
: Este rol permite que los usuarios vean la página de clústeres de GKE y otros recursos de contenedores en la consola. Para obtener más información sobre los permisos incluidos en este rol o sobre cómo otorgar un rol con permisos de lectura y escritura, consulta Roles de Kubernetes Engine en la documentación de IAM.roles/gkehub.viewer
: Este rol permite que los usuarios vean clústeres fuera de Google Cloud en la consola. Si deseas obtener detalles sobre los permisos incluidos en este rol o para otorgar un rol con permisos de lectura y escritura, consulta Roles de GKE Hub en la documentación de IAM.
Para permitir que los usuarios administren el ciclo de vida del clúster en la consola, otorga el rol de IAM
roles/gkeonprem.admin
. El rolroles/gkeonprem.admin
otorga a los usuarios acceso de administrador a la API de GKE On-Prem, que la consola usa para administrar el ciclo de vida del clúster. Para obtener más detalles sobre los permisos incluidos en este rol, consulta Roles de GKE On-Prem en la documentación de IAM.
En los siguientes comandos, se muestra cómo otorgar los roles mínimos necesarios para administrar el ciclo de vida del clúster en la consola:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER \ --role=roles/container.viewer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER \ --role=roles/gkehub.viewer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER \ --role=roles/gkeonprem.admin
donde:
PROJECT_ID
es el proyecto host de la flota. Para los clústeres creados conbmctl
, este es el proyecto que configuraste en la seccióngkeConnect
del archivo de configuración del clúster de usuario. En el caso de los clústeres creados en la consola, este es el proyecto que elegiste cuando se creó el clúster.MEMBER
es la dirección de correo electrónico del usuario en el formatouser:emailID
, por ejemplo:user:alice@example.com
Habilita la administración del ciclo de vida del clúster en la consola
Los clústeres de administrador y de usuario creados con herramientas estándar (la consola, gcloud CLI o Terraform) se inscriben automáticamente en la API de GKE On-Prem, lo que te permite realizar tareas de administración del ciclo de vida de los clústeres en la consola. En Google Distributed Cloud 1.16 y versiones posteriores, cuando creas clústeres de usuario y administrador con bmctl
, se inscriben en la API de GKE On-Prem de forma predeterminada. Si necesitas inscribir un clúster en la API de GKE On-Prem, sigue los pasos que se indican en Configura un clúster para que lo administre la API de GKE On-Prem.
Configura la autenticación de identidad de Google
Para permitir que los usuarios accedan al clúster con su identidad de Google, debes configurar lo siguiente:
Los usuarios necesitan roles específicos de Identity and Access Management (IAM) para poder ver y interactuar con los clústeres en la consola en la página Clústeres de GKE.
Se deben agregar los usuarios a las políticas de control de acceso basado en roles (RBAC) de Kubernetes que la puerta de enlace de Connect necesita para acceder al servidor de la API de Kubernetes del clúster medianteAgente de Connect.
Configura la autorización de RBAC
El servidor de la API de Kubernetes de cada clúster debe poder autorizar las solicitudes que provienen de la consola. Para configurar la autorización, debes configurar las políticas de control de acceso basado en roles (RBAC) de Kubernetes para los usuarios de cada clúster. Tu Cuenta de Google se agrega como administrador con acceso completo a un clúster de usuarios en los siguientes casos:
Creaste el clúster de usuarios en la consola.
Creaste el clúster de usuario con gcloud CLI y tu Cuenta de Google se especificó en la marca
--admin-users
en el comando create del clúster.Creaste el clúster de usuario con Terraform y tu Cuenta de Google se especificó en el campo
authorization.admin_users.username
.Creaste el clúster de usuario con
bmctl
y configuraste tu Cuenta de Google en clusterSecurity.authorization.clusterAdmin.gcpAccounts.
Puedes agregar a otras personas como administradores después de crear el clúster. Puedes usar cualquiera de las siguientes formas para otorgar acceso de administrador al clúster. Se proporcionan dos comandos gcloud
diferentes.
El comando
gcloud ... generate-gateway-rbac
se debe ejecutar en tu estación de trabajo de administrador porque requiere acceso al kubeconfig y al contexto del clúster (que, por lo general, solo se encuentran en tu estación de trabajo de administrador). El comandogenerate-gateway-rbac
te permite personalizar las políticas de RBAC, pero las direcciones de correo electrónico de los usuarios no se mostrarán como administradores en la sección Detalles del clúster de la consola.El comando
gcloud ... update
se puede ejecutar en tu estación de trabajo de administrador o en cualquier computadora que tenga acceso a la API de GKE On-Prem.
Ten en cuenta que, si creaste un clúster de administrador en la consola de Google Cloud, se te otorga acceso de solo lectura al clúster. Si quieres que se te otorgue el rol clusterrole/cluster-admin
, alguien con ese rol deberá agregarte con el comando gcloud ... generate-gateway-rbac
.
generate-gateway-rbac
Para aplicar las políticas de RBAC a los usuarios, sigue estos pasos en tu estación de trabajo de administrador:
Ejecuta el siguiente comando para actualizar los componentes (si es necesario):
gcloud components update
Genera y aplica las políticas de RBAC a tu clúster para los usuarios y las cuentas de servicio:
gcloud container fleet memberships generate-gateway-rbac \ --membership=MEMBERSHIP_NAME \ --role=ROLE \ --users=USERS \ --project=PROJECT_ID \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT \ --apply
Reemplaza lo siguiente:
- MEMBERSHIP_NAME: el nombre que se usa para representar de manera inequívoca el clúster en su flota. En Google Distributed Cloud, el nombre de la membresía y el nombre del clúster son los mismos.
- ROLE: El rol de Kubernetes que deseas otorgar a los usuarios en el clúster. Para otorgar a los usuarios acceso completo a todos los recursos del clúster en todos los espacios de nombres, especifica
clusterrole/cluster-admin
. Para proporcionar acceso de solo lectura, especificaclusterrole/view
. Para restringir el acceso, crea un rol personalizado, por ejemplo:role/mynamespace/namespace-reader
. El rol personalizado ya debe existir antes de que ejecutes el comando. - USERS: Son las direcciones de correo electrónico de los usuarios (cuentas de usuario o cuentas de servicio) a los que deseas otorgar los permisos, como una lista separada por comas. Por ejemplo:
--users=222larabrown@gmail.com,test-acct@test-project.iam.gserviceaccount.com
- PROJECT_ID el ID del proyecto host de la flota.
- KUBECONFIG_PATH: Es la ruta local de tu archivo kubeconfig que contiene una entrada para el clúster.
KUBECONFIG_CONTEXT: Es el contexto del clúster como aparece en el archivo kubeconfig. Puedes obtener el contexto actual de la línea de comandos ejecutando
kubectl config current-context
. Independientemente de si usas o no el contexto actual, asegúrate de que funcione para acceder al clúster mediante la ejecución de un comando simple, como el siguiente:kubectl get namespaces \ --kubeconfig=KUBECONFIG_PATH \ --context=KUBECONFIG_CONTEXT
Después de ejecutar
gcloud container fleet memberships generate-gateway-rbac
, verás algo como lo siguiente al final del resultado, que se trunca para facilitar la lectura:Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /usr/local/google/home/foo/.kube/config, context: kind-kind Writing RBAC policy for user: foo@example.com to cluster. Successfully applied the RBAC policy to cluster.
Este es el contexto para acceder al clúster a través de la puerta de enlace de Connect.
Para conocer más detalles sobre el comando
generate-gateway-rbac
, consulta la guía de referencia de la gcloud CLI.
update
Ejecuta el siguiente comando para actualizar los componentes:
gcloud components update
Para cada usuario al que se le debe otorgar el rol
clusterrole/cluster-admin
, incluye la marca--admin-users
y ejecuta el siguiente comando. No puedes especificar varios usuarios en una sola marca. Asegúrate de incluir tu Cuenta de Google en el comando, ya que este anula la lista de otorgamientos con los usuarios que especifiques en el comando.gcloud container bare-metal clusters update USER_CLUSTER_NAME \ --admin-users YOUR_GOOGLE_ACCOUNT \ --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
Además de otorgar el rol clusterrole/cluster-admin
de Kubernetes, el comando otorga las políticas de RBAC que los usuarios necesitan para acceder al clúster a través de la puerta de enlace de Connect.
bmctl
Para aplicar las políticas de RBAC a los usuarios, sigue estos pasos en tu estación de trabajo de administrador:
Agrega la sección
clusterSecurity.authorization
al archivo de configuración del clúster. Especifica tu dirección de correo electrónico y la dirección de correo electrónico de los otros usuarios que necesiten administrar el clúster. Por ejemplo:... clusterSecurity: authorization: clusterAdmin: gcpAccounts: [alex@example.com,hao@example.com,sasha@example.com] ...
Actualiza el clúster:
bmctl update cluster \ -c CLUSTER_NAME \ --kubeconfig=KUBECONFIG
Realiza los siguientes cambios:
- Reemplaza CLUSTER_NAME por el nombre del clúster que deseas actualizar.
- Si el clúster es autoadministrado (como un clúster independiente o de administrador), reemplaza KUBECONFIG por la ruta de acceso al archivo kubeconfig del clúster. Si el clúster es de usuario, reemplaza KUBECONFIG por la ruta de acceso al archivo kubeconfig del clúster de admin.
Console
Para aplicar las políticas de RBAC a los usuarios, sigue los siguientes pasos en la consola:
En la consola, ve a la página Descripción general de los clústeres de Google Kubernetes Engine.
Selecciona el proyecto de Google Cloud en el que se encuentra el clúster de usuario.
En la lista de clústeres, haz clic en el nombre del clúster y, luego, en Ver detalles en el panel Detalles.
En la sección Autorización, haz clic en el campo Usuarios administradores y, luego, ingresa la dirección de correo electrónico de cada usuario.
Cuando termines de agregar los usuarios, haz clic en Listo.
Más información
- Descripción general de la administración de flotas
- Trabaja con clústeres desde la consola de Google Cloud
- Descripción general de Connect
- Descripción general del agente de Connect