全面解读 Knative Eventing 0.8 版本新特性

简介: Knative Eventing v0.8 版本已经于 8 月 6 号正式发布。本次发布主要围绕完善 Eventing 中相关功能展开。本篇文章通过解读这些功能特性,希望能让你快速对 0.8 新版本有所了解。

前言

Knative Eventing v0.8 版本已经于 8 月 6 号正式发布。本次发布主要围绕完善 Eventing 中相关功能展开。本篇文章通过解读这些功能特性,希望能让你快速对 0.8 新版本有所了解。

新特性

新增 Choice CRD 资源

Choice 是用来做什么呢? 其实它与 sequence 类似,是用来定义 function 执行流程的。通过 Choice, 可以根据条件来选择function 进行事件处理。Choice 的定义如下:

apiVersion: messaging.knative.dev/v1alpha1
kind: Choice
metadata:
  name: check-assignment
spec:
  channelTemplate:
    apiVersion: messaging.knative.dev/v1alpha1
    kind: InMemoryChannel
  cases:  
  - filter:
      ref:
         apiVersion: serving.knative.dev/v1alpha1
         kind: Service
         name: data-assigned
    subscriber:
      ref:
        apiVersion: serving.knative.dev/v1alpha1
        kind: Service
        name: send-notice
  • channelTemplate: 设置所使用的Channel
  • cases: 表示选择条件
  • filter: 过滤条件,这里通过Service进行事件filter处理
  • subscriber:事件经过filter之后,最终发送的服务。

支持设置默认 Channel

默认 Channel 配置允许在不指定底层实现的情况下创建Channel。创建默认的Channel。注意这里的 Channel 是设置在messaging.knative.dev/v1alpha1分组下,原有在eventing.knative.dev分组下使用 Provisioner 模型的 Channel 会在 0.9 版本废弃。

apiVersion: messaging.knative.dev/v1alpha1
kind: Channel
metadata:
  name: default-channel
  namespace: default

通过configmap控制默认Channel设置。

apiVersion: v1
kind: ConfigMap
metadata:
  name: default-ch-webhook
  namespace: knative-eventing
data:
  default-ch-config: |
    clusterDefault:
      apiVersion: messaging.knative.dev/v1alpha1
      kind: InMemoryChannel
    namespaceDefaults:
      some-namespace:
        apiVersion: messaging.knative.dev/v1alpha1
        kind: KafkaChannel
        spec:
          numPartitions: 2
          replicationFactor: 1

这里指定了两个默认的Channel:

  • clusterDefault:集群级别的默认Channel(InMemoryChannel)。
  • namespaceDefaults:namespace级别的默认Channel(KafkaChannel)

另外 Brokers 和 Sequences 在没有指定Channel的情况下,都支持使用默认的 Channne l设置。

CloudEvents

CloudEvents 升级到0.3版本支持

监控增强

  • 在webhook中支持统计功能
  • Grafana and Prometheus中支持对 Eventing 指标采集
  • 在Broker Ingress中增加了metric 度量。

资源指定名称设置

在原有的Broker和Trigger中,使用GenerateName创建 Channel 和 Subscription。由于是自动产生的name,如果listers 数据不是最新的,可能导致 Channel 或 Subscription资源被多次创建。
另外 ApiServerSource 、 ContainerSource 和使用 provisioner 的 原有的Channel 也支持使用指定的name。

其它特性

  • CronJobSource 和 ApiServerSource 支持了事件注册 event types。
  • 在Trigger filter中增加了对 Cloud Event Attribute 过滤支持

其它主要变更

  • 升级 github.com/knative/pkg 到 knative.dev/pkg。这个变动可能会影响到代码开发使用 Knative 依赖包的设置,需要注意一下。
  • 将Broker's Ingress Handler 和 metrics移动到pkg目录下
  • 参考Serving中的策略,为Eventing中所有的资源对象打上eventing.knative.dev/release 标签, Value值可以设置为release 版本或者devel
  • Kafka channel 转移到了https://github.com/knative/eventing-contrib
  • Triggers 中 sourceAndType 属性接下来要被遗弃,新的字段为 attributes , 该新字段既支持标准的CloudEvents 属性, 也支持扩展的熟悉.

总结

本次 Knative Eventing 0.8 版本主要聚焦在功能完善方面,也从侧面反映 Knative Eventing 功能日渐成熟,相信在后续的版本迭代中主要集中在功能完善和优化。同时也欢迎对 Knative 有兴趣的一起交流。

