最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

VPA(Vertical Pod AutoScaler)簡介

2023-07-21 16:19 作者:風(fēng)格星辰  | 我要投稿

最近兩天簡單的研究了下vpa,整理下一些資料

VPA簡介
全稱Vertical Pod AutoScaler 垂直 Pod 自動擴(kuò)縮容,它根據(jù)容器資源使用率自動設(shè)置 CPU 和 內(nèi)存 的requests,從而允許在節(jié)點(diǎn)上進(jìn)行適當(dāng)?shù)恼{(diào)度,以便為每個 Pod 提供適當(dāng)?shù)馁Y源。
并且會保持limit和request的比例。在pod請求過多資源的情況下降低其request,在pod請求過少資源的情況下提高其request
自動伸縮是通過一個叫VerticalPodAutoscaler的CRD(自定義資源對象)進(jìn)行配置的,允許指定哪些pod可以被水平伸縮

VPA的幾種模式
Auto:當(dāng)創(chuàng)建或者更新存在的pod的時候,VPA會通過推薦的更新機(jī)制修改pod的request
Recreate:類似Auto,但是當(dāng)vpa發(fā)現(xiàn)pod定義的request和計算出來的推薦值有明顯差距時會驅(qū)逐這些pod。這個模式很少使用。只有當(dāng)你確定只要資源請求數(shù)遍歷就要重啟pod時才使用,否則推薦使用Auto模式
Initial:vpa只會在pod創(chuàng)建時修改資源的request,并且后續(xù)不會再修改。
Off:Vpa不會自動修改pod的request。只計算其推薦值,可以通過vpa對象查看推薦值。

VPA的三大組件
Recommander:監(jiān)控當(dāng)前和歷史資源使用記錄,并且基于這些數(shù)據(jù)提供容器的cpu和內(nèi)存request推薦值
Updater:檢查管理的pod是否有正確的資源設(shè)置,如果沒有,將pod殺掉,讓其使用最新的推薦值重啟
Admission Plugin:給新pod設(shè)置正確的requests資源。(不管是新建還是重啟的)

限制值控制
設(shè)置限制時,VPA 將符合資源策略。它將保持為所有容器指定的請求比率限制。
VPA 將嘗試將推薦值限制在最小和最大限制范圍之間。如果限制上線和vpa的資源策略沖突,vpa會忽略限制上線,使用vpa的資源策略

例子
保證request和limit的比例
假設(shè)容器的template定義了request為500milli CPU和1GB的內(nèi)存,limit為2GB內(nèi)存。
vpa的推薦值是1000milli CPU和2GB內(nèi)存,那么vpa會將內(nèi)存limit設(shè)置為4GB
原先的request/limit比例=1GB/2GB=推薦值request/limit比例=2GB/4GB

limit的設(shè)置上限
假設(shè)容器的template定義了request為500milli CPU和1GB內(nèi)存,limit為2GB內(nèi)存。
并且每個容器的limit設(shè)置上限為3GB內(nèi)存。
vpa的推薦值是1000milli CPU和2GB內(nèi)存,那么vpa會將內(nèi)存limit設(shè)置為3GB,將內(nèi)存request設(shè)置為1.5GB(保證request和limit的比例)

資源策略覆蓋limit范圍
假設(shè)容器的template定義了request為500milli CPU和1GB內(nèi)存,limit為2GB內(nèi)存。
并且每個容器的limit設(shè)置上限為3GB內(nèi)存。
vpa的容器資源策略要求vpa將容器的request設(shè)置為最小750milli CPU和2GB內(nèi)存。
vpa的推薦值是1000milli CPU和2GB內(nèi)存。那么vpa會將內(nèi)存request設(shè)置為2GB,將內(nèi)存limit設(shè)置為4GB(保證request和limit比例)

總的來說 資源策略 > 全局limit上限 > 推薦值

OOMKill后自定義內(nèi)存增長
如果檢查道OOMKill時間,vpa會增加內(nèi)存使用量推薦值
recommendation = memory-usage-in-oomkill-event + max(oom-min-bump-up-bytes, memory-usage-in-oomkill-event * oom-bump-up-rate)
推薦值 = 發(fā)生OOMKill的內(nèi)存使用值 + oom最小的增長字節(jié)、內(nèi)存使用值與增長率的乘積兩者的最大值
通過oom-min-bump-up-byte修改oom最小增長字節(jié),默認(rèn)是100MiB
通過oom-bump-up-radio修改增長率,默認(rèn)是1.2,即每次發(fā)送OOM,內(nèi)存增加20%。

已知限制
1、當(dāng)vpa更新了pod的請求資源,所有運(yùn)行的相關(guān)pod會被重建,可能被調(diào)度到其他節(jié)點(diǎn)。
2、vpa不保證pod更新推薦值時會重啟成功
3、vpa不會更新沒有控制器的pod,即不會修改damonset這些類型的pod
4、vpa不應(yīng)該和hpa一起使用。但是可以使用vpa和一些定制的hpa
5、VPA 準(zhǔn)入控制器是一個準(zhǔn)入Webhook。如果將其他準(zhǔn)入 Webhook 添加到集群,則分析它們?nèi)绾谓换ヒ约八鼈兪欠窨赡芟嗷_突非常重要。準(zhǔn)入控制器的順序由 API 服務(wù)器上的標(biāo)志定義。
6、vpa會對大部分的內(nèi)存溢出時間做出反應(yīng),但不是全部
7、vpa表現(xiàn)沒有經(jīng)歷過大規(guī)模的集群測試
8、vpa的推薦值可能超出集群可用資源,導(dǎo)致pod一直處于pending狀態(tài)
9、同一個pod匹配多個vpa資源可能有未知的行為

vpa的大致流程
當(dāng)vpa部署到集群后,vpa的recommender會通過prometheus等其他收集數(shù)據(jù)的組件獲取pod的歷史以及當(dāng)前的資源使用情況。然后計算出推薦值。vpa的updater會檢查pod設(shè)置的request和limit是否符合推薦值。不符合,根據(jù)模式,admission controller決定是否修改其request和limit。然后對應(yīng)的控制器會將其重啟。

vpa如何計算cpu和內(nèi)存的推薦值
總的計算原則,具體計算很復(fù)雜,不詳細(xì)介紹了
對于 CPU,目標(biāo)是將容器使用率超過請求的高百分比(例如 95%)時的時間部分保持在某個閾值(例如 1% 的時間)以下。
對于內(nèi)存,目標(biāo)是將特定時間窗口內(nèi)容器使用率超過請求的概率保持在某個閾值以下(例如,24 小時內(nèi)低于 1%)。。

參考資料
github.com/kubernetes/a
zhuanlan.zhihu.com/p/53


VPA(Vertical Pod AutoScaler)簡介的評論 (共 條)

分享到微博請遵守國家法律
乌兰察布市| 永宁县| 金湖县| 永年县| 福建省| 定安县| 麻城市| 宣威市| 镇雄县| 车致| 上栗县| 桂林市| 改则县| 财经| 邯郸市| 古蔺县| 建水县| 巴楚县| 丰原市| 长海县| 临安市| 白山市| 曲沃县| 商都县| 汾西县| 尚义县| 岫岩| 边坝县| 南溪县| 南澳县| 梁山县| 鄢陵县| 巢湖市| 游戏| 福泉市| 石首市| 东乌珠穆沁旗| 富源县| 湘阴县| 龙泉市| 措美县|