工作負載彈性伸縮
HPA(Horizontal Pod Autoscaler)
HPA是用來控制Pod水平伸縮的控制器,HPA周期性檢查Pod的度量數據,計算滿足HPA資源所配置的目標數值所需的副本數量,進而調整目標資源(如Deployment)的replicas字段。
HPA可以配置單個和多個度量指標,配置單個度量指標時,只需要對Pod的當前度量數據求和,除以期望目標值,然后向上取整,就能得到期望的副本數。例如有一個Deployment控制有3個Pod,每個Pod的CPU使用率是70%、50%、90%,而HPA中配置的期望值是50%,計算期望副本數=(70 + 50 + 90)/50 = 4.2,向上取整得到5,即期望副本數就是5。
節(jié)點彈性伸縮
CA(Autoscaler)
HPA是針對Pod級別的,但是如果集群的資源不夠了,那就只能對節(jié)點進行擴容了。集群節(jié)點的彈性伸縮本來是一件非常麻煩的事情,但是好在現在的集群大多都是構建在云上,云上可以直接調用接口添加刪除節(jié)點,這就使得集群節(jié)點彈性伸縮變得非常方便。
通常情況下,需要HPA(Horizontal Pod Autoscaling)和CA(Cluster AutoScaling)配合使用,因為HPA需要集群有足夠的資源才能擴容成功,當集群資源不夠時需要CA擴容節(jié)點,使得集群有足夠資源;而當HPA縮容后集群會有大量空余資源,這時需要CA縮容節(jié)點釋放資源,才不至于造成浪費。