v0.17 版本發布

發布於:2020-09-05 ,  修訂於:2023-08-03

公告 Knative v0.17 版本發布

Knative 的新版本現已在多個元件中提供。請依照文件中 安裝 Knative 的說明,針對各個元件進行操作。- Serving 持續在已是 v1 API 版本的基礎上,進行測試和基準最佳化的旅程。- Eventing 現在提供 ContainerSource 和 PingSource 作為 v1beta1。- kn CLI 持續朝向完全支援 Eventing 的目標邁進,新增 Channel 資源。- Operator 新增支援針對 Knative 安裝自訂資訊清單。

請務必查看升級文件,以了解在您升級到最新版本之前,可能適用於您目前版本的任何注意事項。

Serving v0.17

InitialScale 註釋可控制初始部署大小

現在可以使用新的註釋來控制在推出新修訂版時,初始部署的 Pod 數量。

net-contour 和 net-kourier 已移至 Beta 版

除了 net-istio 之外,Knative 現在支援另外三個處於 Beta 狀態的網路層。

Kubernetes 最低版本尚未變更

Kubernetes 1.16 仍然是最低版本。

自動縮放- [ [#8613](https://github.com/knative/serving/pull/8613), [#8846](https://github.com/knative/serving/pull/8846) ] 推出初始規模,可以從 0 開始(感謝 [@taragu](https://github.com/taragu))- 推出新的 KPA 狀態,大幅簡化修訂版和 KPA 本身中的狀態機:- 達到初始規模(感謝 [@markusthoemmes](https://github.com/markusthoemmes) & [@taragu](https://github.com/taragu))- SKS 就緒(感謝 [@vagababov](https://github.com/vagababov))- [ [#8787](https://github.com/knative/serving/pull/8787), [#8796](https://github.com/knative/serving/pull/8796) ] 在 Activator 中重新編寫並行處理和統計資料報告(感謝 [@markusthoemmes](https://github.com/markusthoemmes))- [ [#8810](https://github.com/knative/serving/pull/8810), [#9027](https://github.com/knative/serving/pull/9027) ] 可設定的閒置連線/每個主機的連線數(感謝 [@vagababov](https://github.com/vagababov) & [@julz](https://github.com/julz))- [ [#8759](https://github.com/knative/serving/pull/8759),[#8762](https://github.com/knative/serving/pull/8762) ] 在 KPA 中最佳化 Pod 計數(將 3 次遍歷 Pod 減少為 1 次)(感謝 [@vagababov](https://github.com/vagababov))- [#8851](https://github.com/knative/serving/pull/8851) Activator 中傳回 Lambda 的棘手最佳化,在 Activator 中每次請求可節省 16b 的配置(感謝 [@julz](https://github.com/julz))- 許多新的基準(感謝 [@julz](https://github.com/julz) & [@markusthoemmes](https://github.com/markusthoemmes))- 各種清理、測試穩定性、程式碼最佳化等(感謝 [@julz](https://github.com/julz)、[@markusthoemmes](https://github.com/markusthoemmes)、[@vagababov](https://github.com/vagababov)、[@skonto](https://github.com/skonto))
核心 API- 預設啟用領導者選舉(感謝 [@mattmoor](https://github.com/mattmoor))- 預設情況下,控制平面元件現在會啟用領導者選舉,可以使用 --disable-ha 停用(目前)。- 現在可以使用新的功能旗標 - 如需詳細資訊,請參閱 config-features - [#8645](https://github.com/knative/serving/pull/8645) 啟用親和性、nodeSelector 和容錯(感謝 [@emaildanwilson](https://github.com/emaildanwilson))- [#9060](https://github.com/knative/serving/pull/9060) 啟用其他容器和 Pod 安全性內容屬性(感謝 [@dprotaso](https://github.com/dprotaso))- [pkg#1512](https://github.com/knative/pkg/pull/1512) 為我們的控制器採用雙通道工作佇列,以防止在全域重新同步期間發生資源不足的情況(感謝 [@vagababov](https://github.com/vagababov))- [#8951](https://github.com/knative/serving/pull/8951) 新增設定旋鈕「max-value」,允許為任何沒有「autoscaling.knative.dev/maxScale」註釋的修訂版設定叢集範圍的最大縮放值(感謝 [@arturenault](https://github.com/arturenault))- [#8724](https://github.com/knative/serving/pull/8724) 為映像摘要解析新增 60 秒逾時,以防範慢速登錄(感謝 [@julz](https://github.com/julz))- [#8621](https://github.com/knative/serving/pull/8621) 實作新的垃圾收集器,可針對自動刪除舊修訂版設定以時間為基礎或最小/最大計數限制(感謝 [@whaught](https://github.com/whaught))- 為了啟用此功能,新的 v2 Labeler 會在修訂版上填入 RoutingState 和 RoutingStateModified 註釋 - [#8828](https://github.com/knative/serving/pull/8828) PodSpec DryRun 也會驗證未設父項(無服務)的設定(感謝 [@whaught](https://github.com/whaught))- [#8846](https://github.com/knative/serving/pull/8846) 使用者可以使用叢集範圍旗標 initial-scale 和註釋「autoscaling.internal.knative.dev/initialScale」指定初始部署的大小。叢集範圍旗標 allow-zero-initial-scale 控制叢集範圍和修訂版初始規模是否可以為零(感謝 [@taragu](https://github.com/taragu))- [#8757](https://github.com/knative/serving/pull/8757) 啟用時,ResponsiveGC 功能旗標會停用 lastPinned 註釋時間戳記重新整理(感謝 [@whaught](https://github.com/whaught))- [pkg#1592](https://github.com/knative/pkg/pull/1592) 新增解決方法,讓 Knative 可以在 AKS 1.17+ 上運作(感謝 [@n3wscott](https://github.com/n3wscott))- [pkg#1517](https://github.com/knative/pkg/pull/1517) Webhook 現在在關閉時會執行更久的排空(感謝 [@mattmoor](https://github.com/mattmoor))
網路- [#2737](https://github.com/knative/serving/pull/2737) Net-contour 已移至 Beta 階段(感謝 [@mattmoor](https://github.com/mattmoor))- [#2738](https://github.com/knative/serving/pull/2738) Net-kourier 已移至 Beta 階段(感謝 [@mattmoor](https://github.com/mattmoor))- [#8965](https://github.com/knative/serving/pull/8965) 預設的 Kingress 逾時時間增加到 48 小時,以防止 gRPC 資料流逾時(感謝 [@tcnghia](https://github.com/tcnghia))- knative/serving/pkg/network 中的程式碼已完全移至 knative/networking 存放庫(感謝 [@tcnghia](https://github.com/tcnghia))- [#8798](https://github.com/knative/serving/pull/8798) 預留位置服務的標籤和註釋會從 Route 傳播(感謝 [@nak3](https://github.com/nak3))- [knative-extensions/net-istio#170](https://github.com/knative-extensions/net-istio/pull/170) 啟用自動 TLS 時,現在 net-istio 控制器會針對每個 Kingress 產生 Istio TLS Gateway,而不是協調 knative-ingress-gateway Gateway(感謝 [@ZhiminXiang](https://github.com/ZhiminXiang))- [knative-extensions/net-istio#174](https://github.com/knative-extensions/net-istio/pull/174) Kingress (net-istio) 導入 RewriteHost 功能(感謝 [@julz](https://github.com/julz))- [knative-extensions/net-istio##190](https://github.com/knative-extensions/net-istio/pull/190) 針對 net-istio 的 Kingress 探測器改進:探測單一主機,而不是每個主機,以提高探測器佇列的輸送量(感謝 [@JRBANCEL](https://github.com/JRBANCEL))

Eventing v0.17

需要採取行動 - #3564 現在控制平面元件預設啟用高可用性;目前可以使用 --disable-ha 停用。(感謝 @mattmoor)- 您必須手動刪除(先前已縮放到 0 的)Deployment

metadata:
name: broker-controller
namespace: knative-eventing
- #3547 kubectl delete deployment -n knative-eventing broker-controller(感謝 @vaikas

新功能- [#3661](https://github.com/knative/eventing/pull/3661) ContainerSource 現在為 v1beta1 版本(感謝 [@bharattkukreja](https://github.com/bharattkukreja))- [#3577](https://github.com/knative/eventing/pull/3577) SinkBinding 現在為 v1beta1 版本(感謝 [@nachocano](https://github.com/nachocano))- [#3605](https://github.com/knative/eventing/pull/3605) Eventing 符合性測試現在可以驗證來源 (Sources) 狀態的符合性(感謝 [@devguyio](https://github.com/devguyio))- [#3607](https://github.com/knative/eventing/pull/3607) PingSource 現在支援設定時區。(感謝 [@lionelvillard](https://github.com/lionelvillard))- [#3741](https://github.com/knative/eventing/pull/3741) APIServerSource 現在會在 CloudEvent 中將名稱、種類和命名空間設定為擴充屬性。(感謝 [@danyinggu](https://github.com/danyinggu))- [#3632](https://github.com/knative/eventing/pull/3632) 為 broker 新增兩個旗標以控制 rest client QPS / Burst。預設值與之前相同。(感謝 [@vaikas](https://github.com/vaikas))- [#2932](https://github.com/knative/eventing/pull/2932) In Memory Channel 和 Multi-Tenant Channel Based Broker 會重試傳送事件(感謝 [@pierDipi](https://github.com/pierDipi))
已移除的功能- [#3676](https://github.com/knative/eventing/pull/3676) 不再為每次成功調和 IMC 發出 k8s 事件(感謝 [@vaikas](https://github.com/vaikas))- [#3494](https://github.com/knative/eventing/pull/3494) 移除 v1alpha1 CRD API 版本。(感謝 [@vaikas](https://github.com/vaikas))- [#3837](https://github.com/knative/eventing/pull/3837) 移除 PingSource v1alpha1 API(感謝 [@lionelvillard](https://github.com/lionelvillard))
錯誤修復- [#3534](https://github.com/knative/eventing/pull/3534) 修復在啟用自動注入的 Istio 叢集上,遷移作業會失敗的問題(感謝 [@vayyappaneni](https://github.com/vayyappaneni))- [#3693](https://github.com/knative/eventing/pull/3693) 對於 ApiServerSource,不再為 ReconcileKind 方法的乾淨執行產生 Kubernetes 事件 "ApiServerSourceReconciled"。(感謝 [@n3wscott](https://github.com/n3wscott))- [#3694](https://github.com/knative/eventing/pull/3694) 對於 Channel,不再為 ReconcileKind 方法的乾淨執行產生 Kubernetes 事件 "ChannelReconciled"。(感謝 [@n3wscott](https://github.com/n3wscott))- [#3696](https://github.com/knative/eventing/pull/3696) 對於 EventType,不再為 ReconcileKind 方法的乾淨執行產生 Kubernetes 事件 "EventTypeReconciled"。([@n3wscott](https://github.com/n3wscott))- [#3697](https://github.com/knative/eventing/pull/3697) 對於 MTBroker,不再為 FinalizeKind 方法的乾淨執行產生 Kubernetes 事件 "BrokerReconciled"。([@n3wscott](https://github.com/n3wscott))- [#3698](https://github.com/knative/eventing/pull/3698) 對於 Parallel,不再為 ReconcileKind 方法的乾淨執行產生 Kubernetes 事件 "ParallelReconciled"。(感謝 [@n3wscott](https://github.com/n3wscott))- [#3699](https://github.com/knative/eventing/pull/3699) 對於 PingSource,不再為 ReconcileKind 方法的乾淨執行產生 Kubernetes 事件 "PingSourceReconciled"。對於 Sequence,不再為 ReconcileKind 方法的乾淨執行產生 Kubernetes 事件 "SequenceReconciled"。(感謝 [@n3wscott](https://github.com/n3wscott))- [#3695](https://github.com/knative/eventing/pull/3695) 對於 Subscription,不再為 ReconcileKind 方法的乾淨執行產生 Kubernetes 事件 "SubscriptionReconciled"。(感謝 [@n3wscott](https://github.com/n3wscott))- [#3574](https://github.com/knative/eventing/pull/3574) 在 v1beta1<->v1 之間轉換時,DeadLetterChannel 會被丟棄(感謝 [@vaikas](https://github.com/vaikas))- 並非所有條件都在 v1beta1<->v1 之間正確轉換。基本上只有 Ready 狀態會轉換。- [#3596](https://github.com/knative/eventing/pull/3596) 延長 terminationGracePeriod 以修復關閉 webhook 的問題。(感謝 [@mattmoor](https://github.com/mattmoor))- [#3619](https://github.com/knative/eventing/pull/3619) v1 和 v1beta1 DeliverySpec.BackoffDelay 接受 ISO8601 持續時間(感謝 [@pierDipi](https://github.com/pierDipi))- [#3831](https://github.com/knative/eventing/pull/3831) PingSource 在接近分鐘關閉時,不再遺失事件(感謝 [@lionelvillard](https://github.com/lionelvillard))
其他變更- [#3562](https://github.com/knative/eventing/pull/3562) 為控制器和 webhook 新增遺失的 "leases" RBAC 以支援領導者選舉。(感謝 [@mattmoor](https://github.com/mattmoor))- [#3795](https://github.com/knative/eventing/pull/3795) 控制平面元件現在會指定反親和性,因此副本不會放置在同一位置。(感謝 [@mattmoor](https://github.com/mattmoor))- [#3451](https://github.com/knative/eventing/pull/3451) 多租戶 PingSource 轉接器消耗較少的資源。(感謝 [@lionelvillard](https://github.com/lionelvillard))- [#3587](https://github.com/knative/eventing/pull/3587) 使用 v1 API 形狀調和 eventing.{Broker,Trigger}。使用 v1 形狀操作相依資源(Subscriptions 等)。(感謝 [@vaikas](https://github.com/vaikas))- [#3643](https://github.com/knative/eventing/pull/3643) 當調和 Trigger 時,不為其發出事件(感謝 [@vaikas](https://github.com/vaikas))

Eventing 貢獻 v0.17

Eventing 貢獻包括來源和通道參考實作。具有 v1beta1 API 的來源獲得改進和錯誤修復。

新功能- [#1409](https://github.com/knative/eventing-contrib/pull/1409) Kafka Channel 重試傳送事件(感謝 [@pierDipi](https://github.com/pierDipi))
錯誤修復- [#1155](https://github.com/knative/eventing-contrib/pull/1155) KafkaChannel 現在使用來自 config-tracing 的 eventing-wise 追蹤配置正確實作追蹤(感謝 [@slinkydeveloper](https://github.com/slinkydeveloper))- [#1398](https://github.com/knative/eventing-contrib/pull/1398) KafkaChannel 轉換 v1beta1<>v1alpha1 已修復(感謝 [@aliok](https://github.com/aliok))
其他變更- [#1407](https://github.com/knative/eventing-contrib/pull/1407) 使用 v1beta1 API 形狀調和 KafkaChannel。使用 v1 形狀操作相依資源(Subscriptions 等)。(感謝 [@aliok](https://github.com/aliok))- [#1405](https://github.com/knative/eventing-contrib/pull/1405) 使用 v1beta1 API 形狀調和 KafkaSource 和 KafkaBinding。使用 v1 形狀操作相依資源(Subscriptions 等)。請注意,`resource` 和 `serviceAccountName` 欄位已從 v1beta1 中的類型移除。(感謝 [@aliok](https://github.com/aliok))

Client v0.17

CLI (命令列介面) 繼續朝向完全 Eventing 支援邁進,並為此版本新增了一些額外的好處。

Meta

編譯相依性已更新為 Knative Serving 0.17.0 和 Knative Eventing 0.17.0。

Eventing 支援

  • #967 此版本新增對管理 Channel 資源的完整支援。它允許您在建立期間指定通道類型,並在您的配置中新增 GVK 座標到符號名稱的一些對應。

外掛程式內嵌支援

  • #902 現在可以建立 kn 的自訂變體,將基於 golang 的外掛程式內嵌到單一二進位檔中。請參閱外掛程式 README 簡要說明其機制。更多文件和範例待定。(感謝 @rhuss
    • 請務必注意,從 client repository 發佈的 kn 不會內嵌任何外掛程式。它只是提供啟用外掛程式內嵌的掛鉤。
新功能- [#980](https://github.com/knative/client/pull/980) kn source list 現在對異質清單使用自己的清單類型(感謝 [@navidshaikh](https://github.com/navidshaikh))- [#951](https://github.com/knative/client/pull/951) NAMESPACE 標頭欄已新增至 kn source list -A(感謝 [@Kaustubh-pande](https://github.com/Kaustubh-pande))- [#937](https://github.com/knative/client/pull/937) 新增支援以將 kn service create --filename 與其他選項結合使用(感謝 [@dsimansk](https://github.com/dsimansk))
錯誤修復- [#975](https://github.com/knative/client/pull/975) 已修復用戶端磁碟區名稱產生問題(感謝 [@navidshaikh](https://github.com/navidshaikh))- [#948](https://github.com/knative/client/pull/948) 如果對 CRD 的存取受到限制,則僅列出內建來源(感謝 [@navidshaikh](https://github.com/navidshaikh))
其他變更- [#974](https://github.com/knative/client/pull/974) 為 e2e 測試建立測試映像檔,新增指定基本映像檔的 `.ko.yaml`(感謝 [@itsmurugappan](https://github.com/itsmurugappan))- [#972](https://github.com/knative/client/pull/972) 為動態用戶端新增模擬測試用戶端(感謝 [@priyshar01](https://github.com/priyshar01))- [#971](https://github.com/knative/client/pull/971) 修復 `kn service delete` 和 `kn revision delete` 失敗的結束程式碼(感謝 [@hemanrnjn](https://github.com/hemanrnjn))- [#957](https://github.com/knative/client/pull/957) 允許透過環境變數自訂 kn 測試映像檔(感謝 [@mvinkler](https://github.com/mvinkler))- [#943](https://github.com/knative/client/pull/943) 將 PodSpecFlags 從 Service ConfigurationEditFlags 分離出來(感謝 [@daisy-ycguo](https://github.com/daisy-ycguo))

Operator v0.17

此新版本的 Operator 啟用對 Knative 安裝自訂資訊清單的支援。在 operator CRD 中引入 `spec.manifests` 欄位,以指定要安裝的 Knative 元件的連結。此欄位通常與 `spec.version` 欄位一起使用。

錯誤修復- [#236](https://github.com/knative/operator/pull/236) 為作業新增 istio 忽略註釋轉換器(感謝 [@AceHack](https://github.com/AceHack))- [#224](https://github.com/knative/operator/pull/224) 更新至最新的 manifestival 以修復 CRD/v1 轉換器上的問題(感謝 [@jimoosciuc](https://github.com/jimoosciuc))- [#147](https://github.com/knative/operator/pull/147) 新增支援以指定自訂 yamls(感謝 [@houshengbo](https://github.com/houshengbo))- [#246](https://github.com/knative/operator/pull/246) 驗證 spec.version 是否與資訊清單的版本相符(感謝 [@houshengbo](https://github.com/houshengbo))- [#255](https://github.com/knative/operator/pull/255) CR 規格中的 `sinkBindingSelectionMode`(感謝 [@aliok](https://github.com/aliok))
其他變更- [#220](https://github.com/knative/operator/pull/220) 明確指出部署不是唯一可覆寫的容器(感謝 [@jcrossley3](https://github.com/jcrossley3))- [#211](https://github.com/knative/operator/pull/211) 各種程式碼檢查修復(感謝 [@markusthoemmes](https://github.com/markusthoemmes))- [#235](https://github.com/knative/operator/pull/235) 新增降級後測試(感謝 [@houshengbo](https://github.com/houshengbo))- [#257](https://github.com/knative/operator/pull/257) 將標籤 operator.knative.dev/release 新增至 operator 資源以進行發佈(感謝 [@houshengbo](https://github.com/houshengbo))

了解更多

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

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