Agente del servicio de Google Cloud Platform (Beta, obsoleto)

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 es una implementación de la API de Open Service Broker (OSB) de código abierto alojada en Google Cloud. Simplifica la entrega de servicios de Google Cloud a las aplicaciones que se ejecutan en Kubernetes. El agente del servicio facilita el consumo de los servicios de Google Cloud desde un clúster de Kubernetes, ya que se ocupa de crear los recursos de Google Cloud 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 sobre el complemento de catálogo de servicios de GKE. Luego de que instales el catálogo de servicios en tu clúster y agregues el agente del servicio, se descargará 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 Google Cloud disponibles mediante el agente del servicio son los siguientes:

Puedes buscar muestras para cada uno de estos servicios en el repositorio de GitHub de Google Cloud.

Conceptos

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

  • Aplicación: Cualquier tipo de software que pueda usar 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 software administrado, como Pub/Sub o Cloud Spanner. Los servicios de Google Cloud exponen las API que pueden invocarse para realizar determinadas acciones.
  • Vinculación del servicio: La capacidad para usar 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. Por lo general, el agente del servicio usa una llamada de creación de vinculación para configurar los permisos de Cloud 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 API de extensión de Kubernetes que permite que las aplicaciones que se ejecutan en un clúster de Kubernetes usen servicios de Google Cloud, como 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 Google Cloud en el catálogo de servicios, este último se conecta al agente del servicio para solicitar una lista de los servicios y 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 Google Cloud si deseas obtener instrucciones para generar una lista de los servicios y 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 de la API de Cloud IAM. Las cuentas de servicio son necesarias para autenticarse en los recursos de Google Cloud.

  1. Se aprovisiona una instancia de servicio de la cuenta de servicio de Cloud IAM.
  2. Google Cloud aprovisiona una cuenta de servicio nueva. 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 Cloud IAM.
  5. Google Cloud genera una clave privada para la cuenta de servicio y la muestra en la instancia de la cuenta de servicio de Cloud IAM.
  6. El agente del servicio muestra la clave privada de la cuenta de servicio de Cloud 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 usar la cuenta de servicio y asignar funciones a otros recursos de Google Cloud, puedes crear nuevas vinculaciones con esta cuenta de servicio como entrada en la llamada de vinculación.

Instancia de servicio de Google Cloud 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 Google Cloud que ofrece un agente de servicios, como Pub/Sub.

  1. Aprovisiona una instancia de servicio con un plan de servicio. Por ejemplo, puedes aprovisionar el servicio de Pub/Sub con el Plan 1.
  2. Google Cloud aprovisiona una instancia nueva del recurso en el proyecto. Para Pub/Sub, Google Cloud aprovisiona un nuevo tema de Pub/Sub.
  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 Pub/Sub, esto incluye los permisos de Cloud IAM de publicador o de suscriptor.

    • Especifica la cuenta de servicio que se usará.

    • Especifica las funciones de Cloud IAM que se asignarán a la cuenta de servicio.

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

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

    • Permisos de Cloud IAM a nivel de 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 usa la información de vinculación para conectarse y acceder al servicio, como Pub/Sub.

De manera 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 usen el mismo tema de Pub/Sub.

Consulta la página sobre cómo usar un servicio Google Cloud si deseas obtener instrucciones para aprovisionar y vincular una instancia de servicio.

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 Google Cloud por un servicio que ya no está 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. Google Cloud borra los permisos de Cloud 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. Google Cloud borra la instancia de servicio. En cuanto a Pub/Sub, este borra el tema de Pub/Sub.
  7. El agente del servicio muestra una respuesta de desaprovisionamiento.

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

Próximos pasos