深入解读 Knative Eventing 0.7 版本新特性

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Knative Eventing 0.7 版本已经于 6 月 26 号正式发布。本次发布主要围绕重构 Channel 特性展开。本篇文章重点解读了这些特性,并且以此展望一下 Knative Eventing 后续版本的发展。

前言

Knative Eventing 0.7 版本已经于 6 月 26 号正式发布。本次发布主要围绕重构 Channel 特性展开。本篇文章重点解读了这些特性,并且以此展望一下 Knative Eventing 后续版本的发展。

新特性

重构 Channel

作为 Eventing v0.7 版本最大的特性, 重构了 Channel 的设计:为每个 Channel 单独创建了CRD资源。
在 Eventing v0.6 版本中, Channel 是通过 provisioner 模式实现的。以 kafka Channel 为例:

   apiVersion: eventing.knative.dev/v1alpha1
   kind: Channel
   metadata:
     name: my-kafka-channel
   spec:
     provisioner:
       apiVersion: eventing.knative.dev/v1alpha1
       kind: ClusterChannelProvisioner
       name: kafka

这里是通过指定名称为 kafka 的 ClusterChannelProvisioner。这样的实现方式存在以下问题:

  • Channel 中只通过一个 provisioner 字段就设置了包含的所有属性。
  • 每一个Channel Controller都会监听到所有的资源,再进行过滤。
  • Event Source中的实现方式更符合规范,即每个Source 单独的CRD和Controller,值得借鉴。

针对这些之前存在的不合理的设计, 在Eventing v0.7版本中,为每个Channel 单独创建了CRD资源,改造涉及如下:

  • InMemoryChannel CRD 替换 in-memory ClusterChannelProvisioner
  • KafkaChannel CRD 替换 kafka ClusterChannelProvisioner
  • NatssChannel CRD 替换 natss ClusterChannelProvisioner

改造后的 kafka Channel 示例如下:

   apiVersion: messaging.knative.dev/v1alpha1
   kind: KafkaChannel
   metadata:
     name: my-kafka-channel
   spec:
     numPartitions: 1
     replicationFactor: 3

另外这些现存的 ClusterChannelProvisioner,会在未来的版本中删除掉。

支持事件顺序处理(Sequence)

在 0.7 版本中定义了 Sequence CRD 资源用于简单的pipeine(F1->F2->F3),这个特性比较有意思,它可以将上一步处理的事件结果作为下一步的输入。类似图例:
image

在 Channel, Subscription, Broker, 以及 Trigger 中增强注释信息

在 Channel, Subscription, Broker, 以及 Trigger 中增加了创建和更新的用户信息。

事件追踪支持

  • Channel dispatchers 可以查看事件 Trace 信息
  • ClusterChannelProvisioners, Sources, 以及 Broker 中支持导出Trace信息到Zipkin。

事件源增强

  • ContainerSource 事件源支持设置PodTemplateSpec
  • CronJobSource 事件源支持设置resource limits 和 requests

其它变更

  • Eventing controller 在新版本中明确禁用 istio sidecar 注入Pod
  • 为Broker ingress 和 filter 定义全局的(如 knative-eventing 命名空间) ConfigMap。
  • 参考Serving中的策略,为Eventing中所有的资源对象打上eventing.knative.dev/release 标签, Value值可以设置为release 版本或者devel

升级与兼容

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

  • 对于 kafka-channel-dispatcher StatefulSet 在新版本中不在安装,
  • 在0.7版本中in-memory-channel ClusterChannelProvisioner 已被移除掉。可以使用InMemoryChannel CRD替换原 in-memory-channel ClusterChannelProvisioner
  • Broker ingress pods 新版本会使用 eventing-broker-ingress ServiceAccount。如果之前创建的 Broker 没有使用eventing injection注释,需要手动创建所需的 ServiceAccount 和 RoleBindings。
  • webhook Deployment 在新版本中使用了 eventing-webhook Deployment 名称进行了替换。原有的webhook 会缩为 0 进行处理,接下来也会被移除掉。

总结

从本次 Knative Eventing 0.7 版本发布的特性不难看出,当前 Knative Eventing 在向前的迭代中不断优化设计,相信在接下来的版本中也会更多的聚焦设计优化,如计划在 v0.8 版本中完成 Source 到 Importer 的重命名改造等。

目录
相关文章
|
10月前
|
机器人 API
【Azure Bot】在中国区的Bot Service上打通Teams Channel注意事项
在中国区的Azure上,已经可以创建机器人服务(Bot Service:https://docs.azure.cn/zh-cn/bot-service/?view=azure-bot-service-4.0),目前可以使用集成的渠道有三种(Direct Line,Web Chat 和 Microsoft Teams):Direct Line 和 Web Chat方式就非常直接,嵌入到自己应用的网页就可以。但是使用Microsoft Teams,则有很多限制。本文主要就是介绍,如果您的机器人服务部署在中国区上,并且需要使用Microsoft Teams时候的注意事项
267 13
|
11月前
|
UED
交互好且转化率高的表单设计技巧分享
表单在网页设计、app或者软件界面当中被广泛的使用,因而表单设计是个比较重要的工作
230 3
|
传感器 机器学习/深度学习 人工智能
智能物流:自动化仓库与配送系统
【10月更文挑战第22天】在21世纪的全球化经济中,物流行业作为连接生产与消费的桥梁,其效率与准确性至关重要。本文深入探讨智能物流的核心技术,如自动化仓储、无人驾驶配送和物联网,以及应用案例和未来发展趋势,揭示自动化仓库与配送系统如何引领物流行业的智能化转型。
1261 0
|
关系型数据库 数据库 RDS
如何恢复误删除的rds实例
如何恢复误删除的rds实例
318 1
|
Android开发
图标提取,一键完成,再也不用截屏抠图了!
图标提取,一键完成,再也不用截屏抠图了!
|
存储 块存储
西门子S7-1200不同存储区的寻址方式
S7-1200 CPU提供了全局存储器数据块和临时存储器等,用于在执行用户程序期间存储数据。全局存储器是指各种专用存储区,如输入映像区I区、输出映像区Q区和位存储器M区,所有块可以无限制地访问该存储器。
西门子S7-1200不同存储区的寻址方式
|
SQL 测试技术 DataX
DataX数据同步无响应
解决Datax同步Starrocks长时间之后无响应问题
|
存储 Oracle 关系型数据库
【IBMDB2】基础知识
【IBMDB2】基础知识
451 1
|
前端开发 Java 调度
阿里新一代分布式任务调度平台Schedulerx2.0破土而出
SchedulerX是阿里巴巴自研的基于Akka架构的分布式任务调度平台(兼容开源XXL-JOB/ElasticJob),支持Cron定时、一次性任务、任务编排、分布式跑批,具有高可用、可视化、低延时等能力。
18965 0
阿里新一代分布式任务调度平台Schedulerx2.0破土而出
阿里云商标查询入口
阿里云商标注册服务,能够快速帮助你申请商标。阿里云的口碑就不多说了,有阿里云这个大牌子,服务肯定差不了。
35730 2