Event Grid en Kubernetes con Azure Arc (versión preliminar): introducción

En este artículo se proporciona información general sobre Event Grid en Kubernetes, los casos de uso, las características que ofrece y en qué se diferencia de Azure Event Grid.

Importante

Event Grid en Kubernetes con Azure Arc se encuentra actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

¿Qué es Event Grid?

Event Grid es un agente de eventos que se usa para integrar cargas de trabajo que usan arquitecturas controladas por eventos. Una arquitectura controlada por eventos usa eventos para comunicar los hechos en los cambios de estado del sistema y es un enfoque de integración común en arquitecturas desacopladas como las que usan microservicios. Event Grid ofrece un modelo de publicación y suscripción, que también se describe como un modelo de comunicación de inserción-inserción, en el que se envían (insertan) eventos a los suscriptores y esos suscriptores no son necesariamente conscientes del publicador que envía los eventos. Este modelo contrasta con los modelos de inserción-extracción clásicos, como los usados por Azure Service Bus o Azure Event Hubs, en los que los clientes extraen mensajes de los agentes de mensajes y, como consecuencia, hay un acoplamiento más fuerte entre los agentes de mensajes y los clientes de consumo.

Event Grid se ofrece en dos ediciones: Azure Event Grid, un servicio PaaS totalmente administrado en Azure, y Event Grid en Kubernetes con Azure Arc, que permite usar Event Grid en un clúster de Kubernetes dondequiera que esté implementado, en el entorno local o en la nube.

Para mayor claridad, en este artículo usamos el término Event Grid al hacer referencia a las funcionalidades generales del servicio, independientemente de la edición usada. Nos referimos a Azure Event Grid para hacer referencia al servicio administrado hospedado en Azure. Para ser concisos, también nos referimos a Event Grid en Kubernetes con Azure Arc como Event Grid en Kubernetes.

Independientemente de la edición de Event Grid que use, hay un publicador de eventos que envía eventos a Event Grid y uno o varios suscriptores de eventos que exponen puntos de conexión en los que reciben los eventos entregados por Event Grid. No es necesario entregar todos los eventos publicados en Event Grid a todos los suscriptores de eventos. Event Grid permite seleccionar los eventos que se deben enrutar a destinos específicos mediante un conjunto de opciones de configuración definidas en una suscripción de eventos. Puede usar filtros en las suscripciones de eventos para enrutar eventos específicos a un punto de conexión o realizar una multidifusión a varios puntos de conexión. Event Grid ofrece un mecanismo de entrega confiable con lógica de reintento. Event Grid también se basa en estándares abiertos y admite la especificación de esquema de Cloud Events 1.0.

Event Grid en Kubernetes con Azure Arc

Event Grid en Kubernetes con Azure Arc es una oferta que le permite ejecutar Event Grid en su propio clúster de Kubernetes. Esta funcionalidad se habilita mediante el uso de Kubernetes habilitado para Azure Arc. Mediante Kubernetes habilitado para Azure Arc, un clúster de Kubernetes compatible se conecta a Azure. Una vez conectado, puedes instalar Event Grid en él.

Caso de uso

Event Grid en Kubernetes admite varios escenarios de integración controlados por eventos. Sin embargo, el escenario principal que abarca se admite y se expresa como un caso de usuario es:

"Como propietario de un sistema implementado en un clúster de Kubernetes, quiero comunicar los cambios de estado de mi sistema mediante la publicación de eventos y la configuración del enrutamiento de esos eventos para que los controladores de eventos, bajo mi control o de otro modo, puedan procesar los eventos del sistema de la mejor manera".

Característica que te ayuda a llevar a cabo los requisitos anteriores: temas de Event Grid.

Event Grid en Kubernetes de un vistazo

Desde la perspectiva del usuario, Event Grid en Kubernetes se compone de los siguientes recursos indicados en color azul:

Resources

  • Un tema es un tipo de canal de entrada que expone un punto de conexión en el que los publicadores envían eventos a Event Grid.
  • Una suscripción de eventos es un recurso que contiene opciones de configuración para filtrar y enrutar eventos a un destino en el que se entregan los eventos.
  • Un evento es el anuncio de un cambio de estado.
  • Un controlador de eventos es una aplicación o servicio que recibe eventos y reacciona o procesa los eventos de alguna manera. A veces también hacemos referencia a los controladores de eventos como suscriptores de eventos. En el diagrama, los controladores de eventos son la API implementada en un clúster de Kubernetes (K8s) y el servicio Azure Service Bus.

Para más información acerca de estos conceptos, consulte Conceptos en Azure Event Grid.

Escenarios y destinos de integración de cargas de trabajo de ejemplo

Puede integrar las cargas de trabajo que se ejecutan en el clúster. El publicador puede ser cualquier servicio que se ejecute en el clúster de Kubernetes o cualquier carga de trabajo que tenga acceso al punto de conexión del tema (hospedado por el agente de Event Grid) al que el publicador envía eventos.

Intra-cluster integration

También puede tener un publicador implementado en otra parte de la red que envíe eventos a la instancia de Event Grid implementada en uno de los clústeres de Kubernetes:

In-network integration

Con Event Grid en Kubernetes, puede reenviar eventos a Azure para su posterior procesamiento, almacenamiento o visualización:

Forward events to Azure

Destinations

Los destinos del controlador de eventos pueden ser cualquier punto de conexión HTTPS o HTTP al que Event Grid pueda acceder mediante la red, pública o privada, y tenga acceso (no protegido con algún mecanismo de autenticación). Los destinos de entrega de los eventos se definen al crear una suscripción de eventos. Para más información, vea Controladores de eventos.

Características

Event Grid en Kubernetes admite temas de Event Grid, que es una característica que también ofrece Azure Event Grid. Los temas de Event Grid temas le ayudarán a llevar a cabo el caso de uso de integración principal, en el que los requisitos piden integrar el sistema con otra carga de trabajo, ya sea de su propiedad o que se hace accesible para el sistema de algún otro modo.

Algunas de las funcionalidades que obtiene con Azure Event Grid en Kubernetes son:

  • Filtrado avanzado : filtre por tipo de evento, asunto del evento o datos del evento para asegurarse de que los controladores de eventos solo reciban los eventos pertinentes.
  • Distribución ramificada: suscriba varios puntos de conexión al mismo evento para enviar copias del evento a varios lugares.
  • Basado en estándares abiertos: defina los eventos mediante la especificación de esquema de Cloud Events 1.0 de CNCF.
  • Confiabilidad: Event Grid dispone de una lógica de entrega de eventos con reintento que garantiza que los eventos lleguen a su destino.

Para más información, consulte Características admitidas por Event Grid en Kubernetes.

Precios

Event Grid en Kubernetes con Azure Arc se ofrece sin cargo durante su versión preliminar.

Pasos siguientes

Siga estos pasos para empezar a enrutar eventos mediante Event Grid en Kubernetes.

  1. Conexión del clúster a Azure Arc.
  2. Instalación de una extensión de Event Grid, que es el recurso real que implementa Event Grid en un clúster de Kubernetes. Para más información sobre la extensión, consulte la sección Extensión de Event Grid.
  3. Creación de una ubicación personalizada. Una ubicación personalizada representa un espacio de nombres del clúster y es el lugar donde se implementan los temas y las suscripciones de eventos.
  4. Creación de un tema y una o varias suscripciones de eventos.
  5. Publicación de eventos.

Estos son más recursos que puede usar: