解读 Knative Eventing v0.11.0 新特性

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Knative Eventing v0.11.0 版本已经于 12 月 10 号正式发布。本次发布围绕 Eventing 事件源接入及事件可用性等相关功能展开。本文通过解读这些功能特性,让你快速对 v0.11.0 版本有所了解。

前言

Knative Eventing v0.11.0 版本已经于 12 月 10 号正式发布。本次发布围绕 Eventing 事件源接入及事件可用性等相关功能展开。本文通过解读这些功能特性,让你快速对 v0.11.0 版本有所了解。

新特性

SinkBinding

SinkBinding 是Kantive 中 Binding 设计模式的具体运用。支持将K8s 中已有的资源(如Deployment, Job, DaemonSet, StatefulSet)、 Knative Service 等与目标绑定资源(Knative 、Broker)通过注入环境变量K_SINK进行事件发送等访问。可以理解对原有ContainerSource的一种扩展。示例如下:

apiVersion: sources.knative.dev/v1alpha1
kind: SinkBinding
metadata:
  name: deployment-binding
spec:
  subject:
    apiVersion: apps/v1
    kind: Deployment
    # namespace defaults to same as binding.
    name: event-producer
  sink:
    ref:
      apiVersion: eventing.knative.dev/v1alpha1
      kind: Broker
      # namespace defaults to same as binding.
      name: default
AI 代码解读

该示例表示通过event-producer的 Deployment 资源产生事件,并将事件发送给 default Broker。通过 SinkBinding 资源,能够将两种不同的资源直接建立访问关系,这种设计模式值得借鉴

增强事件交付 - dead letter sink

Knative Eventing 中如果发送事件异常,可以通过重试发送未成功使用的事件,若重试依然不起作用,则可以决定将这些事件转发到一个死信接收服务。当前 InMemoryChannel 已支持该特性。示例如下:

apiVersion: messaging.knative.dev/v1alpha1
kind: Subscription
metadata:
  name: with-dead-letter-sink
spec:
  channel:
    apiVersion: messaging.knative.dev/v1alpha1
    kind: InMemoryChannel
    name: default
  delivery:
    deadLetterSink:
      ref:
        apiVersion: serving.knative.dev/v1
        kind: Service
        name: error-handler
  subscriber:
    uri: http://doesnotexist.default.svc.cluster.local
AI 代码解读

当事件发送异常时,可以将异常事件发送到 deadLetterSink 中 error-handler 服务进行处理。

其它特性

  • APIServer 资源支持报告get/watch/list 是否有足够的权限进行操作
  • Trigger 资源支持通过 SubscriberResolved 展示订阅状态
  • ApiServerSource 和 CronjobSource 当前产生 CloudEvent 1.0 的数据格式

其它关键信息

  • Parallel 资源已经移到了parallels.flows.knative.dev/v1beta1分组中,parallels.messaging.knative.dev 分组接下来将会被遗弃。
  • Sequence 资源已经移到了sequences.flows.knative.dev/v1beta1 分组中,sequences.messaging.knative.dev 分组接下来会被遗弃
  • 使用 Subscription.spec.reply 替换原有 Subscription.spec.reply.channel 属性

总结

本次 Knative Eventing v0.11.0 版本主要增强了k8s事件源的接入以及事件的交付可用性,在后续的版本迭代中会更多的关于事件源接入进行优化。欢迎对 Knative 有兴趣的一起交流。

欢迎加入 Knative 交流群

image

目录
打赏
0
0
0
0
54112
分享
相关文章
解读Knative 0.17.0版本特性
Knative 0.17.0 版本已于近期发布,对于 Knative v0.17.0 版本新特性,我们进行解读,让大家对 Knative 新版本快速了解。
2050 0
解读Knative 0.17.0版本特性
解读Knative 0.16.0版本特性
Knative 0.16.0 版本已于近期发布,针对 Knative v0.16.0 版本对这些新功能特性进行解读,让你快速对新版本特性有所深入了解。
1427 0
解读Knative 0.16.0版本特性
手动安装 Knative
本章主要介绍如何在已有 Kubernetes 集群上执行 Knative 的自定义安装。Knative的模块化组件可以允许您安装所需的组件。
手动安装 Knative
Knative 初体验:Eventing Hello World
基于事件驱动是 Serverless 的核心功能之一,通过事件驱动服务,满足了用户按需付费(Pay-as-you-go)的需求。在之前的文章中我们介绍过 Knative Eventing 由事件源、事件处理模型和事件消费 3 个主要部分构成,那么事件如何通过这 3 个组件产生、处理以及消费呢? 本文通过 Hello World 示例带你初探 Eventing。
Knative 初体验:Eventing Hello World
Knative 简介
本文作者来自蚂蚁金服系统部之芥 什么是 Knative? knative 是谷歌开源的 serverless 架构方案,旨在提供一套简单易用的 serverless 方案,把 serverless 标准化。
22860 0
Knative Eventing 0.15.0 版本变更
前言 Knative Eventing 0.1.15 版本在5月27日已经发布,来看看它的变化。 注意 需要使用迁移工具把存储版本由v1alpha1 更新为 v1beta1,如果使用了Broker.Spec.ChannelTemplateSpec,需要在升级前先更新为兼容的配置。
1232 0
解读 Knative Serving v0.15.0 版本特性
Knative 0.15.0 版本已于近期发布,针对 Knative Serving v0.15.0 版本对这些新功能特性进行解读,让你快速对新版本特性有所深入了解。
1729 0
解读 Knative Eventing v0.14.0 版本特性
Knative Eventing v0.14.0 版本已于近期发布,新版本带来了哪些特性呢?本文会进行相关的解读
1530 0