技术干货:解密最受欢迎的开源 Serverless 框架弹性技术实现

💡 原文中文,约10700字,阅读约需26分钟。
📝

内容提要

Knative是基于Kubernetes的开源Serverless应用编排框架,提供自动弹性和缩容到0的能力,支持精准弹性和弹性预测,提供资源预热和保留资源池的功能,支持基于CPU和内存的自动弹性,提供弹性插件机制。阿里云容器服务Knative还支持精准弹性扩缩容和弹性预测能力。

🎯

关键要点

  • Knative是基于Kubernetes的开源Serverless应用编排框架,旨在制定云原生、跨平台的Serverless应用编排标准。
  • Knative的主要功能包括基于请求的自动弹性、缩容到0、多版本管理、基于流量的灰度发布以及事件驱动等。
  • Knative提供基于请求的自动弹性实现KPA(Knative Pod Autoscaler),支持灵活的弹性扩展机制。
  • KPA基于请求数的弹性算法,通过QUEUE代理容器收集并发数或请求数指标,调整Pod数量。
  • KPA支持缩容到0,当无流量请求时自动缩容Pod,流量恢复时从0开始扩容Pod。
  • KPA有稳定模式和恐慌模式,分别用于应对正常流量和突发流量。
  • 可以通过设置突发请求容量来避免Pod被超预期流量打爆,使用activator组件作为请求缓冲区。
  • 延迟缩容和调低目标使用率可以减少冷启动带来的响应延迟。
  • Knative支持全局模式和Revision模式配置KPA,允许用户根据需求进行弹性指标配置。
  • Knative支持HPA(Horizontal Pod Autoscaler),可以基于CPU或内存进行自动弹性能力配置。
  • Knative提供灵活的插件机制,支持不同的弹性策略,包括kpa、hpa、mpa和ahpa。
  • 保留资源池功能可以在ECS与ECI混用场景中实现资源预热和成本效率平衡。
  • 精准弹性扩缩容通过MSE网关实现,能够精确控制单个Pod的请求并发处理数。
  • AHPA(Advanced Horizontal Pod Autoscaler)支持基于历史指标的弹性预测,解决弹性滞后问题。
➡️

继续阅读