天天看點

knative serving 0.7版本變更

前言

Knative serving 0.7版本在6月25日正式釋出,本次版本釋出主要是繼續推進v1beta API的落地,HPA支援并發請求數進行擴縮容終于在這個版本實作了。注意這次去掉了一些過時的字段,詳細見下面的不相容變更。本文主要描述0.7版本的變更。

概覽

serving.knative.dev/v1beta1

 (因為  #4533  ,需要 K8s 1.14+)

在0.6擴充了

v1alpha1

 API 包含

v1beta1

 的字段,在這次釋出中,将

v1alpha1

的字段限制在

v1beta1

的子集内,并且不允許出現

v1beta1

不适合的字段,這樣,我們可以利用kubernetes 1.11+ 支援的相同模式來釋出

v1beta1

因為k8s處理多個版本時存在bug,導緻無法在舊版本編輯資源,目前是準備釋出兩個yaml,一個是隻支援

v1alpha1

,可以相容k8s 1.11+,另一個同時支援兩個版本,需要k8s 1.14+。

HPA根據并發請求名額擴縮容

之前的版本HPA支援根據CPU擴容,在這次釋出,HPA支援和預設擴縮容元件一樣的"并發請求數"名額進行擴縮容。

HPA依然還不支援縮容到零,另外還要想辦法暴露這些名額給任意的擴縮容插件。

目前的實作方式是通過autoscaler來抓取使用者容器的并發請求數名額,把autoscaler注冊成一個custom metrics api server,HPA通過這個方式來擷取名額進行擴縮容。

非root使用者容器

因為安全原因,使用非root使用者來啟動,包括queue-proxy。

不相容變更

  • 去掉了之前過時的狀态字段
  • Service裡面的Build和Manual模式現在不支援了
  • Route tags預設生成的url生成方式改變

以下為各個元件的具體變更。

擴縮容

  • HPA支援根據自定義的并發請求數名額擴縮容
  • 根據pod的數量動态調整autoscaler抓取名額的樣本數

Fixes:

  • 增加autoscaler的readiness健康檢查
  • 根據activator的擴縮容調整activator限速器行為
  • Revision在達到最小副本數時才更改狀态為ready

核心API

  • 暴露 v1beta1 API  #4199
  • 容器中使用非root使用者啟動  #3237
  • 允許使用者填寫容器名稱  #4289
  • 支援projected volume  #4079
  • 删除過時的狀态字段  #4197
  • Build不再支援  #4099
  • Manual模式不再支援  #4188
  • V1beta1 用戶端和穩定性測試  #4369
  • 舊的v1alpha1 schema 通過webhook轉換  #4080
  • queue-proxy

     新增annotation用于限制資源占用  #4151
  • Knative Sercice的annotation傳遞到Route和Configuration  #4363 #4367

  • 改進Ready/Generation的處理,如果底下資源還沒有調和,更新狀态非調和狀态  #4185
  • 修複 Revision 回收  #4187 #4245
  • 把pod排程失敗的錯誤資訊寫入Revision狀态中  #4191
  • 解決無法拉取scheme1版本的鏡像  #4430

網絡

  • 把route的annotation傳遞到ClusterIngress  #4087
  • 引入 tagTemplate 配置,支援定義版本的域名格式  #4292
  • 支援自定義的子域名  #4210
  • 允許定義最長請求逾時時間  #4172
  • 在請求中設定 

    Forwarded

     header  #4376

  • 不依賴istio sidecar支援短域名  #3824
  • 改進ClusterIngress狀态  #4288 #4144
  • SKS private service 使用随機名稱避免長度過長  #4250

監控

  • 設定zipkin pods的記憶體需求  #4353
  • 不需要fluentd sidecar收集 

    /var/log

     日志  #4156
  • Prometheus抓取 

    queue-proxy

     名額  #4111

  • 修複一些Grafana dashboard
  • 移除内置的jaeger-operator,把它變成依賴來使用

參考

内容來自官方 release note 

https://github.com/knative/serving/releases

繼續閱讀