Knative Eventing 0.6 版本新特性有哪些呢

发布时间:2021-10-12 10:55:16 作者:柒染
来源:亿速云 阅读:124

本篇文章为大家展示了Knative Eventing 0.6 版本新特性有哪些呢,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Knative Eventing 0.6 版本已经正式发布。相比于0.5版本,此次发布包含了一些重要特性及更新。针对这些新特性以及更新,我们如何快速、精准的定位主要技术点。

前言

Knative Eventing 0.6 版本已经于5月15号正式发布。相比于0.5版本,此次发布包含了一些重要特性及更新。针对这些新特性以及更新,我们如何快速、精准的定位主要技术点。本篇文章针对这些进行技术剖析,希望能让大家更好的理解此次发布的重点内容,并且以此展望一下 Knative Eventing 后续版本的发展。
另外由于目前 Eventing 依赖 Eventing-Sources, 关于 Eventing-Sources 0.6 主要更新也会相应的提到。

新特性

Registry

作为事件消费者,之前是无法事先知道哪些事件可以被消费,如果能通过某种方式获得哪些 Broker 提供哪些事件,那么事件消费者就能很方便通过这些 Broker 消费事件。Registry 就是在这样的背景下被提出的,通过 Registry 机制,消费者能针对特定的 Broker 的事件通过 Trigger 进行事件订阅消费。Registry 只是一个逻辑观念,并非一个具体的资源。
其实现围绕以下几个关键点:

示例如下:
$ kubectl get eventtypes -n default

NAME                                         TYPE                                    SOURCE                                              SCHEMA                                     BROKER     DESCRIPTION           READY    REASON
org.bitbucket.repofork                       org.bitbucket.repo:fork                 https://bitbucket.org/my-other-user/my-other-repo                                              dev        BitBucket fork        False    BrokerIsNotReady
com.github.pullrequest                       com.github.pull_request                 https://github.com/user/repo                        https://github.com/schemas/pull_request    default    GitHub pull request   True
dev.knative.source.github.push-34cnb         dev.knative.source.github.push          https://github.com/my-other-user/my-other-repo                                                 default                          True
dev.knative.source.github.pullrequest-86jhv  dev.knative.source.github.pull_request  https://github.com/my-other-user/my-other-repo                                                 default                          True

围绕 Registry 事件注册机制,CronJobSource 和 ApiServerSource 事件源会创建对应的 EventType 并注册到 Registry 中。这里需要注意一点目前这个特性只针对 Broker/Trigger 事件处理模型。

这里简单介绍一下 Eventing-Sources 组件,它用于给 Eventing 提供事件源支持,在0.5版本中提供的事件源包括:KubernetesEventSource、GitHubSource、GcpPubSubSource、AwsSqsSource、ContainerSource、CronJobSource、KafkaSource 以及 CamelSource 。
而在最新的 Eventing-Sources 0.6 版本中,CronJobSource 和 ContainerSource 已经迁移到了 Eventing 中, KubernetesEventSource 数据源也会被 Eventing 中的 ApiServerSource 所替代。

去掉 Istio 依赖

在 Eventing 0.5版本中使用了 Istio 来解决事件路由的问题:

  1. 在创建 Channel 时,通过配置 Istio Virtual Service 将事件路由到对应 provisioner。

  2. 在创建 Trigger 时,通过配置 Istio Virtual service 将事件路由到 Broker-Filter。

这里其实我们可以通过为每一个 Channel 创建唯一ExternalName类型的 k8s service 解决 Channel 事件路由问题,而 Trigger 则直接通过 HTTP 路径(如:http://foo-broker-filter-1da3a.default.svc.cluster.local/my-trigger)将事件路由到 Broker-Filter,并且结合社区去掉 Istio 依赖的建议(在 Serving 中已经建议不在依赖 Istio )。
因此在 Eventing 0.6版本中去掉了对 Istio 的依赖。另外如果你安装了 Istio 的话,并不会影响 Eventing 正常工作。

事件追踪支持

在 Eventing 中如果事件处理过程中出现异常,我们不能很快的定位具体的问题。针对这样的场景,在所有的 Channel 中添加了事件追踪支持,包括:

并且通过 config-tracing ConfigMap 配置 tracing 信息。

Metrics 支持

社区在针对 Eventing/Serving 等组件中采用不同的 controller 实现(例如 Eventing 中使用 controller runtime, 而 Serving 中通过 pkg/controller 方式)进行统一改造(预计在0.7版本完成)过程中,发现 metrics 的实现方式也不一致,因此此次对所有的 controller 都添加了 metrics 统一实现,包括 Broker, Trigger, Channel, Subscription, ContainerSource, CronJobSource 以及 ApiServerSource。

新增 ApiServerSource

上面提到 KubernetesEventSource 在 Eventing-Source 0.6版本中已经去掉,新增 ApiServerSource,用于在 Eventing 中获取 Kubernetes 中资源改变的事件源信息。

完善 ContainerSource

ContainerSource 代码中新增了 Kubernetes 事件和条件判断处理,便于出现问题时进行排查。

其它变更

升级与兼容

对于此次的变更,如升级到 Eventing 0.6版本需要关注一下几点:

Knative Eventing 0.6版本增强了事件处理的易用性如新增 Registy 便于事件消费,通过新增事件跟踪机制以及 Metrics 增强了可用性,同时进一步简化 Eventing 中的依赖处理,如去掉 Istio 依赖,而将 Eventing-Sources 中的数据源处理迁移到 Eventing 中,则进一步减少了对 Eventing-Sources 组件的依赖。

我们这里可以简单展望一下,社区接下来会进一步增强 Trigger 过滤策略(支持正则表达过滤等), 并且针对目前使用同一个 Channel CRD 资源很难定位 Channel 中问题,接下来会为每一个 Channel 定义独立 CRD 资源,这些特性计划都会在0.7版本中推出。另外通过这次版本更新,不难看出 Eventing-Sources 会逐渐退出历史。

上述内容就是Knative Eventing 0.6 版本新特性有哪些呢,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Knative 实战:基于 Kafka 实现消息推送
  2. Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

knative eventing

上一篇:如何在gin框架中利用结构体来获取参数

下一篇:怎么快速入门轻量快速的CI工具Drone

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》