作者:唐磊
背景
如今各大云厂商都开始提供 Serverless Kubernetes 服务,简化集群管理,降低运维管理负担,让 Kubernetes 更加简单。那么问题来了,一个系统到底需要具备怎样的能力才能更好地支撑 Serverless 应用呢?
Serverless 应用需要的是面向应用的管理功能,比如:升级、回滚、灰度发布、流量管理以及弹性伸缩等功能。
Knative 就是建立在 Kubernetes 之上的 Serverless 应用编排框架。Knative 的主要功能之一是自动缩放应用程序的副本,包括在没有收到流量时将应用程序缩放为0
。 默认 Autoscaler 组件监视流向应用程序的流量,并根据配置的指标向上或向下扩展副本。本期主要讲解 Knative Autoscaler 的原理和使用。
说明:
如需实践 Knative Autoscaler 的使用,您可以先了解以下内容。
Kubernetes:需要准备一个 Kubernetes 的集群,并学习相关的命令。
knative serving:您可以按照入门指南安装 Knative 。
Autoscaler 原理
Autoscaler 根据监控到的指标(concurrency、rps、cpu 等),并根据配置的指标来放大或缩小副本,从而实现自动扩缩容。
KPA VS HPA
Knative Serving 支持 Knative Pod Autoscaler(KPA)和 Kubernetes 的 Horizontal Pod Autoscaler(HPA)。以下是不同 scaler 的功能和局限性。
KPA
-
Knative