v0.24 版本發佈

發佈時間:2021-07-08 ,  修訂時間: 2023-08-03

宣佈 Knative v0.24 版本發佈

現在多個元件都可使用新版本的 Knative。

請依照文件中的指示 安裝 Knative 來安裝個別元件。

目錄

重點

服務 v0.24

🚨 重大或值得注意的變更

  • 重新命名一些 net-* 元件 相關問題: knative/networking#448

    為了達成 GA/1.0 的目標,我們已將隨服務一起安裝的網路外掛程式的命名標準化。如果您使用 kubectl 手動管理 Knative 部署,這將需要雙階段升級程序。請參閱以下各節

    • net-http01 升級至 v0.24.0

      # Apply the new release
      $ kubectl apply -f net-http01.yaml
      
      # Once the deployment is ready delete the old resources
      $ kubectl delete deployment http01-controller -n knative-serving
      $ kubectl delete service challenger -n knative-serving
      
    • net-certmanager 升級至 v0.24.0

      # Apply the new release
      $ kubectl apply -f net-certmanager.yaml
      
      # Once the deployment is ready apply the same file but
      # prune the old resources
      $ kubectl apply -f net-certmanager.yaml \
        --prune -l networking.knative.dev/certificate-provider=cert-manager
      
    • 升級 net-istio 至 v0.24.0

      # Apply the new release
      $ kubectl apply -f net-istio.yaml
      
      # Once the deployment is ready apply the same file but
      # prune the old resources
      $ kubectl apply -f net-istio.yaml \
        --prune -l networking.knative.dev/ingress-provider=istio
      
    • net-contour 升級至 v0.24.0

      # Apply the new release
      $ kubectl apply -f net-contour.yaml
      
      # Once the deployment is ready apply the same file but
      # prune the old resources
      $ kubectl apply -f net-contour.yaml \
        --prune -l networking.knative.dev/ingress-provider=contour
      
    • net-kourier 升級至 v0.24.0。在這一點上,我們已將重新命名 net-kourier 的動作延後到下一個版本。我們希望確保升級過程中不會出現任何流量中斷。因此,升級至 v0.24.0 不需要任何特殊指示。

  • 現在需要 Kubernetes 1.19

    根據我們的 Kubernetes 最低版本原則,我們現在對 Kubernetes 版本 1.19 有硬性要求。

  • Webhook/Controller RBAC 變更

    刪除 Knative 安裝的建議方式是執行 kubectl delete -f serving-core.yaml 以及您可能已套用的其他發佈 YAML。一直存在一種誤解,認為刪除 knative-serving 命名空間會執行類似的清除動作,但這不會移除叢集範圍的資源。在先前的版本中,叢集狀態會阻止重新安裝 Knative 服務。我們已解決這個問題,但需要在命名空間和終結器上有一些 RBAC 權限。

    請參閱以下相關問題和 PR

  • DomainMapping 功能現在是 BETA 版

    這表示預設情況下,它已內建在主要的 serving-core YAML 中。仍然可以透過將 domainmapping-controller 的複本計數設為零來選擇退出此功能。

    作為此轉換的一部分,config-network 組態對應中的 autocreateClusterDomainClaims 的預設值已變更為 false,這表示需要叢集範圍的權限才能將建立特定 DomainMappings 的能力委派給命名空間。單一租用戶叢集可能希望允許任意使用者建立 Domain Mapping,方法是將此值改回 true。( #11573 )

💫 新功能和變更

  • 允許從容器的安全性內容中捨棄功能 (#11344)
  • DomainMapping 現在可以指定一個 TLS 機密,用作 HTTPS 憑證 (#11250)
  • 提供一個功能閘道,在啟用時,允許從容器的安全性內容中新增功能 (#11410)
  • defaultExternalScheme 現在可用於預設路由,以呈現您選擇的 URL 配置,而不是預設的「http」。(#11480)
  • 最佳化產生的路由,以將 Envoy 組態大小縮到最小 (net-istio#632)
  • 重新命名 Contour 的 ClusterRole 和 ClusterRoleBinding,使其與現有的 Contour 安裝不同 (net-contour#500)
  • 新增一個新的 ConfigMap config-kourier,其中包含初始 enable-service-access-logging 設定 (net-kourier#523)

🐞 錯誤修正

  • 修正了一個錯誤,該錯誤導致流量短暫地以「錯誤」方式路由,進而導致啟動器計數大、服務 Pod 計數低的部署中,因佇列超出而發生錯誤。( #11375 )
  • 每當流量組態錯誤時,就會更新路由中的流量狀態。( #11477 )
  • 與其他組態對應一致地驗證,不會意外修改功能 ConfigMap 的 _example 區段。( #11391 )

事件 v0.24

🚨 重大或值得注意的變更

  • 您必須在升級後執行儲存遷移工具,才能從 v1beta2 遷移至 v1 pingsources.sources.knative.dev 資源。( #5381 )

💫 新功能和變更

我們很高興宣佈,我們已推出一個新流程來測試和開發新功能,稱為 實驗性功能流程

感謝此流程,您能夠試用新的驚人功能,並為專案提供回饋!

我們將首先推出兩個實驗性功能

  • kreference-group:當使用 ref 時,僅使用 API 群組引用資源,而不是完整的 API 版本。
  • delivery-timeout:當使用 delivery 時,定義每個請求的逾時時間。

您可以在實驗性功能文件中閱讀更多關於如何啟用這些功能及其用法的資訊。

  • KReference.Group 現在也可以在 Subscription.Spec.Channel 中使用 (#5520)
  • 新增 DeliverySpec.Timeout (#5149)
  • 新增實驗性功能 kreference-group。啟用後,您可以使用 Subscriber.Ref.Group 而不是 Subscriber.Ref.APIVersion 來引用另一個資源,而無需明確指定資源版本(例如,v1beta1、v1 等)(#5440)
  • 剩餘的 HA 控制平面 Pod(透過運算子)現在標記了 podAntiAffinity,以確保不會出現單點故障。( #5409)

🐞 Bug 修復

  • 修復了 apiserversources 在開始監聽事件之前報告已就緒的競爭條件 (#5446)
  • Imc-controller 集群角色現在具有命名空間/最終處理器的更新權限。( #5539)
  • Knative-eventing-webhook 集群角色具有命名空間/最終處理器的更新權限。( #5501)

🧹 清理

  • Subscription.Spec.Channel 現在使用 KReference,並且 spec.channel CRD 模式的限制較少,並符合 KReference 欄位的支援用法。使用 YAML 建立資源的訂閱用戶不會受到影響。( #5412)
  • 當 PingSource 未就緒時,PingSource 配接器現在會產生一般事件,而不是警告。將事件重新命名為 PingSourceSkipped。
    • PingSource 配接器現在在同步後會產生一般事件 PingSourceSynchronized。( #5549)

事件擴充功能

Apache Kafka Broker v0.24

💫 新功能與變更

  • 在現有的訂閱者已解析條件中新增一些關於傳遞順序的詳細資訊。#912
  • 接收器部署使用所有可用的 CPU。#985
  • 現在您可以在 Broker 和 Trigger 傳遞規範中指定新的逾時欄位,作為實驗性功能 delivery-timeout 的一部分。如需更多資訊,請參閱實驗性功能#1034
  • 將 Go 更新至 v1.16 #886
  • 將 protobuf 更新至 v3.17.x #946
  • 將 vert.x 更新至 v4.1 #900

RabbitMQ 事件 v0.24

💫 新功能與變更

  • 新增驗證 webhook,檢查 RabbitMQBroker 類別的代理是否有有效的 [secret, rabbitmqcluster] 設定。( #324)
  • 提供安裝選項,該選項不依賴 rabbitmq 集群運算子或 messaging-topology-operator。這允許您自備 rabbitmq 代理。( #309)
  • 新增兩種代理的安裝說明。( #315)

🐞 Bug 修復

  • 修復獨立代理以正確支援 Trigger DeadLetterSink。( #341)
  • 修復每個觸發器的 DeadLetterSink 支援。( #337)
  • 修正問題#320:修正指向 nightly 和待發布獨立代理的錯誤連結。( #325)
  • 移除不必要的 keda 權限,因為該功能已移至 https://github.com/knative-extensions/eventing-autoscaler-keda (#319)
  • 為所有 RabbitMQ 資源使用更好的名稱。包括獨立代理的 k8s 資源和 RabbitMQ 資源。( #344)

用戶端 v0.24

💫 新功能與變更

  • 美化 webhook 警告的列印 #1353
  • 將 Kubernetes 相依性更新至 v0.20.7 #1344
  • 增加來源的程式碼覆蓋率 #1343
  • 讓 e2e 測試在其他網路上執行 #1339
  • 新增 --env-value-from 標誌,並保留提供的 env 變數順序 #1328

🐞 Bug 修復

  • 修正訂閱的 Channel 以使用 KRefence 類型 #1326

運算子 v0.24

💫 新功能與變更

  • 新增事件來源的資訊清單 #641
  • 變更事件來源的 API #613
  • 新增安裝來源的邏輯 #645
  • 停止使用 pkg/test.KubeClient #655
  • 在安裝部署和服務後安裝 webhook #674

🐞 Bug 修復

  • 透過支援版本參數來改進提取器 #613
  • 在執行升級後測試之前新增 20 秒逾時 #623
  • 將 $KO_FLAGS 新增至 e2e 測試 #649
  • 讓 e2e 測試在其他網路上執行 #650
  • 允許透過 spec.deployments.nodeSelector 設定 NodeSelector #658
  • 優雅地處理 net-* 部署重新命名 #669

感謝貢獻者

了解更多

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

我們使用分析和 Cookie 來了解網站流量。為了這個目的,您的網站使用資訊會與 Google 分享。了解更多。