Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性( 三 )

Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性

cluster-proportional-autoscaler 的伸缩策略主要有两种:一种是线性模型,一种是梯度模型。

简单的理解,线性模型就是 y = rate * x + min,设置最小值,以及伸缩的区间,并根据当前节点的数目,通过线性模型计算所需的核心组件数目。在上面的例子中,我们用的就是线性模型,线性模型支持的配置参数如下:

Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性

min、max、以及 preventSinglePointFailure 都比较好理解,coresPerReplica 的意思是按照核心数目来计算副本集,nodesPerReplica 是按照节点数目来计算副本集。

用一个实际的例子进行举例,例如当前集群有两个节点,每个节点的配置是 4C8G,那么如果按照 coresPerReplica 这个指标计算,则需要弹出 42/2=4 个副本。如果按照 nodesPerReplica 来计算,则需要弹出 21 = 2 个副本。此时 cluster-proportional-autoscaler 会取两者之间的大的数值,也就是 4 作为最后的伸缩数目进行扩容。

推荐阅读