容器化上云之彈性伸縮
在考慮容器的彈性伸縮策略之前,第一步要對容器部署規格進行設計,通常最主要的參數為CPU和內存。
除了從應用自身的角度評估資源需求外,還需要考慮容器平臺的資源調度規則對整體資源利用率的影響。在Kubernetes中每一種資源規格包含兩個參數:request(最小)和limit(最大),前者是容器調度的依據,后者是運行時的最大資源使用限制。如果request值過大會導致調度到合適的節點上更困難,降低request值有助于提升容器在單個節點上部署的密度。limit值過大會導致容器資源占用過高,多個容器在一個節點上總的資源占用可能超出節點的總資源,將會導致容器運行不穩定,容易出現容器被頻繁重啟和遷移的現象。
接下來分析彈性伸縮的場景,從資源需求的角度,彈性伸縮可以分為兩類場景:
l?? 整個集群資源充足,只在容器層面進行彈性伸縮;
l?? 彈性伸縮的幅度可能超過集群現有資源的總和,需要動態增加集群中的計算資源。
下面重點討論第一類場景,第二類場景建采用事先規劃和計劃性擴容的方案解決。
自動彈性伸縮基于容器的監控指標與彈性伸縮規則實現,首先要選擇合適的監控指標,使其最能夠反映容器真實的負載情況。一類指標是系統內置的監控指標,包括CPU、內存、磁盤、網絡的使用率和大小,另一類是業務自定義的監控指標。當系統內置指標不能很好的反映容器的真實負載情況時,采用業務自定義監控指標是更好的選擇。
基于監控指標,可以設置彈性伸縮規則,根據觸發類型不同,彈性伸縮規則主要包括以下幾類:
l?? 定時觸發:適合計劃性的彈縮場景使用。
l?? 周期觸發:適合業務負載呈周期性規律的場景使用。
l?? 告警觸發:根據監控指標的閾值規則觸發的彈性伸縮,通用性更強。
為了防止彈性伸縮規則出現沖突和不穩定,系統通過冷卻時間和多周期采樣來提升彈性伸縮策略的穩定性。
容器
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。