前言
knative在2020年3月4日釋出,這個版本開始使用v1 API了,如果我們也有類似api版本如何更新的需求,可以參考下knative是如何實作的。
概要
Kubernetes 最小版本保持 1.15
這個是從0.12開始就沒改變過了,但是,在我們使用了轉換webhook(Conversion webhook)之後,不能随意更改版本了,下次釋出依賴K8s最低版本為1.16
Alpha和Beta的API标記為過時
現在v1 API現在在所有支援的版本都可以使用,并且controller現在開始使用v1 API。舊的API會支援9個月,在0.19版本的時候移除。
我們現在依賴CRD轉換webhook
我們使用了k8s 1.15版本的一個beta功能來轉換v1alpha1, v1beta1, and v1 資源。
自動擴縮容
- activator對沒有ready的pods進行健康檢查後轉發流量(盡早做健康檢查) #6695
- gRPC e2e 擴縮容測試 #6778
- 不再限制最小target為1 #6951
- 計算擴縮容名額時忽略年輕的pod名額(一分鐘内),但如果樣本不夠的話還是會使用 #6649 , #6626
核心API
- 重構controller,使用生成的代碼,簡化controller的編寫 #6993 #6973 #6969 #6952
- 移除serving的名額彙報(stats reporter),因為裡面的名額沒意義 #6939
- Webhook 自動輪回證書 knative/pkg#1101
- 修複校驗webhook沒有使用預設值的問題 #6938
- 開始把 v1alpha1 API 标記為過時,包括以下資源 Service, Configuration, Revision 和 Route
網絡
- 在配置config-network裡的 istio.sidecar.includeOutboundIPRanges 标記為過時 #6597
- 避免在删除Gateway的時候,無條件的調和 #6934
- 移除證書的class名稱 "internal" #6887
- 修複錯誤的Revision被标記為最後可用的Revision #6876
- 解決流量健康檢查狀态轉變的問題 Ready -> NotReady- > Ready #6648
- 在從Istio轉到其他網絡的時候,清除掉VirtualService #6570
- 避免在Certificate彙報Ready之前指定IngressTLS #6870
- queue-proxy 在連接配接逾時的時候傳回 504 錯誤 #6859
- Service的Namespace必須和KIngress的保持一緻 #6868
- 解決 Route 命名沖突的問題 #6362 (thanks @sreddy )
- 對于叢集内的規則和外部規則,Route需要分開調和 #6727
- 正确設定網絡檢查的User-Agent #6644
來源
對knative realease note的翻譯和解讀