解读 Knative Eventing v0.11.0 新特性

简介: 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

该示例表示通过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

当事件发送异常时,可以将异常事件发送到 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

目录
相关文章
|
容器 Kubernetes API
深入解析 Kubebuilder:让编写 CRD 变得更简单
作者 | 刘洋(炎寻) 阿里云高级开发工程师 导读:自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubernetes 高级玩家的必备技能,本文将介绍 CRD 和 Controller 的概念,并对 CRD 编写框架 Kubebuilder 进行深入分析,让您真正理解并能快速开发 CRD。
13638 3
|
8月前
|
Prometheus 监控 负载均衡
使用Istio实现智能流量路由:金丝雀发布实践
使用Istio实现智能流量路由:金丝雀发布实践
|
存储 Docker 容器
Docker Volumes卷详解及时区、时间同步设置技巧
总的来说,Docker卷是一种强大的数据持久化和数据共享工具,而Docker的时区和时间同步设置则可以帮助你更好地管理和使用你的容器。希望这些信息能够帮助你更好地理解和使用Docker。
536 75
|
资源调度 关系型数据库 MySQL
docker制作compose
本文介绍了Docker Compose的基本使用,包括安装、创建`docker-compose.yml`文件定义服务,以及如何使用环境变量和卷来配置多容器应用的步骤。
743 1
docker制作compose
|
前端开发 JavaScript 安全
深入探索 Qt WebEngineCore:从基础原理到高级应用与技巧
深入探索 Qt WebEngineCore:从基础原理到高级应用与技巧
1681 0
|
Prometheus 监控 Cloud Native
使用 Jenkins 监控和优化构建性能
【8月更文第31天】在软件开发的过程中,构建性能直接影响着开发效率和团队的生产力。一个快速、可靠的构建流程可以显著加快迭代速度,减少等待时间,使团队能够更快地响应变化。Jenkins 作为一款广泛使用的持续集成/持续交付(CI/CD)工具,提供了丰富的功能来帮助开发者监控和优化构建性能。本文将探讨如何利用 Jenkins 的内置工具和外部工具来监控构建性能,并提出一些具体的优化方案。
1299 0
|
存储 安全 Linux
在Linux中,如何进行安全加固?
在Linux中,如何进行安全加固?
|
存储 Linux Shell
【Linux】VScode远程连接Linux
文指导读者如何在VScode中下载安装、配置插件以实现与Linux的远程连接,包括使用XShell、安装必要的插件如C/C++ExtensionPack,并介绍了基本操作和VScode内置命令行功能。
589 0
|
Kubernetes 网络协议 关系型数据库
基于operator sdk轻松编写一个k8s自定义资源管理应用
operator 是一种 kubernetes 的扩展形式,可以帮助用户以 Kubernetes 的声明式 API 风格自定义来管理应用及服务,operator已经成为分布式应用在k8s集群部署的事实标准了,在云原生时代系统想迁移到k8s集群上编写operator应用是必不可少的能力,这里介绍用 CoreOS 的 operator framework 工具如何快速构建一个 operator 应用。
8235 0
|
存储 jenkins 持续交付
基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)
基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)
1433 0