天天看點

Knative Serving 0.13.0 版本變更前言概要自動擴縮容核心API網絡來源

前言

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
    • controllers使用v1 APIs #6933 #6949 #6950 #6957 #6958 #6959 #6960
    • 版本轉換webhook架構 knative/pkg#993
    • 注意: v1alpha1會依然是存儲版本(storage version)直到我們提供怎麼把存儲版本遷移為 v1 #6726
    • 計劃在0.19版本移除v1alpha1 和 v1beta1 APIs
    • HPA 自動擴縮容的Revision名額(并發和每秒請求數) 現在使用 v1 APIs
      • 消費v1alpha1的revision名額已經過時,将在下一個版本移除

網絡

  • 在配置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的翻譯和解讀