掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
調(diào)查表明,Kubernetes如今主導(dǎo)著容器市場。根據(jù)云原生計算基金會(CNCF)的一項調(diào)查,2020年Kubernetes在生產(chǎn)中的使用率為93%,遠(yuǎn)高于2019年的78%。此外,這項調(diào)查表明,2020年容器在生產(chǎn)中的使用率為92%,與云原生計算基金會(CNCF)在 2016年的第一次調(diào)查相比,這一數(shù)字增長了3倍。

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供松北網(wǎng)站建設(shè)、松北做網(wǎng)站、松北網(wǎng)站設(shè)計、松北網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、松北企業(yè)網(wǎng)站模板建站服務(wù),十多年松北做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
由于越來越多的DevOps團(tuán)隊采用了Kubernetes,并且在開源社區(qū)的支持下,這一數(shù)字可能還會增加。如果還保持目前的價格,將會增加更多的市場份額。雖然Kubernetes使很多事項變得簡單,但總是面臨一些挑戰(zhàn)。其中包括在網(wǎng)絡(luò)、存儲、跟蹤、監(jiān)視、準(zhǔn)備不足,以及成本管理等方面出現(xiàn)的問題。
運(yùn)行Kubernetes的成本可能會非常昂貴,尤其是效率低下的話。當(dāng)用戶首次嘗試將Kubernetes納入其業(yè)務(wù)時,通常會使用與最初的試點(diǎn)項目相同的架構(gòu)和設(shè)置。但是,這種設(shè)置通常沒有經(jīng)過成本優(yōu)化,因此用戶可能并沒有意識到費(fèi)用問題。而用戶從一開始就養(yǎng)成良好的成本優(yōu)化習(xí)慣,能夠節(jié)省大量的成本。
以下介紹幾種控制和降低Kubernetes成本的方法。此外,由于Amazon EKS是繼自我管理的Kubernetes之后最常見的容器管理方法,因此將針對AWS云平臺上的Kubernetes成本優(yōu)化提供更具可行性的建議。
這是開始更有效地管理Kubernetes成本的合乎邏輯的一個步驟。監(jiān)控將顯示用戶有關(guān)Kubernetes的支出方式。更重要的是,應(yīng)該確定節(jié)省成本的機(jī)會。
云計算供應(yīng)商通常會為用戶提供需要支付費(fèi)用的帳單摘要,但是,其概述通常比較簡單,這對于多租戶Kubernetes集群用處并不大,并在私有云中是不可訪問的。因此,使用外部軟件來監(jiān)控Kubernetes的使用情況很普遍。Prometheus、Kubecost、Microtica和Replex就是該領(lǐng)域中的一些有用工具。
用戶需要選擇適用的工具監(jiān)控Kubernetes成本。然后,開始為Kubernetes成本優(yōu)化采取更具體的行動。
有效地限制資源的使用,可以確保Kubernetes系統(tǒng)的任何程序或操作不會使用過多的處理能力。因此,可以為用戶節(jié)省成本,例如避免出現(xiàn)意外的帳單。
容器使用的資源不能超過設(shè)置的資源限制。如果將某個特定容器的內(nèi)存上限設(shè)置為4GB,那么kubelet(與容器運(yùn)行時)將不會超過這個內(nèi)存上限。容器在運(yùn)行時禁止超過配置的資源上限。當(dāng)容器中的進(jìn)程試圖使用超出允許的內(nèi)存量時,系統(tǒng)內(nèi)核會以內(nèi)存不足的錯誤中止這一進(jìn)程。
用戶可以通過兩種方式進(jìn)行限制。首先,當(dāng)Kubernetes系統(tǒng)檢測到違規(guī)行為時就會做出反應(yīng)。第二種方法是強(qiáng)制執(zhí)行,這意味著Kubernetes系統(tǒng)從來不會允許容器超過限制??梢葬槍Σ煌倪\(yùn)行時間以各種方式實(shí)現(xiàn)相同的限制。
限制資源至關(guān)重要,尤其是在許多用戶可以直接訪問Kubernetes的情況下。這種方法可以確保公平共享可用資源,從而減小了整個群集的規(guī)模。如果沒有限制,某一名用戶就可能消耗所有資源,這將會嚴(yán)重影響其他用戶的工作,從而導(dǎo)致需要更多的計算資源。
但是,需要注意的是不要過分地限制資源。如果資源數(shù)量限制得太低,軟件將無法正常運(yùn)行。而采用Prometheus和Kubecost一些Kubernetes成本優(yōu)化工具,可以幫助用戶保持資源的平衡。
自動擴(kuò)展意味著用戶需要為其所需的東西支付更多費(fèi)用。因此,用戶必須根據(jù)自己的特定需求調(diào)整群集的規(guī)模。這個功能可以允許Kubernetes自動擴(kuò)展以適應(yīng)快速變化。
水平動擴(kuò)展和垂直自動擴(kuò)展是兩種可用的自動擴(kuò)展類型。簡而言之,水平自動擴(kuò)展涉及根據(jù)負(fù)載是高于還是低于指定水平來插入和移除計算Pod。其Pod的比例與垂直自動擴(kuò)展比例保持平衡。
這兩種自動擴(kuò)展方法都可用于使可用的計算能力動態(tài)地適應(yīng)用戶的實(shí)際需求。但是,這種方法并不理想,因?yàn)樗贿m用于所有用例。例如,當(dāng)某些事物采用更多的計算資源之后,Kubernetes系統(tǒng)不會自動縮小規(guī)模。
AWS Kubernetes的成本受到開發(fā)人員用來管理Kubernetes集群的AWS實(shí)例的直接影響。其實(shí)例以多種不同形式出現(xiàn),具有不同的內(nèi)存和計算資源組合。Kubernetes Pod的使用方式相同,但資源分配不同??刂艫WS Kubernetes成本的關(guān)鍵是確保Pod在用戶的AWS實(shí)例上有效使用。而AWS實(shí)例應(yīng)該與用戶使用的Pod的大小匹配。
Pod的規(guī)模、數(shù)量和歷史資源利用趨勢都將決定使用哪個AWS實(shí)例。應(yīng)用程序可能具有不同的存儲或CPU要求,這會影響要使用的實(shí)例類型。
確保Kubernetes Pod的資源消耗與其所使用的AWS實(shí)例上的可用總體CPU和內(nèi)存相關(guān),這對于優(yōu)化資源使用和降低AWS成本至關(guān)重要。
對于AWS實(shí)例,可以在三種計費(fèi)配置文件中找到它們:按需實(shí)例、預(yù)留實(shí)例、競價型實(shí)例。按需實(shí)例的成本最高,但靈活性最高。競價型實(shí)例的成本最低。但是需要通過2分鐘的警告來終止它們。用戶還可以在一定時間內(nèi)獲取預(yù)留實(shí)例,以節(jié)省成本。因此,實(shí)例形式的選擇直接影響在AWS云平臺上運(yùn)行Kubernetes的成本。
用戶可以將競價型實(shí)例用于并不是一直需要資源的工作負(fù)載,并且可以處理很多中斷。AWS公司聲稱現(xiàn)競價型實(shí)例將幫助用戶節(jié)省多達(dá)90%的EC2按需實(shí)例成本。
由于競價型實(shí)例必須立即運(yùn)行,因此并不是用戶采用應(yīng)用程序的最佳選擇,那么如果在固定時間內(nèi)使用這些服務(wù),則可能會獲得一些折扣。如果用戶同意一年或三年的使用期限,則將獲得更多的折扣。AWS公司表示,其折扣可能達(dá)到40%到60%。
無論用戶是在按需實(shí)例、預(yù)留實(shí)例還是競價型實(shí)例上運(yùn)行Kubernetes集群,確保終止未充分利用的集群對于成本管理都是至關(guān)重要的。用戶可以按配置它們的時間段計算AWS EC2的費(fèi)用。即使未充分利用的實(shí)例對資源的影響比必要時要大得多,它們?nèi)匀皇褂脩艋ㄙM(fèi)運(yùn)行實(shí)例的全部費(fèi)用。
簡而言之,如果用戶使用基于云計算的Kubernetes環(huán)境,并且只在工作時間內(nèi)使用,那么他們每周工作40個小時,而Kubernetes環(huán)境在其余時間正常工作,那么沒有必要為每周其他的128個小時支付費(fèi)用。當(dāng)然,并不是每個用戶都是這樣,特別是他們工作時間更加靈活的的話,但是在沒有工作的情況下關(guān)閉環(huán)境可以顯著地優(yōu)化Kubernetes的成本。
用戶可以通過自動安排休眠時間表并在需要時喚醒環(huán)境來設(shè)置這些功能。設(shè)置這計劃意味著Kubernetes系統(tǒng)將自動縮減未使用的資源。這保證其環(huán)境得到了保存。此外,當(dāng)用戶再次需要啟用時,其環(huán)境將會自動地被“喚醒”,這意味著工作流中不會中斷。
如果讓用戶完全可以根據(jù)需要構(gòu)建名稱空間或使用基于持續(xù)集成(CI)/持續(xù)交付(CD)的Kubernetes,那么最終可能會出現(xiàn)大量未使用的對象或集群,這些對象或集群仍然會使用戶的成本升高。如果休眠模式減少了計算資源,那么它只用于暫時不活動的資源,仍然保留存儲和配置。因此,當(dāng)用戶發(fā)現(xiàn)某些資源長時間處于非活動狀態(tài)時,刪除它們將是一件明智的事情。
在各種情況下,管理Kubernetes集群是不同的。有多種方法可以正確調(diào)整群集的大小,并且開發(fā)應(yīng)用程序以確保一致性和持久性很重要。用戶在構(gòu)建集群之前,經(jīng)常需要考慮將在集群上運(yùn)行的應(yīng)用程序的規(guī)范。
在設(shè)計可擴(kuò)展應(yīng)用程序時,正確調(diào)整節(jié)點(diǎn)大小非常重要。大量的小節(jié)點(diǎn)和少量的大節(jié)點(diǎn)是兩個截然不同的事物。這就是在這兩個目標(biāo)之間找到適當(dāng)?shù)钠胶馐亲詈玫姆椒ǖ脑颉?/p>
但是,用戶對于應(yīng)用程序的不同要求需要不同數(shù)量和不同大小的節(jié)點(diǎn),因此需要了解各種應(yīng)用案例所需的大小和數(shù)量。
在任何環(huán)境中,無論是云平臺、內(nèi)部部署設(shè)施還是容器,標(biāo)記資源都是一個明智的想法。在具有眾多測試、暫存和開發(fā)環(huán)境的Kubernetes環(huán)境中,一些服務(wù)必然會被忽略。即使不使用這些服務(wù),它們也一直成為用戶的長期負(fù)擔(dān)。應(yīng)使用標(biāo)記來確保所有服務(wù)均受到控制。
AWS公司為此提供了一種強(qiáng)大的標(biāo)記方案,可用于標(biāo)記屬于Kubernetes的服務(wù)。其用戶可以使用這些標(biāo)記來停留在資源、資源持有者和資源使用率之上。有效的標(biāo)記使用戶可以輕松地分類和消除未使用的服務(wù)。一旦AWS計費(fèi)儀表板中啟用了這些標(biāo)記,用戶將能夠分配成本,并查看各種服務(wù)的費(fèi)用明細(xì)。
Kubernetes成本優(yōu)化的第一步是開始進(jìn)行監(jiān)視。然后,為避免使用不必要的計算資源,用戶可以設(shè)置資源限制,這將使成本更易于管理。
確定資源的最佳規(guī)模對于降低成本至關(guān)重要,自動擴(kuò)展也將有助于實(shí)現(xiàn)。如果使用AWS公司的服務(wù),用戶可以采用成本更低的選項,例如競價型實(shí)例。刪除空閑資源的其他步驟包括自動休眠計劃和清理未使用的Kubernetes資源。最后,用戶可以調(diào)整Pod大小,實(shí)現(xiàn)資源標(biāo)記,以更好地優(yōu)化Kubernetes成本。
將這些技巧整合到用戶的流程中將會構(gòu)建成本優(yōu)化的Kubernetes系統(tǒng)。這將為用戶更關(guān)鍵的業(yè)務(wù)運(yùn)營和產(chǎn)品改進(jìn)節(jié)省更多的成本。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流