Knative 驾驭篇:带你 '纵横驰骋' Knative 自动扩缩容实现
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Knative 中提供了自动扩缩容灵活的实现机制,本文从 三横两纵 的维度带你深入了解 KPA 自动扩缩容的实现机制。让你轻松驾驭 Knative 自动扩缩容。 注:本文基于最新 Knative v0.11.0 版本代码解读 KPA 实现流程图 在 Knative 中,创建一个 Revision 会相应的创建 PodAutoScaler 资源。在KPA中通过操作 PodAutoScaler 资源,对当前的 Revision 中的 POD 进行扩缩容。 针对上面的流程实现,我们从 三横两纵 的维度进行剖析其实现机制。 三横 KPA 控制器 根据指标定时计算 POD 数 指标采集 KPA 控制器 通过Revision 创建PodAutoScaler, 在 KPA 控制器中主要包括两个资源(Decider 和 Metric)和一个操作(Scale)。主要代码如下 func (c *Reconciler) reconcile(ctx context.Context, pa *pav1alpha1.PodAutoscaler) error { ...... decider, err := c.reconcileDecider(ctx, pa, pa.Status.MetricsServiceName) if err !=