v0.21 版本發佈

發佈於:2021-02-27 ,  修訂於:2023-08-03

公告 Knative v0.21 版本發佈

Knative 的新版本現已在多個元件中提供。請按照文件中 安裝 Knative 的說明進行操作,以了解各個元件。

目錄

重點

  • Kubernetes 最低版本已變更為 v1.18
  • 現在 Serving 支援 Istio 1.9 和 Contour 1.12
  • 修正使用 Kourier 和 AutoTLS 時的 DomainMapping 問題
  • Eventing 來源 PingSource 二進位模式有重大變更。
  • Eventing 同步能夠知道何時回覆,請參閱 事件回覆標頭合約規格,以取得更多詳細資訊。
  • CLI kn 0.21.0 包含一些錯誤修正和小功能增強。這主要是一個潤飾版本。它也是第一個將兩個 kn 外掛程式帶入 Knative 發行列車的版本。
  • Knative Operator 現在支援 net-kourier
  • Knative Opertor 現在支援 latest 版本作為 Operator 支援的特殊版本

Serving v0.21

🚨 重大或值得注意

  • Kubernetes 最低版本已變更為 v1.18
  • GC v1 和 Labeler v1 已從程式碼基底中棄用並移除
  • Webhooks 憑證現在使用 Ed25519 而不是 RSA/2048,並且有效期限為一周 (knative/pkg#1998)

💫 新功能和變更

  • 在 config-network config map 中引入 autocreateClusterDomainClaim。這允許在共用叢集中安全地使用 DomainMappings,方法是停用自動 ClusterDomainClaim 建立。如果此選項設定為「false」,則叢集管理員必須透過建立具有適當 spec.Namespace 設定的 ClusterDomainClaim 來明確委派網域名稱。(#10537)
  • 網域對應不允許從叢集本機網域名稱(通常是「cluster.local」下的網域)對應。(#10798)
  • 允許在容器的 SecurityContext 上設定 ReadOnlyRootFilesystem (#10560)
  • 當使用者選擇非積極探測時(即 PeriodTimeout > 1),容器的就緒探測 FailureThreshold 和 TimeoutSeconds 現在分別預設為 3 和 1。(#10700)
  • 避免在沒有已經存在「Accept-Encoding: gzip」標頭的情況下,隱式地將其新增至 Proxy 要求。(#10691)
  • 可以使用 serving.knative.dev/rolloutDuration 註釋在個別修訂版本上設定逐步推出。(#10561)
  • 支援 Istio 1.9 (knative-extensions/net-istio#515](https://github.com/knative-extensions/net-istio/pull/515))
  • 支援 Contour 1.12 (knative-extensions/net-contour#414](https://github.com/knative-extensions/net-contour/pull/414))

🐞 錯誤修正

  • 修正使用 auto-tls 和 kourier challenge 時,網域對應的問題 (#10811
  • 修正啟動器的指標可能會卡住的問題,因此從零開始縮放無法如預期運作。(#10729)
  • 修復佇列 Proxy 排空邏輯中的競爭,在極不可能發生的邊緣情況下,可能導致即使排空已完成,pre-stop Hook 也不會結束。(#10781)
  • 避免與指標相關的緩慢記憶體不足問題 (knative/pkg#2005)
  • 停止報告反射器指標,因為這些指標已在上游移除 (knative/pkg#2020)

Eventing v0.21

🚨 重大或值得注意

  • 重大變更:PingSource 二進位模式現在在事件主體中傳送實際的二進位資料,而不是 Base64 編碼形式。(#4851](https://github.com/knative/eventing/pull/4851), @eclipselu)
  • 您需要在升級後執行儲存移轉工具,以將資源從 v1beta1 移轉到 v1beta2 pingsources.sources.knative.dev。(#4750](https://github.com/knative/eventing/pull/4750), @eclipselu)

💫 新功能和變更

  • 為 Eventing Webhook 新增 HorizontalPodAutoscaler 和 PodDisruptionBudget (#4792)
  • 事件回覆標頭合約新增至規格 (#4560)
  • PingSource 可用的 Cloudevent 追蹤 (#4877)
  • 傳送到死信端點的 CloudEvents 包含名為 ce-knativedispatcherr 的擴充屬性,其中包含最終分派嘗試的編碼 HTTP 回應錯誤資訊。(#4760, @travis-minke-sap)
  • 訊息接收器支援自訂的存活和就緒檢查 (#4730)
  • imc-dispatcher 服務新增新的追蹤跨度屬性,使其與 broker-ingress.knative-eventing 和 broker-filter.knative-eventing 服務一致。新的屬性為 messaging.destination、messaging.message_id、messaging.protocol 和 messaging.system (#4659)
  • 新增 Trigger.Delivery 欄位,允許設定每個觸發器的 Delivery。(#4654)

🐞 錯誤修正

  • 修正 APIServerSource 的 zipkin 追蹤的可用性問題 (#4842)
  • 修正有時在設定期間未將 Pod 視為啟動的問題。(#4725, #4741)
  • 修正 v1beta1 允許變更不可變欄位的錯誤。v1beta1 trigger.spec.broker 是不可變的。(#4843)

🧹 清理

  • 現在 config-imc-event-dispatcher 的值不再支援即時配置,也就是說,如果您需要配置這些值,您需要重新部署 dispatcher 的部署 (#4543)
  • PingSource: 移除對 JSON 資料的特殊處理,因為事件總是會以二進位模式傳送。 (#4858)
  • 清理 Channel Duck Types 內部結構 (#4749)

Eventing 擴充功能

Eventing RabbitMQ v0.21

🚨 重大變更或注意事項

  • Kubernetes 最低版本已變更為 v1.18
    • 升級至 k8s 函式庫的 v0.19.7 版本。現在最低 k8s 版本為 1.18。 (#213)

💫 新功能與變更

  • 支援新版本的 rabbitmq cluster operator v1.0、v1.1、v1.2、v1.3。 (#204)

📖 文件

  • 新增了 RabbitMQ 來源的使用者文件 (#201)

🧹 清理

  • 更新或清理目前行為 - 在 kind e2e 測試中使用 go 1.15。 (#196)
  • 更新或清理目前行為 - 在 go.mod 中使用 go 1.15。 (#215)
  • 更新 cmd/failer/main.go 中的註解以符合實際情況。 (#210)
  • 使用 hack 中的腳本來判斷 Pod 的就緒狀態。(#209)

Eventing Kafka 來源、通道 v0.21

💫 新功能與變更

  • 在預設的 kafka-secret 中新增名為 sasltype 的選用欄位,以啟用除了 PLAIN 以外的其他 Kafka SASL 方法。支援 SCRAM-SHA-256 或 SCRAM-SHA-512。 (#332)
  • 為公開憑證的使用新增 tls.enabled 旗標,並允許跳過 CA/使用者憑證和金鑰 (#359)
  • KafkaSource 和 KafkaChannel 將預設使用 config-leader-election CM 作為配置 (#231)
  • 移除對 Azure EventHub 命名空間集區的支援,現在僅支援單一命名空間/驗證,這將 Azure EventHub 的使用限制在其受限的 EventHub 數量(Kafka 主題)。 (#297)
  • 「分散式」KafkaChannel 配置 YAML 現在包含 KafkaChannel WebHook,可提供轉換功能。 (#187)
  • KafkaSource 將安裝在 knative-eventing 命名空間中,而 knative-sources 中的舊控制器將縮放為 0 (#224)
  • 新增一個替代的 KafkaSource 實作,其中單一全域 StatefulSet 處理所有 KafkaSource 實例。 (#186)
  • 現在可以在 config-kafka configmap 中使用 sarama 欄位,為 KafkaSource 定義 Sarama 配置預設值。 (#337)
  • 現在可以在 config-kafka configmap 中使用 sarama 欄位,為合併的通道定義 Sarama 配置預設值。 (#305)
  • KafkaChannel CustomResourceDefinition 現在使用 apiextensions.k8s.io/v1 API (#132)
  • KafkaSource 規模子資源現在可用於放大和縮小底層部署 (#138)
  • 將連線引數預設為合理的值 (#353)

🐞 錯誤修正

  • 修正了合併的 KafkaChannel 中的一個錯誤,其中訂閱會在調度器準備好為這些訂閱者調度訊息之前,顯示在通道的 status.subscribers 中。
    • 合併的 KafkaChannel 調度器的水平可擴展性現在可與協調器領導者選舉無縫運作。 (#182)
  • 修正消費者群組對應的並行修改,這會在調度器中執行協調時導致未定義的行為 (#352, @slinkydeveloper)
  • 修正在重新平衡發生時,Kafka 消費者中發生的當機問題 (#263, @lionelvillard)
  • 修正消費者工廠中的錯誤通道上的競爭條件 (#364)
  • KafkaSource 調度器現在會公開指標和效能分析資訊 (#221)
  • 合併的 KafkaChannel 現在預設依賴 SyncProducer 來實現更安全的事件產生。 (#181)

Eventing Kafka Broker v0.21

💫 新功能與變更

🐞 錯誤修正

  • 從最早的偏移量開始取用主題 (#557)
  • 修正偏移量管理 (#557)
  • 資料平面協調器處理失敗的協調。 (#568)
  • 修正 TimeoutException 和 DnsNameResolverTimeoutException。 (#539)

用戶端 v0.21

🚨 重大變更或注意事項

修訂版本命名

在此版本中,kn 變更了修訂版本命名的預設方式。到目前為止,名稱是由用戶端本身選取的,利用了 Knative serving 的「自帶」(BYO) 修訂版本名稱支援。

然而,事實證明,此模式有幾個嚴重的缺點

  • 如果您使用用戶端修訂版本命名建立服務,您必須在每次更新時提供新的修訂版本名稱。如果使用 kn 以外的其他用戶端(例如直接在叢集中編輯資源或您使用 OpenShift 開發人員主控台等工具),這尤其麻煩。假設 kn 是唯一要使用的用戶端有點太過自信。
  • SinkBinding 不適用於 BYO 修訂版本名稱
  • kn service apply 無法使用用戶端產生的修訂版本名稱,因此 kn service apply 會忽略 --revision-name 選項,並始終使用伺服器端產生的修訂版本名稱。如果您在使用 kn 以 BYO 修訂版本名稱模式建立服務後,想要使用 kubectl apply,情況也是如此。
  • 修訂版本名稱是隨機的,並不像伺服器端產生的修訂版本名稱那樣反映特定的世代順序
  • 使用相同映像名稱再次更新時建立新修訂版本會發生問題(請參閱 #398

有關此重大變更原因的更多詳細資訊,請參閱問題 #1144(以及參考此問題的問題)。

必要動作

如果您依賴用戶端修訂版本命名,您必須將 --revision-name {{.Service}}-{{.Random 5}}-{{.Generation}} 新增至 kn service create,以恢復先前的預設行為。然而,在大多數情況下,您不應擔心修訂版本名稱是由 kn 還是由 Knative serving 控制器建立的。

如果此變更發生問題,請告知我們,我們將盡快修復。我們致力於支援您解決此變更造成的任何問題。

💫 新功能與變更

  • --context--cluster 選項可讓您選取連線到 Kubernetes 叢集的參數。這些選項與 kubectl 的運作方式相同。
  • 在執行 kn 匯出時,清除一些叢集特定的執行階段資訊。

CLI 外掛程式

💫 新功能與變更

CLI kn 外掛程式 加入發布列車

在 v0.21 版本中,Knative 也發布了第一組 kn 外掛程式,這些外掛程式在依賴關係方面保持一致,因此可以輕鬆地 內嵌

v0.21 版本中包含的外掛程式為

若要嘗試這些外掛程式,只需下載它們並將二進位檔案放入您的執行路徑即可。然後,您將分別獲得 kn admin --help 和 kn source kafka --help 的協助。

Operator v0.21

💫 新功能與變更

此運算子映像中捆綁的最新網路入口 v0.21.0 成品包含 net-istio.yaml、net-contour.yaml 和 kourier.yaml。

  • 允許配置 Kourier 閘道服務類型 (#470)
  • 新增對擴充自訂資訊清單的支援 (#468)
  • 新增 autoscaler 的 HA 支援 (#480)
  • 支援 spec.deployments 來覆寫系統部署的配置 (#472)
  • 新增 ha eventing master (#444)

🐞 錯誤修正

  • 轉換為升級測試的新升級框架 (#437)
  • 新增入口配置支援 (#312)

🧹 清理

  • 新增 latest 作為運算子支援的特殊版本 (#443)
  • 重新編寫服務和事件升級的測試 (#441)
  • 允許為測試映像指定建置平台 (#451)
  • 將一些雜項依賴項升級到其最新版本 (#463)
  • 對齊所有使用的 YAML 模組 (#462)
  • 將 Istio 閘道的覆寫設定移至 spec.ingress.istio (#469)

感謝 v0.21 版本的貢獻者

了解更多

Knative 是一個開放原始碼專案,社群中的任何人都可以使用、改進並享受它。我們很樂意您加入我們!

我們使用分析和 cookies 來了解網站流量。您使用我們網站的資訊將與 Google 分享以達到該目的。了解更多。