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