Acceder a objetos de la API de Kubernetes mediante un conector

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:

Habilita las APIs.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 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

  1. En la Google Cloud consola, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Selecciona un proyecto y, a continuación, haz clic en Crear cuenta de servicio.

  3. 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.

  4. Haz clic en Crear y continuar.

  5. En la lista Selecciona un rol, busca y selecciona el rol Desarrollador de Kubernetes Engine.

  6. Haz clic en Continuar.

  7. Para terminar de crear la cuenta, haz clic en Hecho.

gcloud

  1. Crea la cuenta de servicio:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    Sustituye SERVICE_ACCOUNT_NAME por el nombre de la cuenta de servicio.

  2. Asigna el rol container.developer a 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_ID por 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.