1 概览

kubernetes自动扩容可以根据设定的cpu利用率,来自动增加pod副本,保证每个pod的利用率均不超过设定的cpu利用率。默认的,kubernetes每隔30秒获取一次pod的cpu利用率,也就是说,当负载增加达到或者超过设定的cpu利用率,kubernetes不一定会马上增加副本,它会在它下次更新pod利用率时进行。当负载下降,同样的kubernetes又会减少增加的副本数量,但是,它也不会立即下降。一般地,这需要10-12分钟,因为kubernetes需要保证,负载下降不是这一瞬时的下降。进行扩容的部署,需要指定pod的资源请求,如果没有设定是无法进行扩容的。扩容时,获取到的cpu利用率是指所有pod的平均cpu利用率。

2 概念解析

2.1 CPU利用率

CPU资源以cpus为单位。允许小数值。你可以用后缀m来表示mili。例如100m cpu等同于100 milicpu,意思是0.1cpu

2.2 资源请求

指定pod需要的资源使用,kubernetes会根据pod需求的资源量,调度到具有足够的资源请求量的节点删

2.3 资源限制

指定pod最大资源请求量,如果容器超出内存限制,它将结束;如果容器超出cpu限制,它将成为cpu节流的候选者