工作負(fù)載彈性伸縮
HPA(Horizontal Pod Autoscaler)
HPA是用來控制Pod水平伸縮的控制器,HPA周期性檢查Pod的度量數(shù)據(jù),計算滿足HPA資源所配置的目標(biāo)數(shù)值所需的副本數(shù)量,進而調(diào)整目標(biāo)資源(如Deployment)的replicas字段。
HPA可以配置單個和多個度量指標(biāo),配置單個度量指標(biāo)時,只需要對Pod的當(dāng)前度量數(shù)據(jù)求和,除以期望目標(biāo)值,然后向上取整,就能得到期望的副本數(shù)。例如有一個Deployment控制有3個Pod,每個Pod的CPU使用率是70%、50%、90%,而HPA中配置的期望值是50%,計算期望副本數(shù)=(70 + 50 + 90)/50 = 4.2,向上取整得到5,即期望副本數(shù)就是5。

節(jié)點彈性伸縮
CA(Autoscaler)
HPA是針對Pod級別的,但是如果集群的資源不夠了,那就只能對節(jié)點進行擴容了。集群節(jié)點的彈性伸縮本來是一件非常麻煩的事情,但是好在現(xiàn)在的集群大多都是構(gòu)建在云上,云上可以直接調(diào)用接口添加刪除節(jié)點,這就使得集群節(jié)點彈性伸縮變得非常方便。
通常情況下,需要HPA(Horizontal Pod Autoscaling)和CA(Cluster AutoScaling)配合使用,因為HPA需要集群有足夠的資源才能擴容成功,當(dāng)集群資源不夠時需要CA擴容節(jié)點,使得集群有足夠資源;而當(dāng)HPA縮容后集群會有大量空余資源,這時需要CA縮容節(jié)點釋放資源,才不至于造成浪費。
