前言
Knative Eventing v0.10.0 版本已经于 10 月 29 号正式发布。本次发布继续围绕完善 Eventing 中相关功能展开。本篇文章通过解读这些功能特性,让你快速对 v0.10.0 版本有所了解。
新特性
采用 Destination 资源
为了在 Eventing/Messaging 中需要支持设置URI, 而 Destination 本身具备这些属性,因此将 Destination 作为统一访问资源。 Destination 结构如下:
type Destination struct{
// +optional
Ref *corev1.ObjectReference
// +optional
URI *apis.URL
}
用户除了可以通过之前如下的方式:
sink:
apiVersion: v1
kind: Service
name: event-display
除此之外,还可以直接通过uri方式访问:
sink:
uri: http://event-display.default.svc.cluster.local
通过 uri 这样的方式意味着我们可以在Eventing中 设置 subPath
(如 http://event-display.default.svc.cluster.local/test)进行访问。
目前支持 Destination 的资源包括:Trigger, Subscription, Parallel, Sequence, ApiServerSource, ContainerSource, 以及 CronJobSource。
创建 Trigger 时默认创建 Broker
当第一次创建 Trigger 时,如果没有 Broker, 会自动在当前的namespace 的 label 中添加 knative-eventing-injection: "enabled"
,创建默认的 Broker。
CloudEvents
CloudEvents 升级到 1.0 版本支持
监控增强
- 在所有的组件中暴露 Go's runtime.MemStats 作为 opencensus metrics。
- 在 Grafana 中添加了 Broker/Trigger 和 Source 指标仪表盘
其它特性
- 将 CronJobSource 和 ApiServerSource 中 event type 从 OpenAPI spec 移动到annotations中。
- Broker, Channel, Parallel, Sequence CRDs 支持通过标签
duck.knative.dev/addressable: "true"
表明资源可以访问。
其它关键信息
- 支持 Kubernetes 最小版本 1.14。如果你 k8s 版本小于1.14, 则会部署失败。
-
channels.eventing.knative.dev
CRD 已经被删除, 已经使用channels.messaging.knative.dev
替换. 请手动删除channels.eventing.knative.dev
CRD 资源 - CloudEvents SDK 不再设置默认类型 application/json. 如果需要可以通过设置 content type。
总结
本次 Knative Eventing v0.10.0 版本主要继续完善功能,在后续的版本迭代中应该也是主要集中在功能完善和优化。同时也欢迎对 Knative 有兴趣的一起交流。