前言
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 的翻译和解读