Knative Serving 0.9 版本变更

前言

Knative Serving 0.9版本在9月17日已经发布,这是Serving v1正式版的第二个候选版本,目前还在和社区讨论Serving在限制条件下如何生产可用,还有怎样协调剩下的部分。

主要变更

v1 API

v1 API模型在这个版本已经可以使用了,但是由于k8s最低版本的限制,可以只部署v1alpha1 endpoint或者所有endpoint(v1alpha1, v1beta1, and v1)。v1 API的模型在所有的endpoint上都可以使用,如果要使用v1beta1/v1 endpoint,需要k8s最低版本为1.14。

minScale 现在只应用到可路由的Revision

现在autoscaling.knative.dev/miniScale只会应用到和Route有关联的Rrevision,这样解决了用户使用minScale的一个痛点,没有路由的Revision pod一直保留最小副本数,要等10个小时才会被回收。

冷启动改进 #4902 and #3885

kube-proxy有个参数iptables-min-sync-period,用来控制iptable刷新时间,如果使用了kube-proxy,ClusterIP生效的时间受限于它。
当ClusterIP还没准备好,Activator 现在会直接通过Pod ip发送,这个修改使得在pod ready后,请求延迟缩短到200毫秒左右,对比之前最高达到10秒。

扩缩容

  • 支持RPS(每秒请求数)自动扩缩容,更适合一些短时间和轻量的请求。 #3416 
  • 之前只针对扩容有速率的限制,现在增加配置项max-scale-down-rate用于控制缩容速率。#4993 
  • Autoscaler没有更新metric service #5291
  • SKS在Autoscaler重启后,变成Serve模式 #5327
  • 修复 Activator 缩容导致503错误 #5364
  • TBC 默认值改为200
  • PA 在状态中展示想要的和实际的pod数量
  • 持续的性能测试 https://mako.dev

核心API

  • Webhook现在会校验annotation #4995
  • Revisions 增加 service.knative.dev/route 标签 #5048
  • Revision GC 重构,从Configuration移到单独的controller #4876
  • Revision状态展示Deployment的错误信息 #5077 
  • 校验VolumeSources和VolumeProjections #5128 
  • ContainerConcurrecy 可以配置默认值 #5099
  • 应用 Route的标签到Ingress #5467
  • global resyncs性能改进,避免一次性加入所有资源 #5275
  • 改进readiness probes的错误信息 #5385 

网络

  • 关闭和删除 ClusterIngress 资源 #5024

来源

文章来自于 knative/serving github release note 的翻译和解读

上一篇:knative serving 0.8 变更


下一篇:PPT嵌入字体的方法