K8S的横向自动扩容的功能Horizontal Pod Autoscaling
K8S 作為一個(gè)集群式的管理軟件,自動(dòng)化、智能化是免不了的功能。Google 在 K8S v1.1 版本中就加入了這個(gè) Pod 橫向自動(dòng)擴(kuò)容的功能(Horizontal Pod Autoscaling,簡(jiǎn)稱(chēng) HPA)。
HPA 與之前的 Deployment、Service 一樣,也屬于一種 K8S 資源對(duì)象。
HPA 的目標(biāo)是希望通過(guò)追蹤集群中所有 Pod 的負(fù)載變化情況,來(lái)自動(dòng)化地調(diào)整 Pod 的副本數(shù),以此來(lái)滿(mǎn)足應(yīng)用的需求和減少資源的浪費(fèi)。
HAP 度量 Pod 負(fù)載變化情況的指標(biāo)有兩種:
- CPU 利用率(CPUUtilizationPercentage)
- 自定義的度量指標(biāo),比如服務(wù)在每秒之內(nèi)的請(qǐng)求數(shù)(TPS 或 QPS)
如何統(tǒng)計(jì)和查詢(xún)這些指標(biāo),要依托于一個(gè)組件——Heapster。Heapster 會(huì)監(jiān)控一段時(shí)間內(nèi)集群內(nèi)所有 Pod 的 CPU 利用率的平均值或者其他自定義的值,在滿(mǎn)足條件時(shí)(比如 CPU 使用率超過(guò) 80% 或 降低到 10%)會(huì)將這些信息反饋給 HPA 控制器,HPA 控制器就根據(jù) RC 或者 Deployment 的定義調(diào)整 Pod 的數(shù)量。
Horizontal Pod Autoscaling可以根據(jù)CPU使用率或應(yīng)用自定義metrics自動(dòng)擴(kuò)展Pod數(shù)量(支持replication controller、deployment和replica set)。
- 控制管理器每隔30s(可以通過(guò)–horizontal-pod-autoscaler-sync-period修改)查詢(xún)metrics的資源使用情況
- 支持三種metrics類(lèi)型
- 預(yù)定義metrics(比如Pod的CPU)以利用率的方式計(jì)算
- 自定義的Pod metrics,以原始值(raw value)的方式計(jì)算
- 自定義的object metrics
- 支持兩種metrics查詢(xún)方式:Heapster和自定義的REST API
- 支持多metrics
參考:
https://www.cnblogs.com/bakari/p/10620592.html
https://www.kubernetes.org.cn/horizontal-pod-autoscaling
總結(jié)
以上是生活随笔為你收集整理的K8S的横向自动扩容的功能Horizontal Pod Autoscaling的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: “前期过已久”下一句是什么
- 下一篇: 你真的掌握了并发编程volatile s