使用 Azure Arc 的 Kubernetes 上的事件网格 (预览版) - 概述

本文概述了 Kubernetes 上的事件网格、其用途的用例、提供的功能以及它与 Azure 事件网格的不同之处。

重要

Azure Arc 上的 Kubernetes 事件网格目前正处于公共预览阶段。 此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

什么是事件网格?

事件网格是一个事件代理,用于集成使用事件驱动的体系结构的工作负载。 事件驱动的体系结构使用事件来传达系统状态更改中的事件,是分离体系结构(例如使用微服务的体系结构)中的常见集成方法。 事件网格提供一个发布-订阅模型,也称为推送-推送通信模型,其中订阅者接收(推送)事件,并且这些订阅者不一定知道正在发送事件的那些发布者。 此模型与经典的推拉模型形成鲜明对比,例如 Azure 服务总线或 Azure 事件中心使用的模型,其中客户端从消息代理服务器拉取消息,从而导致消息代理与消费客户端之间的耦合更紧密。

事件网格提供两个版本:Azure 事件网格,这是 Azure 上的完全托管 PaaS 服务;以及借助 Azure Arc 在 Kubernetes 上运行的事件网格,您可以在任何部署位置,无论是本地还是云上的 Kubernetes 集群中使用事件网格。

为了清楚起见,本文介绍常规服务功能时,我们将使用术语 事件网格 ,而不考虑所使用的版本。 我们参考 Azure 事件网格 来引用 Azure 上托管的托管服务。 为了简洁起见,我们将 Kubernetes 上的事件网格与 Azure Arc 称为 Kubernetes 上的事件网格

无论使用的事件网格版本如何,都有一个 事件发布者 将事件发送到事件网格,以及一个或多个 事件订阅者 公开事件网格所传送事件的终结点。 并非所有发布到事件网格的事件都需要传送到所有事件订阅者。 事件网格允许你选择应通过 事件订阅中定义的一组配置设置将事件路由到特定目标的事件。 可以使用事件订阅中的筛选器将特定事件路由到一个终结点或多播到多个终结点。 事件网格还提供可靠的传递机制,其中包含重试逻辑。 事件网格也基于开放标准,并支持 云事件 1.0 架构规范

在支持 Azure Arc 的 Kubernetes 上使用事件网格

Azure Arc 上的 Kubernetes 事件网格是一项产品,允许您在自己的 Kubernetes 群集上运行事件网格。 此功能通过使用 Azure Arc 启用的 Kubernetes 来实现。 通过启用 Azure Arc 的 Kubernetes, 支持的 Kubernetes 群集 连接到 Azure。 连接后,即可在 它上安装事件网格

用例

Kubernetes 上的事件网格支持各种事件驱动的集成方案。 但是,支持并表示为用户情景的主要内容包括:

“作为部署到 Kubernetes 群集的系统所有者,我想通过发布事件和配置这些事件的路由来传达系统的状态更改,以便事件处理程序在我的控制下或其他方式处理系统的事件。”

有助于实现上述要求的功能事件网格主题

Kubernetes 上的事件网格一目了然

从用户的角度来看,Kubernetes 上的事件网格由蓝色的以下资源组成:

资源

  • 主题是一种输入通道,发布者可以通过该通道将事件发送到事件网格的终端节点。
  • 事件订阅是一个资源,其中包含用于筛选事件并将事件路由到传递事件的目标的配置设置。
  • 事件是状态更改的公告。
  • 事件处理程序是一种应用程序或服务,它以某种方式接收事件并做出响应或处理事件。 有时,我们还将事件处理程序称为 事件订阅者。 在关系图中,事件处理程序是部署到 Kubernetes 群集 (K8s) 和 Azure 服务总线服务的 API。

有关这些概念的详细信息,请参阅 Azure 事件网格中的概念

示例工作负荷集成方案和目标

可以集成群集上运行的工作负荷。 发布者可以是 Kubernetes 群集上运行的任何服务,也可以是有权访问发布者向其发送事件的主题终结点(由事件网格代理托管)的任何工作负荷。

群集内部集成

还可以在网络中的其他位置部署发布者,用于将事件发送到部署在您的某个 Kubernetes 群集上的 Event Grid。

网络内集成

使用 Kubernetes 上的事件网格,可以将事件转发到 Azure,以便进一步处理、存储或可视化:

将事件转发到 Azure

Destinations

事件处理程序目标可以是事件网格可以通过网络、公共或专用访问的任何 HTTPS 或 HTTP 终结点(不受某些身份验证机制保护)。 创建事件订阅时,可以定义事件传送目标。 有关详细信息,请参阅 事件处理程序

Features

Kubernetes 上的 事件网格支持事件网格主题,这是 Azure 事件网格也提供的功能。 事件网格主题帮助你实现主要集成用例,即将你的系统与由你拥有或可访问的其他工作负荷进行集成。

在 Kubernetes 上,Azure 事件网格提供的一些功能包括:

  • 事件筛选:筛选事件类型、事件主题或事件数据,以确保事件处理程序仅接收相关事件。
  • 扇出:将多个终结点同时订阅同一事件,以将事件的副本发送到多个位置。
  • 基于开放标准:使用NCF 的 云事件 1.0 架构规范定义事件。
  • 可靠性:事件网格具有重试事件传送逻辑,可确保事件到达其目标。

有关详细信息,请参阅 Kubernetes 上的事件网格支持的功能

Pricing

Kubernetes 上的事件网格在 Azure Arc 的预览版期间免费提供。

后续步骤

按照这些步骤开始使用 Kubernetes 上的事件网格路由事件。

  1. 将群集连接到 Azure Arc
  2. 安装事件网格扩展,这是将事件网格部署到 Kubernetes 群集的实际资源。 若要了解有关扩展的详细信息,请参阅 事件网格扩展 部分以了解详细信息。
  3. 创建自定义位置。 自定义位置表示群集中的命名空间,它是主题和事件订阅的部署位置。
  4. 创建主题和一个或多个事件订阅
  5. 发布事件

下面是可以使用的更多资源: