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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 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

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
Kubernetes Serverless API
解读Knative 0.17.0版本特性
Knative 0.17.0 版本已于近期发布,对于 Knative v0.17.0 版本新特性,我们进行解读,让大家对 Knative 新版本快速了解。
1976 0
解读Knative 0.17.0版本特性
|
Kubernetes Serverless API
解读Knative 0.16.0版本特性
Knative 0.16.0 版本已于近期发布,针对 Knative v0.16.0 版本对这些新功能特性进行解读,让你快速对新版本特性有所深入了解。
1377 0
解读Knative 0.16.0版本特性
|
Kubernetes Serverless 开发工具
Knative 简介
本文作者来自蚂蚁金服系统部之芥 什么是 Knative? knative 是谷歌开源的 serverless 架构方案,旨在提供一套简单易用的 serverless 方案,把 serverless 标准化。
22776 0
|
存储 API
Knative Eventing 0.15.0 版本变更
前言 Knative Eventing 0.1.15 版本在5月27日已经发布,来看看它的变化。 注意 需要使用迁移工具把存储版本由v1alpha1 更新为 v1beta1,如果使用了Broker.Spec.ChannelTemplateSpec,需要在升级前先更新为兼容的配置。
1206 0
|
Kubernetes 负载均衡 网络协议
解读 Knative Serving v0.15.0 版本特性
Knative 0.15.0 版本已于近期发布,针对 Knative Serving v0.15.0 版本对这些新功能特性进行解读,让你快速对新版本特性有所深入了解。
1679 0
|
消息中间件 Kafka API
解读 Knative Eventing v0.14.0 版本特性
Knative Eventing v0.14.0 版本已于近期发布,新版本带来了哪些特性呢?本文会进行相关的解读
1487 0
|
Prometheus Kubernetes Cloud Native
解读 Knative v0.13.0版本特性
Knative Eventing v0.13.0 发布了,猜一下这个版本有没有惊喜特性,本文给你带来解读。
1863 0
|
Kubernetes API 容器
解读 Knative Eventing v0.12.0 新特性
本文针对 Knative Eventing v0.12.0 版本新功能特性进行解读,让你快速对 v0.12.0 版本有所了解。
1127 0
|
存储 Kubernetes API
|
Kubernetes 网络协议 Java