跳至内容

Knative Event Mesh 后台插件

信息

有关安装说明,请参见 插件安装文档

Knative Event Mesh 插件是一个后台插件,允许您查看和管理 Knative 事件资源。该插件与 Kubernetes 集群中运行的特殊后端通信,并与 Kubernetes API 服务器通信。

后台 是一个用于构建开发人员门户的平台。它提供了一种统一的方式来管理和可视化开发人员日常工作中使用的各种资源。

虽然后台不是作为下一代 Kubernetes 仪表板设计的,但它可以可视化和部分管理 Knative 资源。这些资源将是只读的,并且重点关注与开发人员相关的部分。

Event Mesh plugin

Event Mesh plugin

信息

该插件的演示设置可在 https://github.com/aliok/knative-backstage-demo 找到。

工作原理

插件是后台实例的前端部分。它们负责渲染 UI 并与后端通信。后端负责与 Kubernetes API 服务器通信,并向前端提供必要的信息。

此插件利用后台的 实体提供程序实体处理器 概念。实体提供程序负责从后端获取资源,实体处理器负责处理资源并使它们可供前端使用。提供程序是与自定义后端通信的部分。

插件从后端获取 Knative EventType、Broker 和 Trigger 资源。它不会直接获取原始 Kubernetes 资源,而是收集更易于用户理解的数据表示。这意味着某些字段被排除,有些字段被合并以提高清晰度,而其他字段则被转换以在该界面中更易于理解。

显示的内容

Knative Trigger 可以指向任何 可寻址 资源,甚至直接指向 URL。由于后台侧不知道如何处理这些资源,因此插件只会显示 Trigger 的订阅者(如果它已在后台注册)。对于这种关系,我们在后台实体和 Kubernetes 资源中使用 backstage.io/kubernetes-id 注释。

匹配工作方式在 Event Mesh 插件自述文件 中通过图表进行了说明。

这种集成最棒的地方在于后台显示图的能力。例如,您可以在图中看到 EventType、Broker 和 Trigger 订阅者之间的关系。

后台中的图表

安全性

后台安全性

与其他后台插件类似,我们希望插件管理员通过设置必要的项目(例如后端 URL 和令牌)来配置插件。这与 后台 Kubernetes 插件 的方法类似,用户需要提供 URL 和令牌。

令牌存储在后台配置中,并在每次请求时传递给后端。后端使用此令牌对 Kubernetes API 服务器进行身份验证。该令牌是一个服务帐户令牌,具有列出集群中的 Knative 事件资源的必要权限。

...
catalog:
  providers:
    knativeEventMesh:
      dev:
        token: '${KNATIVE_EVENT_MESH_TOKEN}'
        baseUrl: "http://eventmesh-backend.knative-eventing.svc:8080"
        schedule: # optional; same options as in TaskScheduleDefinition
          # supports cron, ISO duration, "human duration" as used in code
          frequency: { minutes: 1 }
          # supports ISO duration, "human duration" as used in code
          timeout: { minutes: 1 }

token 来自 KNATIVE_EVENT_MESH_TOKEN 环境变量。后台支持配置文件中的环境变量,因此您可以在启动后台实例之前将令牌设置为环境变量。实际上,后台还有其他机制,包括配置文件、文件包含等。您可以查看 后台文档 以获取更多信息。

有关如何创建 ServiceAccountClusterRoleClusterRoleBindingSecret 和该 Secret 的令牌的说明,请参见 插件安装文档

使用

该插件将显示集群中的所有 BrokerEventType 资源。Broker 将作为后台 Component 显示,EventType 将作为后台 API 显示。

Trigger 的订阅者将作为后台 Component 显示。但是,只有在以下情况下才会显示:

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将与 Google 共享,用于该目的。 了解更多。