Agente del servicio de Google Cloud Platform

En esta página se proporciona una descripción general del agente del servicio de Google Cloud Platform.

Introducción

El agente del servicio de Google Cloud Platform (GCP) es una implementación de la API de Open Service Broker (OSB) de código abierto que se aloja en GCP. Simplifica la entrega de servicios de GCP a las aplicaciones que se ejecutan en Kubernetes. El agente del servicio facilita el consumo de servicios de GCP desde un clúster de Kubernetes, ya que se ocupa de crear los recursos de GCP y de administrar los permisos correspondientes. Por ejemplo, puedes aprovisionar una instancia de servicio de Cloud Pub/Sub desde tu clúster de GKE y hacer que esté disponible para tus aplicaciones.

El agente del servicio está registrado en el complemento de catálogo de servicios de GKE. Luego de que instalas el catálogo de servicios en tu clúster y agregas el agente del servicio, se descarga una lista de servicios y planes disponibles. Ya puedes crear instancias de planes y asignarlas con los permisos requeridos (vinculaciones). Las aplicaciones en tu clúster ya pueden acceder a las instancias de servicio creadas a través de sus API nativas. Los servicios de GCP disponibles mediante el agente del servicio son los siguientes:

Puedes encontrar muestras de cada uno de estos servicios en el repositorio de GitHub de Google Cloud Platform.

Conceptos

La API del agente del servicio de Google Cloud Platform utiliza varios conceptos de OSB:

  • Aplicación: cualquier tipo de software que pueda utilizar una instancia de servicio o vincularse a una.
  • Plataforma: el software que administra el entorno de nube en el que se aprovisionan las aplicaciones y se registran los agentes del servicio. Los usuarios no realizan el aprovisionamiento de servicios directamente desde los agentes del servicio; utilizan la plataforma para administrar los servicios y, luego, interactúan con los agentes del servicio en su nombre. La plataforma para el agente del servicio de Google Cloud Platform es el catálogo de servicios de Kubernetes.
  • Servicio: una oferta de un software administrado como Google Cloud Pub/Sub o Spanner. Los servicios de GCP exponen las API que pueden invocarse para realizar ciertas acciones.
  • Vinculación del servicio: la capacidad para utilizar una instancia de servicio. Esta solicitud puede referirse a una aplicación o a alguna otra entidad que quiera utilizar la instancia de servicio. En el catálogo de servicios de Kubernetes, la información que se muestra a través de una llamada de vinculación se ubica en un secreto de Kubernetes para el espacio de nombres especificado. El agente del servicio generalmente utiliza una llamada de creación de la vinculación para configurar los permisos de IAM en una instancia de servicio.
  • Agente del servicio: los agentes del servicio administran el ciclo de vida de los servicios. El catálogo de servicios de Kubernetes interactúa con los agentes del servicio para aprovisionar y administrar las instancias y las vinculaciones del servicio.
  • Instancia de servicio: una creación de instancia de una oferta de servicios.
  • Oferta de servicios: la clase de un servicio que admite el agente del servicio.
  • Plan de servicio: la representación de diferentes opciones o niveles para una determinada oferta de servicios. Esto podría afectar el costo.

Arquitectura

En el siguiente diagrama se proporciona una descripción general visual de la arquitectura de OSB, y el flujo entre el catálogo de servicios y el agente del servicio, con el que se realiza el aprovisionamiento de una instancia y de una vinculación del servicio.

Descripción general

En el siguiente diagrama se ilustra la arquitectura del agente del servicio.

El catálogo de servicios es una extensión de la API de Kubernetes que permite que las aplicaciones que se ejecutan en un clúster de Kubernetes utilicen los servicios de GCP, como Cloud Pub/Sub. El catálogo de servicios se comunica con el agente del servicio para obtener una lista de los servicios y planes disponibles, que luego puedan aprovisionarse como instancias de servicio.

La información sobre una instancia de servicio se almacena en los recursos ServiceInstance y ServiceBinding. Una vez que se aprovisiona la instancia de servicio, se comparten las credenciales de acceso a la aplicación a través de los secretos de Kubernetes.

Cómo obtener un listado de los servicios y los planes

  1. Una vez instalado el recurso ClusterServiceBroker de GCP en el catálogo de servicios, este último se conecta al agente del servicio para solicitar una lista de los servicios y los planes disponibles.
  2. Los detalles del servicio se almacenan como recursos ClusterServiceClass, y sus planes correspondientes se almacenan en recursos ClusterServicePlan.

Consulta Cómo descubrir los servicios y planes de GCP para obtener instrucciones sobre cómo generar una lista de los servicios y los planes.

Instancia de la cuenta de servicio y flujo de vinculación

En el diagrama que se muestra a continuación, se ilustra el orden de las interacciones entre el catálogo de servicios de Kubernetes y el agente del servicio en el contexto del servicio de la cuenta de servicio de Cloud IAM. Las cuentas de servicio son necesarias para la autenticación en los recursos de GCP.

  1. Se aprovisiona una instancia de servicio de la cuenta de servicio de Cloud IAM.
  2. GCP aprovisiona una nueva cuenta de servicio. En este punto, no cuenta con permisos.
  3. El agente del servicio muestra una respuesta de aprovisionamiento de instancia, que se almacena en un recurso ServiceInstance.
  4. Se aprovisiona la vinculación del servicio para la instancia de la cuenta de servicio de IAM.
  5. GCP genera una clave privada para la cuenta de servicio, y la muestra a la instancia de la cuenta de servicio de IAM.
  6. El agente del servicio muestra la clave privada de la cuenta de servicio de IAM, y se crea un recurso ServiceBinding.
  7. El catálogo de servicios almacena la clave privada para la cuenta de servicio en un secreto en un espacio de nombres específico.
  8. Para utilizar la cuenta de servicio y asignar funciones a otros recursos de GCP, puedes crear nuevas vinculaciones con esta cuenta de servicio como entrada en la llamada de vinculación.

Instancia de servicio de GCP y flujo de vinculación

En el diagrama que se muestra a continuación se ilustra el orden de las interacciones entre el catálogo de servicios y el agente de servicios en el contexto de otro servicio de GCP ofrecido por un agente de servicios, como Cloud Pub/Sub.

  1. Aprovisiona una instancia de servicio con un plan de servicio. Por ejemplo, puedes aprovisionar el servicio Cloud Pub/Sub con el Plan 1.
  2. GCP aprovisiona una instancia nueva del recurso en el proyecto. Para Cloud Pub/Sub, GCP aprovisiona un tema Pub/Sub nuevo.
  3. El agente del servicio muestra una respuesta de aprovisionamiento de instancia, que se almacena en un recurso ServiceInstance.
  4. Aprovisiona la vinculación del servicio a la instancia de servicio con parámetros definidos por el plan de servicio. Para Cloud Pub/Sub, esto incluye los permisos de IAM de publicador o suscriptor.

    • Especifica la cuenta de servicio que se utilizará.

    • Especifica las funciones de IAM para asignar a la cuenta de servicio.

  5. Configura los permisos de IAM para la cuenta de servicio. Según el tipo de recurso, los permisos pueden ser:

    • Permisos de IAM en el recurso mismo, como es el caso de la instancia de servicio de Spanner.

    • Permisos de IAM a nivel del proyecto para aquellos recursos que no admiten permisos específicos del recurso.

  6. El agente del servicio muestra la información de conexión del servicio, y se crea un recurso ServiceBinding.

  7. El catálogo de servicios almacena la información de conexión del servicio en un secreto especificado en un espacio de nombres.

  8. La información de vinculación del servicio, que incluye las credenciales de conexión, se comparte con la aplicación a través de un secreto de Kubernetes.

  9. La aplicación utiliza la información de vinculación para conectarse al servicio y acceder a él, como Cloud Pub/Sub.

Opcional: puedes crear vinculaciones adicionales con distintas cuentas de servicio y diferentes conjuntos de funciones dentro del mismo espacio de nombres para la misma instancia de servicio. Esto permite que diferentes aplicaciones en el mismo espacio de nombres de Kubernetes utilicen el mismo tema Pub/Sub.

Consulta Cómo utilizar un servicio de GCP para obtener instrucciones sobre cómo aprovisionar una instancia de servicio y vincularse a una.

Flujo de limpieza y desaprovisionamiento

En el diagrama que se muestra a continuación se ilustra cómo desaprovisionar un servicio cuando ya no se necesita. Esto debería hacerse para evitar generar cargos a tu cuenta de GCP por un servicio que ya no se encuentra en uso.

  1. Borra la vinculación del servicio. El catálogo de servicios envía una solicitud al agente del servicio para desvincular el servicio.
  2. GCP borra los permisos de IAM para la instancia de servicio.
  3. El agente del servicio muestra una respuesta de eliminación de la vinculación.
  4. Borra el secreto de Kubernetes que contiene la vinculación del servicio y la información de la conexión.
  5. Borra la instancia de servicio. El catálogo de servicios envía una solicitud al agente del servicio para que desaprovisione el servicio.
  6. GCP borra la instancia de servicio. Para Cloud Pub/Sub, borra el tema Pub/Sub.
  7. El agente del servicio muestra una respuesta de desaprovisionamiento.

Consulta Limpieza del catálogo de servicios para obtener instrucciones sobre cómo borrar la instancia de servicio y la vinculación.

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...