v0.24 版本發佈
發佈時間:2021-07-08 , 修訂時間: 2023-08-03
宣佈 Knative v0.24 版本發佈¶
現在多個元件都可使用新版本的 Knative。
請依照文件中的指示 安裝 Knative 來安裝個別元件。
目錄¶
重點¶
- Knative 網站 有了全新的外觀! 我們是以 Material for MkDocs 建置的。
- Knative 網站已新增全新的 入門教學。
- 我們已對文件進行一些重組,現在有了 開發人員指南 和 管理員指南。
- DomainMapping 功能現在是 BETA 版。
- 為了準備 GA,一些 net-* 元件已重新命名。請參閱服務區段中的 重大變更。
- Eventing 有一個新的 實驗性功能流程,以及兩個新的實驗性功能供您嘗試。
- 最低 Kubernetes 版本現在是 1.19。
服務 v0.24¶
🚨 重大或值得注意的變更¶
-
重新命名一些
net-*
元件 相關問題: knative/networking#448為了達成 GA/1.0 的目標,我們已將隨服務一起安裝的網路外掛程式的命名標準化。如果您使用
kubectl
手動管理 Knative 部署,這將需要雙階段升級程序。請參閱以下各節-
# 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
-
# 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
-
# 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
-
# 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
- 原始問題:knative/pkg#2044
- 因應措施:knative/pkg#2098
knative-serving-core
叢集角色需要命名空間/終結器的權限:#11517
-
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
感謝貢獻者¶
- @BbolroC
- @aliok
- @benmoss
- @dprotaso
- @dsimansk
- @houshengbo
- @howardjohn
- @itsmurugappan
- @izabelacg
- @julz
- @lberk
- @lionelvillard
- @markusthoemmes
- @matzew
- @nak3
- @novahe
- @pierDipi
- @psschwei
- @shinigambit
- @slinkydeveloper
- @vaikas
- @zroubalik
了解更多¶
Knative 是一個開放原始碼專案,社群中的任何人都可以使用、改進和享受。我們很樂意您加入我們!
- 歡迎使用 Knative
- 入門文件
- 範例
- Knative 工作群組
- Knative 使用者郵件列表
- Knative 開發郵件列表
- Knative 在 Twitter 上 @KnativeProject
- Knative 在StackOverflow上
- Knative Slack
- Knative 在YouTube上