En este documento, se explica cómo hacer que los clústeres de Anthos alojados en Bare Metal estén disponibles para administrarlos en la consola de Google Cloud. Esto incluye la administración básica, como el acceso a clústeres y la visualización de sus cargas de trabajo, así como la habilitación de la administración del ciclo de vida de los clústeres para que puedas actualizarlos, actualizarlos y borrarlos.
Miembros de la flota y la consola
Todos los clústeres de Anthos alojados en Bare Metal 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.
En los clústeres de Anthos alojados en Bare Metal, se registra un clúster de usuario en una flota al momento de su creación:
Cuando creas un clúster con
bmctl
, debes especificar el proyecto host de tu flota en la seccióngkeConnect
del archivo de configuración del clúster. Los clústeres de Anthos alojados en Bare Metal usan esa información para registrar tu clúster en el proyecto de flota especificado.Cuando creas un clúster de usuario en la consola, este se convierte automáticamente en miembro de la flota del proyecto seleccionado en la consola.
Los miembros de la flota fuera de Google Cloud, como los clústeres de Anthos alojados en Bare Metal, se muestran en la consola de tu proyecto host de flota, junto con otros clústeres de flota, como GKE en Google Cloud. La medida en la que puedes administrar clústeres de Anthos alojados en 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, también puedes actualizar, actualizar o borrar clústeres de usuarios mediante la consola. Para ello, un servicio llamado API de Anthos On-Prem debe administrar el clúster. En los clústeres de usuario creados en la consola, la administración del ciclo de vida de los clústeres se habilita en el momento de la creación del clúster, o bien puedes habilitar esta función más adelante en los clústeres de usuario creados con
bmctl
. Si esta función no está habilitada, solo puedes administrar el ciclo de vida del clúster conbmctl
en tu estación de trabajo de administrador.
Visualiza clústeres registrados
Todos los clústeres de tu flota se muestran en las páginas Clústeres de Anthos y Clústeres de GKE en la consola. Esto te ofrece una descripción general de toda tu flota y, para los clústeres de Anthos alojados en Bare Metal, te permite ver qué clústeres administra la API de Anthos On-Prem.
Para ver tus clústeres de flota, haz lo siguiente:
En la consola, ve a la página de clústeres de Anthos.
Selecciona el proyecto de Google Cloud.
Si Anthos Bare Metal se muestra en la columna Tipo, la API de Anthos On-Prem administra el clúster.
Si se muestra Externo en la columna Tipo, la API de Anthos On-Prem no administra el clúster.
Para ver más detalles sobre un clúster, los usuarios deben acceder y autenticarse en el clúster. Para hacerlo, debes hacer lo siguiente:
- Configura un método de autenticación
- Otorgarles a los usuarios roles específicos de Identity and Access Management accesos
Configura la autenticación
Como se describió antes, todos los clústeres de flota aparecen en las listas de clústeres de GKE y Anthos en la consola. Sin embargo, para ver más detalles, como los nodos y las cargas de trabajo (y realizar tareas de administración del ciclo de vida de los clústeres si la función está habilitada), los usuarios deben acceder y autenticarse en el clúster. Para ello, los clústeres registrados deben configurarse con uno de los siguientes métodos de autenticación:
Identidad de Google: Esta opción permite que los usuarios accedan con su identidad de Google Cloud, que es la dirección de correo electrónico asociada a tu cuenta de Google Cloud. Usa esta opción si los usuarios ya tienen acceso a Google Cloud con su identidad de Google. 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 Google es el enfoque de autenticación más simple de la consola, por lo que describimos este proceso con más detalle en Configura la autenticación de identidad de Google.
OpenID Connect (OIDC): Con esta opción, los usuarios pueden acceder a los clústeres desde la consola mediante su identidad desde un proveedor de identidad de OIDC de terceros, como Okta o Microsoft AD FS. Es posible que quieras usar esta opción si tus usuarios tienen nombres de usuario, contraseñas y membresías de grupos de seguridad existentes de tu proveedor. Puedes descubrir cómo configurar la autenticación de OIDC de terceros para tus clústeres en las siguientes guías:
Configura clústeres para Anthos Identity Service con OIDC: En esta guía, se muestra cómo configurar la autenticación de OIDC por clúster.
Configura Anthos 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 proporciona Google no son adecuadas para tu organización, puedes configurar la autenticación con una cuenta de servicio de Kubernetes y su token del portador para acceder. Para obtener más información, consulta Configura mediante un token del portador.
Otorga los roles obligatorios
Google Cloud IAM controla el acceso a la consola. Para administrar el ciclo de vida del clúster en la consola, debes otorgar algunas funciones de IAM a los usuarios que no son propietarios del proyecto:
Para que los usuarios puedan acceder a la consola, como mínimo, debes otorgar las siguientes funciones:
roles/container.viewer
. Esta función permite a los usuarios ver la página Clústeres de GKE y otros recursos de contenedores en la consola. Si deseas obtener más información sobre los permisos incluidos en esta función o para otorgar una función con permisos de lectura y escritura, consulta Funciones de Kubernetes Engine en la documentación de IAM.roles/gkehub.viewer
. Esta función permite a los usuarios ver clústeres fuera de Google Cloud en la consola. Para obtener más información sobre los permisos incluidos en esta función o otorgar una función con permisos de lectura y escritura, consulta Funciones 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 la función de IAM
roles/gkeonprem.admin
. La funciónroles/gkeonprem.admin
brinda a los usuarios acceso de administrador a la API de Anthos On-Prem, que la consola usa para administrar el ciclo de vida del clúster. Para obtener detalles sobre los permisos incluidos en esta función, consulta Funciones de GKE On-Prem en la documentación de IAM.
En los siguientes comandos, se muestra cómo otorgar las funciones mínimas necesarias 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. Para 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 de los clústeres en la consola
La API de Anthos On-Prem administra de forma automática los clústeres de usuario creados en la consola y te permite realizar tareas de administración del ciclo de vida de los clústeres en la consola. Si deseas habilitar esta función para los clústeres de usuario creados con bmctl
, sigue los pasos que se indican en Configura un clúster de usuario para que lo administre la API de Anthos local.
Cuando la administración del ciclo de vida del clúster está habilitada, puedes actualizar los clústeres desde la consola:
- Actualizar clústeres de usuario
- Agrega o quita grupos de nodos en clústeres de usuario
- Borrar clústeres de usuario
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 funciones específicas de Identity and Access Management (IAM) para poder ver clústeres y, además, interactuar con ellos en la consola, en las páginas Lista de clústeres de GKE y Lista de clústeres de Anthos.
Se debe agregar a los usuarios a las políticas de control de acceso basado en funciones (RBAC) de Kubernetes que la puerta de enlace de Connect necesita para acceder al servidor de la API de Kubernetes del clúster a través del agente de Connect.
Configura la autorización de RBAC
El servidor de la API de Kubernetes de cada clúster debe poder autorizar solicitudes que provienen de la consola. Para configurar la autorización, debes configurar las políticas de control de acceso basado en funciones (RBAC) de Kubernetes en cada clúster. Si creaste el clúster en la consola, la API de Anthos On-Prem agrega tu cuenta de usuario como administrador y crea políticas de RBAC adecuadas que te otorgan acceso de administrador completo al clúster.
CLI de gcloud
Para aplicar las políticas de RBAC a los usuarios, sigue estos pasos en tu estación de trabajo de administrador:
Ejecuta los siguientes comandos para acceder con tu Cuenta de Google y actualizar los componentes:
gcloud auth login 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: Es el nombre que se usa para representar de forma única el clúster en su flota. En los clústeres de Anthos alojados en Bare Metal, el nombre de la membresía y el nombre del clúster son los mismos.
- ROLE: Es la función 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 restringir el acceso, crea una función personalizada, por ejemplo:role/mynamespace/namespace-reader
. El rol personalizado ya debe existir antes de que ejecute 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=foo@example.com,test-acct@test-project.iam.gserviceaccount.com
- PROJECT_ID: Es el ID del proyecto host de la flota.
- KUBECONFIG_PATH: Es la ruta de acceso local del archivo en el que el kubeconfig que contiene una entrada para el clúster se almacena.
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 CLI de gcloud.
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 otros usuarios que necesitan 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 administrador.
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