Un clúster de Google Kubernetes Engine (GKE) consta de un plano de control y máquinas de trabajador llamadas nodos. Puedes ejecutar tus cargas de trabajo de Kubernetes en contenedores en un clúster de GKE. Los nodos son las máquinas de trabajador que ejecutan tus aplicaciones en contenedores y otras cargas de trabajo, y el plano de control es el endpoint unificado de tu clúster. Para obtener más información, consulta la arquitectura de clústeres de GKE.
El servidor de la API de Kubernetes se ejecuta en el plano de control, lo que te permite interactuar con los objetos de Kubernetes en el clúster mediante llamadas a la API de Kubernetes. Los objetos son entidades persistentes en el sistema de Kubernetes y representan el estado de tu clúster. Para obtener más información, consulta los artículos Objetos en Kubernetes y Descripción general de la API de la documentación de Kubernetes, que incluye enlaces a las páginas de referencia de la API de Kubernetes.
En este documento se muestra cómo usar el conector de la API de Kubernetes en un flujo de trabajo para hacer solicitudes al endpoint del servicio de Kubernetes alojado en el plano de control de un clúster de GKE. Por ejemplo, puedes usar el conector para crear implementaciones de Kubernetes, ejecutar trabajos, gestionar pods o acceder a aplicaciones implementadas a través de un proxy. Para obtener más información, consulta el artículo Descripción general de Kubernetes API Connector.
Antes de empezar
Antes de continuar con las tareas de este documento, asegúrate de que has completado ciertos requisitos previos.
Habilitar APIs
Para poder acceder a los objetos de la API de Kubernetes mediante el conector de la API de Kubernetes, debes habilitar las siguientes APIs:
- API de Google Kubernetes Engine: para crear y gestionar aplicaciones basadas en contenedores con GKE
APIs de Workflows: para gestionar las definiciones y las ejecuciones de flujos de trabajo. Si habilitas la API de Workflows, se habilitará automáticamente la API de Workflow Executions.
Consola
Habilita las APIs:
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Habilita las APIs:
gcloud services enable container.googleapis.com workflows.googleapis.com
Crear una cuenta de servicio
Crea una cuenta de servicio gestionada por el usuario que actúe como identidad de tu flujo de trabajo y concédele el rol Desarrollador de Kubernetes Engine (roles/container.developer) para que el flujo de trabajo pueda acceder a los objetos de la API de Kubernetes dentro de los clústeres.
Consola
En la Google Cloud consola, ve a la página Cuentas de servicio.
Selecciona un proyecto y, a continuación, haz clic en Crear cuenta de servicio.
En el campo Nombre de cuenta de servicio, escribe un nombre. La consola rellena el campo ID de cuenta de servicio en función de este nombre. Google Cloud
En el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo,
Service account for Kubernetes API.Haz clic en Crear y continuar.
En la lista Selecciona un rol, busca y selecciona el rol Desarrollador de Kubernetes Engine.
Haz clic en Continuar.
Para terminar de crear la cuenta, haz clic en Hecho.
gcloud
Crea la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sustituye
SERVICE_ACCOUNT_NAMEpor el nombre de la cuenta de servicio.Asigna el rol
container.developera tu cuenta de servicio:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/container.developer
Sustituye
PROJECT_IDpor el ID de tu proyecto. Google Cloud
Ten en cuenta que puedes usar tanto IAM como el control de acceso basado en roles (RBAC) de Kubernetes para controlar el acceso a tu clúster de GKE:
La gestión de identidades y accesos no es específica de Kubernetes, sino que proporciona gestión de identidades para varios Google Cloud productos y opera principalmente a nivel de Google Cloud proyecto.
El control de acceso basado en roles de Kubernetes es un componente principal de Kubernetes que te permite crear y asignar roles (conjuntos de permisos) a cualquier objeto o tipo de objeto del clúster. Si usas principalmente GKE y necesitas permisos detallados para cada objeto y operación de tu clúster, RBAC de Kubernetes es la mejor opción.
Para obtener más información, consulta Control de acceso.
Crear un clúster de GKE
Para usar el conector de la API de Kubernetes, debes haber creado un clúster de GKE público o privado. En un clúster privado, los nodos solo tienen direcciones IP internas, lo que significa que los nodos y los pods están aislados de Internet de forma predeterminada. Para obtener más información, consulta la sección Clústeres privados.
También puedes especificar el modo de funcionamiento, que te ofrece diferentes niveles de flexibilidad, responsabilidad y control. Por ejemplo, puedes crear un clúster de Autopilot, que es un modo de funcionamiento de GKE en el que Google gestiona la configuración de tu clúster, incluidos los nodos, el escalado, la seguridad y otros ajustes preconfigurados. Para obtener más información, consulta Elegir un modo de funcionamiento de GKE.