1. Knative Serving 的缩容到零(scale-to-zero)与冷启动原理是什么?
Knative Serving 的缩容到零(scale-to-zero)与冷启动原理是什么?对运维有什么影响?
- Knative 缩容到零的机制(Activator、ScaleToZero)
- 冷启动的构成与延迟
- 运维影响(弹性的权衡)
Knative Serving 通过自动扩缩(Autoscaler)实现缩容到零:当无请求时,Revision 的最小副本数可设为 0,实例被回收,入口流量由 Activator 接管。缩容到零后首个请求到达时,Activator 拦截并触发扩容,创建 Pod 实例,等待实例就绪后才把请求转交,这段"从零到就绪"的时延即冷启动。冷启动由镜像拉取、容器启动、进程初始化、就绪探测等多环节构成,是 Serverless 延迟的关键来源。运维影响:一是缩容到零节省资源但带来冷启动延迟,需权衡"最小副本数"(如保持 1 个热实例避免冷启动);二是冷启动期间请求需排队等待,要有超时与降级;三是监控要区分冷启动与热调用延迟。缩容到零适合低频、突发性负载,对延迟敏感的业务应调整最小副本与并发参数。
核心是"缩容到零 = 省资源换冷启动,冷启动 = 镜像+启动+就绪多环节延迟"。运维需权衡最小副本数、并发与冷启动延迟,并对冷启动请求做超时与降级。
# 查看 Knative Service 的当前副本数
kubectl get revisions -l serving.knative.dev/service=hello