欢迎加入 Knative 交流群

image

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
JavaScript API 虚拟化
20个基于DPDL开源项目,带你冲破内核瓶颈(上)
20个基于DPDL开源项目,带你冲破内核瓶颈
|
JavaScript
使用nodejs连接ftp上传下载
使用nodejs连接ftp,进行ftp的操作,包括列表、上传、下载以及速率等。
使用nodejs连接ftp上传下载
|
存储 芯片
移动硬盘突然打不开了?别急,有办法解决
对于不少人来说,移动硬盘是存放重要文件、照片、视频和备份资料的“宝库”。但在某天,当你满怀期待地将移动硬盘插入电脑时,却发现它根本打不开,甚至连盘符都不见了。这时候,不少人第一反应就是“完了,数据是不是没了?”别急,移动硬盘打不开不等于数据彻底消失。本文将带你逐步排查问题,并分享一些切实可行的解决方法。
|
3月前
|
Kubernetes Cloud Native 微服务
【微服务与云原生架构】 云原生核心:Docker、K8s架构、核心资源(Pod/Deployment/Service/Ingress)、Pod生命周期、健康检查、滚动更新、自动扩缩容HPA
本文系统梳理微服务与云原生架构的知识体系:以Docker实现环境一致与轻量交付,K8s提供容器编排底座;涵盖Pod、Deployment、Service、Ingress四大核心资源,以及健康检查、滚动更新、HPA自动扩缩容等关键能力,构建高可用、可弹性、可观测的现代分布式应用架构闭环。
|
3月前
|
运维 API 调度
【大模型】《大模型部署与优化——三大核心模块》(模型量化(PTQ/QAT/AWQ)、推理优化(vLLM、TensorRT)、PagedAttention、服务化部署)
本知识库系统梳理大模型部署与优化全链路:直击显存墙、访存瓶颈等底层挑战;详解PTQ/QAT/AWQ量化技术;深度解析PagedAttention与vLLM/TensorRT-LLM推理引擎;覆盖服务化部署、云原生架构及选型实践,助力高效、稳定、低成本落地。
|
7月前
|
JSON 供应链 API
从API设计洞察电商平台:淘宝、京东、拼多多,谁更懂商家需求?
本文从技术视角解析淘宝、京东、拼多多三大电商API设计差异:淘宝重灵活与深度,京东强在稳定与供应链,拼多多胜在简洁与敏捷。API背后折射的是对不同商家需求的深刻洞察,选择应匹配业务模式与发展阶段。(238字)
|
5月前
|
机器学习/深度学习 存储 弹性计算
刚刚:阿里云服务器2026最新收费价格曝光:年/月/小时价格一目了然
2026年阿里云服务器最新价格表:年付低至38元/年(轻量应用服务器),月付25元起,按量小时计费0.3375元起;覆盖中国大陆及海外多地域,含ECS、GPU(EGS)、轻量服务器全品类,支持带宽与系统盘灵活选配,并享代金券等多重优惠。
1515 9
|
6月前
|
人工智能 安全 API
黎跃春深度解析:基于阿里云百炼平台的 AI 智能体应用开发实战思路
本文详解如何在阿里云百炼与灵积平台构建高可用AI智能体,融合Graph-RAG、Workflow编排与Python插件开发,实现业务闭环。覆盖RAG数据治理、API集成、安全合规及效果评估,助力开发者掌握AI运营工程师核心能力,快速达成25k–30k+职业跃迁。(239字)
|
11月前
|
存储 安全 数据管理
服务器违规资源被删,数据定时备份OSS 云存储才是 “救命稻草”
在数字化时代,数据已成为企业与个人的核心资产。然而,服务器违规、硬件故障等问题频发,导致数据丢失、业务中断,甚至造成不可挽回的损失。为保障数据安全与业务连续性,定时备份至关重要。阿里云国际站OSS提供高效、可靠的云存储解决方案,支持自动定时备份,帮助用户轻松应对数据风险。本文详解OSS备份操作步骤与注意事项,助你为数据穿上“防护甲”,实现安全无忧存储。
什么是 CAS(自旋锁)? 它的优缺点? 如何使用CAS实现一把锁?
该博客文章解释了什么是CAS(自旋锁),包括CAS的基本概念、实现原理、优缺点,以及如何使用CAS实现锁的逻辑,并提供了使用CAS实现锁的Java完整代码示例和测试结果。
什么是 CAS(自旋锁)? 它的优缺点? 如何使用CAS实现一把锁?