日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入解读 Knative Eventing 0.7 版本新特性

發布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入解读 Knative Eventing 0.7 版本新特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

Knative Eventing 0.7 版本已經于 6 月 26 號正式發布。本次發布主要圍繞重構 Channel 特性展開。本篇文章重點解讀了這些特性,并且以此展望一下 Knative Eventing 后續版本的發展。

新特性

重構 Channel

作為 Eventing v0.7 版本最大的特性, 重構了 Channel 的設計:為每個 Channel 單獨創建了CRD資源。
在 Eventing v0.6 版本中, Channel 是通過 provisioner 模式實現的。以 kafka Channel 為例:

apiVersion: eventing.knative.dev/v1alpha1kind: Channelmetadata:name: my-kafka-channelspec:provisioner:apiVersion: eventing.knative.dev/v1alpha1kind: ClusterChannelProvisionername: kafka

這里是通過指定名稱為 kafka 的 ClusterChannelProvisioner。這樣的實現方式存在以下問題:

  • Channel 中只通過一個 provisioner 字段就設置了包含的所有屬性。
  • 每一個Channel Controller都會監聽到所有的資源,再進行過濾。
  • Event Source中的實現方式更符合規范,即每個Source 單獨的CRD和Controller,值得借鑒。

針對這些之前存在的不合理的設計, 在Eventing v0.7版本中,為每個Channel 單獨創建了CRD資源,改造涉及如下:

  • InMemoryChannel CRD 替換 in-memory ClusterChannelProvisioner
  • KafkaChannel CRD 替換 kafka ClusterChannelProvisioner
  • NatssChannel CRD 替換 natss ClusterChannelProvisioner

改造后的 kafka Channel 示例如下:

apiVersion: messaging.knative.dev/v1alpha1kind: KafkaChannelmetadata:name: my-kafka-channelspec:numPartitions: 1replicationFactor: 3

另外這些現存的 ClusterChannelProvisioner,會在未來的版本中刪除掉。

支持事件順序處理(Sequence)

在 0.7 版本中定義了 Sequence CRD 資源用于簡單的pipeine(F1->F2->F3),這個特性比較有意思,它可以將上一步處理的事件結果作為下一步的輸入。類似圖例:

在 Channel, Subscription, Broker, 以及 Trigger 中增強注釋信息

在 Channel, Subscription, Broker, 以及 Trigger 中增加了創建和更新的用戶信息。

事件追蹤支持

  • Channel dispatchers 可以查看事件 Trace 信息
  • ClusterChannelProvisioners, Sources, 以及 Broker 中支持導出Trace信息到Zipkin。

事件源增強

  • ContainerSource 事件源支持設置PodTemplateSpec
  • CronJobSource 事件源支持設置resource limits 和 requests

其它變更

  • Eventing controller 在新版本中明確禁用 istio sidecar 注入Pod
  • 為Broker ingress 和 filter 定義全局的(如 knative-eventing 命名空間) ConfigMap。
  • 參考Serving中的策略,為Eventing中所有的資源對象打上eventing.knative.dev/release?標簽, Value值可以設置為release 版本或者devel

升級與兼容

對于此次的變更,如升級到 Eventing 0.6版本需要關注一下幾點:

  • 對于 kafka-channel-dispatcher StatefulSet 在新版本中不在安裝,
  • 在0.7版本中in-memory-channel?ClusterChannelProvisioner 已被移除掉。可以使用InMemoryChannel CRD替換原?in-memory-channel?ClusterChannelProvisioner
  • Broker ingress pods 新版本會使用 eventing-broker-ingress ServiceAccount。如果之前創建的 Broker 沒有使用eventing injection注釋,需要手動創建所需的 ServiceAccount 和 RoleBindings。
  • webhook Deployment 在新版本中使用了 eventing-webhook Deployment 名稱進行了替換。原有的webhook 會縮為 0 進行處理,接下來也會被移除掉。

總結

從本次 Knative Eventing 0.7 版本發布的特性不難看出,當前 Knative Eventing 在向前的迭代中不斷優化設計,相信在接下來的版本中也會更多的聚焦設計優化,如計劃在 v0.8 版本中完成 Source 到 Importer 的重命名改造等。


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的深入解读 Knative Eventing 0.7 版本新特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。