您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)優(yōu)化Kubernetes成本的9個(gè)辦法分別是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
Kubernetes統(tǒng)治著容器市場(chǎng)。根據(jù)CNCF的一項(xiàng)調(diào)查,到2020年,Kubernetes在生產(chǎn)環(huán)境中的使用率為93%,高于2019年的78%。
由于DevOps團(tuán)隊(duì)采用了Kubernetes,并且在開源社區(qū)的鼓勵(lì)下,這一數(shù)字可能還會(huì)增長(zhǎng),如果還是以目前的花費(fèi)來維持,將會(huì)有加大網(wǎng)絡(luò),存儲(chǔ),監(jiān)控等成本的開銷。
運(yùn)行Kubernetes可能會(huì)非常昂貴,尤其當(dāng)組織首次使用Kubernetes時(shí),他們通常會(huì)使用沒有經(jīng)過優(yōu)化的架構(gòu)和設(shè)置,這將會(huì)慢慢加大組織的網(wǎng)絡(luò),存儲(chǔ),監(jiān)控等成本的開銷。為了節(jié)省很多不必要的成本,我們需要從一開始就養(yǎng)成良好的習(xí)慣。
在本文中,我們將介紹9種控制和降低Kubernetes成本的方法。
成本監(jiān)控:應(yīng)該向你展示有關(guān)Kubernetes的支出。這是有效地管理Kubernetes成本的最合乎邏輯的步驟。
云供應(yīng)商提供帳單信息,但是,它們通常僅是一個(gè)簡(jiǎn)單的概述,這雖然對(duì)多租戶的Kubernetes集群有用,但是在私有云中不可訪問。因此,我們需要使用外部軟件來監(jiān)控Kubernetes的使用。Prometheus,Kubecost,Microtica和Replex是該領(lǐng)域中的一些有用工具。
選擇你將要使用的工具以及如何監(jiān)控Kubernetes成本。然后,為Kubernetes成本優(yōu)化實(shí)施更具體的措施。
有效的資源約束,能夠確保Kubernetes系統(tǒng)的資源使用不會(huì)超出成本預(yù)算。
容器使用的資源不能超過你設(shè)置的資源限制。當(dāng)容器中的進(jìn)程嘗試使用超出允許范圍的內(nèi)存時(shí),系統(tǒng)內(nèi)核會(huì)因內(nèi)存不足(OOM)錯(cuò)誤而中止該進(jìn)程。
限制資源至關(guān)重要,尤其是在許多開發(fā)人員可以直接訪問Kubernetes的情況下。它們確保公平共享可用資源,從而減小整個(gè)集群的大小。如果沒有限制,一個(gè)人可能會(huì)消耗所有資源,這將影響其他人的正常工作,從而導(dǎo)致總體上需要更多的計(jì)算資源。
但是,請(qǐng)注意不要無限制地限制你的資源。如果資源限制太低,工程師和軟件將無法正常運(yùn)行。一些Kubernetes成本優(yōu)化工具,例如Prometheus和Kubecost,可以幫助你實(shí)現(xiàn)資源的平衡。
要了解限制容器資源的更多信息,請(qǐng)查看Kubernetes文檔。
自動(dòng)擴(kuò)展意味著為你所需的東西付費(fèi)。你可以允許Kubernetes自動(dòng)擴(kuò)縮以適應(yīng)快速變化。
水平和垂直自動(dòng)擴(kuò)縮是可用的兩種自動(dòng)擴(kuò)縮類型。簡(jiǎn)而言之,水平自動(dòng)擴(kuò)縮涉及根據(jù)負(fù)載是高于還是低于指定水平來新增和移除Pod。各個(gè)Pod的比例與垂直自動(dòng)擴(kuò)縮比例保持平衡。
兩種自動(dòng)擴(kuò)縮方法都可使用計(jì)算能力動(dòng)態(tài)地適應(yīng)你的實(shí)際需求。但是,此方法不一定理想,因?yàn)樗贿m用于所有用例。
舉例:AWS Kubernetes的成本,受到管理AWS實(shí)例的直接影響。實(shí)例以多種不同形式出現(xiàn),具有不同的內(nèi)存和計(jì)算資源組合。雖然Kubernetes Pod的使用方式相同,但資源分配不同??刂艫WS Kubernetes成本的關(guān)鍵是確保Pod在你的AWS實(shí)例上有效增減。AWS實(shí)例應(yīng)與你的pod的大小匹配。
Pod的規(guī)模,數(shù)量和歷史資源利用率趨勢(shì)在決定使用哪個(gè)AWS實(shí)例時(shí)都發(fā)揮著作用。應(yīng)用程序可能具有不同的存儲(chǔ)或CPU要求,這會(huì)影響要使用的實(shí)例的類型。
確保Kubernetes Pod的資源消耗與其所使用的AWS實(shí)例上的CPU和內(nèi)存消耗相關(guān)聯(lián),這對(duì)于優(yōu)化資源使用和降低AWS成本至關(guān)重要。
可以在此處檢查Amazon EC2實(shí)例類型,然后選擇最適合你需求的一種。
目前,AWS實(shí)例有3種形式:按需實(shí)例,預(yù)留實(shí)例和Spot 實(shí)例。按需實(shí)例成本最高,但靈活性最高。與按需實(shí)例的價(jià)格相比,使用 Spot 實(shí)例最高可以享受 90% 的折扣。你還可以在一定時(shí)間內(nèi)獲取預(yù)留實(shí)例,以節(jié)省成本。因此,實(shí)例形式的選擇直接影響在AWS上運(yùn)行Kubernetes的成本。
你可以將 Spot 實(shí)例用于各種無狀態(tài)、容錯(cuò)或者靈活的應(yīng)用程序,例如大數(shù)據(jù)、容器化工作負(fù)載、CI/CD、Web 服務(wù)器、高性能計(jì)算 (HPC) 以及測(cè)試和開發(fā)工作負(fù)載。
無論你是在按需實(shí)例,保留實(shí)例還是Spot 實(shí)例上運(yùn)行Kubernetes集群,確保集群的充分利用對(duì)于成本管理都是至關(guān)重要的。你可以按配置它們的時(shí)間段計(jì)算AWS EC2的費(fèi)用。
簡(jiǎn)而言之,如果開發(fā)團(tuán)隊(duì)使用基于云的Kubernetes環(huán)境,則他們僅在工作時(shí)間內(nèi)使用它。如果他們每周工作40個(gè)小時(shí),而在其余時(shí)間中環(huán)境仍然正常工作,那么在不用時(shí)無需為剩余的128個(gè)小時(shí)付費(fèi)。當(dāng)然,并不是每個(gè)團(tuán)隊(duì)都這樣,特別是如果他們的工作時(shí)間靈活,但是在沒有人工作的情況下關(guān)閉環(huán)境可以極大地提高Kubernetes的成本優(yōu)化。
開發(fā)人員可以通過自動(dòng)設(shè)置睡眠計(jì)劃并僅在需要時(shí)喚醒環(huán)境來。設(shè)置此計(jì)劃意味著系統(tǒng)將自動(dòng)縮減未使用的資源。這樣可以確保環(huán)境條件得以保存。此外,當(dāng)工程師再次需要時(shí),環(huán)境將輕松,自動(dòng)地“喚醒”,這意味著工作流不會(huì)中斷。
如果讓工程師有權(quán)按需構(gòu)建命名空間,或者有權(quán)構(gòu)建CI/CD流水線,則最終可能會(huì)產(chǎn)生許多未使用的對(duì)象或集群,但這些仍然在花費(fèi)金錢。即使你的睡眠模式能夠減少計(jì)算資源的消耗,那么它僅適用于暫時(shí)不活動(dòng)的資源。
因此,當(dāng)你發(fā)現(xiàn)某些資源長(zhǎng)時(shí)間處于非活動(dòng)狀態(tài)時(shí),刪除它們將是一件很明智的事情。
在不同情況下,管理Kubernetes集群的方法也是不同的。作為程序員,在構(gòu)建集群之前,你需要經(jīng)??紤]將在集群上運(yùn)行的應(yīng)用程序的規(guī)范。
在設(shè)計(jì)可擴(kuò)展應(yīng)用程序時(shí),正確調(diào)整節(jié)點(diǎn)大小非常重要。大量的小節(jié)點(diǎn)和少量的大節(jié)點(diǎn)是兩個(gè)截然不同的事物。最好的方法是在這兩個(gè)之間找到適當(dāng)?shù)钠胶狻?/p>
但是,你的應(yīng)用程序的不同要求需要不同數(shù)量和大小的節(jié)點(diǎn)。具體可以參考《調(diào)整Kubernetes集群大小的技巧》,以了解各種應(yīng)用所需的大小和數(shù)量。
在任何環(huán)境中,無論是云,還是本地器,標(biāo)記資源都是一個(gè)明智的主意。組織在有多個(gè)測(cè)試,開發(fā)和生產(chǎn)環(huán)境中,更應(yīng)使用標(biāo)記來確保所有服務(wù)均受到控制。
AWS提供了一種強(qiáng)大的標(biāo)記方案,可用于標(biāo)記屬于Kubernetes的服務(wù)。有效的標(biāo)記使你可以輕松地分類管理哪些是未使用的服務(wù)。在AWS Billing儀表板中啟用這些標(biāo)簽后,你將能夠分配成本并查看各種服務(wù)的費(fèi)用明細(xì)。
Kubernetes成本優(yōu)化的第一步是監(jiān)控它們。然后,為避免計(jì)算資源的過度使用,你可以設(shè)置限制,這將使成本更易于管理。
確定最佳資源的大小以及自動(dòng)擴(kuò)展功能,也對(duì)降低成本有所幫助。如果使用AWS,則可以檢查其價(jià)格較低的選項(xiàng),例如Spot 實(shí)例。刪除空閑資源的方法,包括自動(dòng)休眠計(jì)劃和清理未使用的Kubernetes資源。最后,調(diào)整容器大小并實(shí)施資源標(biāo)記,以實(shí)現(xiàn)更好的Kubernetes成本優(yōu)化。
關(guān)于優(yōu)化Kubernetes成本的9個(gè)辦法分別是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。