天天看点

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