Knative 自动扩缩实现

发布时间: 更新时间: 总字数:416 阅读时间:1m 作者: IP上海 分享 网址

请求驱动计算是Serverless的核心特性,Knative Pod Autoscaler(KPA)实现Pod资源的扩缩。

介绍

Knative 系统中,AutoScaler、Activator和Queue-Proxy三者系统管理应用的规模和匹配流量的规模(通过前面的示例,我们可以看出):

  • 缩容至0:当没有请求时,Knative不会分配资源给KServie(缩容为0)
  • 接受扩容事件(请求驱动):当来请求时,由 Activator 缓存请求,并通知 AutoScaler
  • 按需扩容:AutoScaler 根据 Revision 中各实例的 Queue-Proxy 报告的调整指标数据动态调整 Revision 中实例的规模
  • 也借助底层 k8s 的 Horizontal Pod Autoscaler (HPA) 实现
  • 可以通过 kubectl -n knative-serving describe cm config-autoscaler 调整相关配置
knative autoscaler

图片参考

说明:

  • 初次请求由 Ingress GW 经 Route 转交给 Activator 进行缓存,同时报告 AutoScaler 进行资源扩缩容
  • Pod ok后,Activator 将缓存的请求转发至对应的 Pod 对象
  • 若存在 Ok 的 Pod,Ingress GW 经 Route 直接将流量抓发到对应的 Pod,不经过 Activator 缓存
  • 若持续无请求,AutoScaler 根据 Queue-Proxy 的报告一直为 0 时,缩容 Pod 数量为 0

参考

  1. https://knative.dev/docs/serving/autoscaling/
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数