新聞中心
管理Kubernetes資源要注意的五件事!
作者:黃豪杰 翻譯 2022-09-29 08:03:20
云計算
云原生 ?Kubernetes自動化了許多大規(guī)模管理容器的工作。但是容器化的應用程序通常共享池化的資源,因此您需要正確地分配和管理它們。

渭源網站制作公司哪家好,找創(chuàng)新互聯(lián)!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、成都響應式網站建設公司等網站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創(chuàng)新互聯(lián)。
?Kubernetes自動化了許多大規(guī)模管理容器的工作。但是容器化的應用程序通常共享池化的資源,因此您需要正確地分配和管理它們。
容器編排為IT團隊提供了強大的承諾:它可以自動處理大量管理容器所需的大量工作。
想想Kubernetes (K8s)在項目官方網站上自我描述的強大功能:“Kubernetes (K8s)是一個用于自動化部署、擴展和管理容器化應用程序的開源系統(tǒng)?!?/p>
這非常重要——特別是當您談論的團隊正在運行許多容器化應用程序時。雖然像Kubernetes這樣的編配器本身的自動化,被廣泛認為是在生產環(huán)境中運行容器的必要條件,但這并不意味著IT專業(yè)人員可以放松下來。
還有很多工作要做,包括設置和優(yōu)化集群上運行的應用程序的資源管理方式。
為什么需要管理Kubernetes資源
Altran的技術、研究和創(chuàng)新總監(jiān)Raghu Kishore Vempati說:“Kubernetes為計劃在其上運行的pods提供了管理所有關鍵資源的選項——比如計算、內存和存儲?!奔簺]有無限的資源,通常情況下,每個應用程序/解決方案都有自己的Kubernetes集群并不常見,除非它們非常特殊并且應該以這種方式運行。
這意味著應用程序通常共享集合的資源。分配這些資源的“正確”方式會因組織和應用程序的不同而不同,但好消息是Kubernetes包含了許多用于資源管理的特性。
Kasten的工程主管Tom Manville說:“Kubernetes可以部署在任何地方,但這意味著所需的基礎設施將是您的環(huán)境所特有的?!薄爸匾氖且私饽愕沫h(huán)境中需要的資源,并適當地分配它們。隨著集群的擴展,基礎設施也必須擴展。幸運的是,擴展集群的規(guī)模很容易,而且在很多情況下,這可以自動發(fā)生?!?/p>
管理Kubernetes資源: 要知道的5個關鍵事情
Vempati指出,Kubernetes環(huán)境中的計算或存儲等資源的管理可以大致分為兩類:Kubernetes在系統(tǒng)級提供的資源,以及需要在應用程序和體系結構級進行規(guī)劃的資源。這篇文章將主要關注前一類的功能。
讓我們深入了解五件重要的事情。?
1.使用命名空間和資源配額
Vempati指出,團隊通常在同一個集群上運行多個應用程序。對于這種類型的使用,Vempati和其他專家通常建議在多租戶環(huán)境中使用命名空間作為隔離和其他目的的最佳實踐。類似地,當多個團隊或多個用戶訪問同一個集群時(有時會同時運行多個應用程序),也建議使用命名空間。命名空間也是Kubernetes安全性的一部分。
當您在這些多應用程序、多用戶環(huán)境中使用名稱空間時,Vempati還建議使用Kubernetes的本地資源配額特性,以確保在分配給這些名稱空間的應用程序和團隊之間正確地分配內容。
“資源配額允許集群管理員控制每個命名空間的總體資源消耗,”Vempati說。這可以包括每個命名空間可以創(chuàng)建的對象的總數——計算、內存和存儲。例如,我們可以在非終端狀態(tài)下對所有pods設置CPU限制或內存限制,不超過某個值?!?/p>
來自Kasten的Manville指出,CPU和內存通常是管理員使用資源配額進行約束的最常見資源,但是您也可以限制名稱空間中的pod數量。可以這樣說,資源配額是一個重要的管理工具。
Vempati說:“基于配額的管理允許集群管理員有效地管理整體資源,以最合適的方式將它們分配給所有的應用程序?!?/p>
2.使用限制范圍
資源配額用于在名稱空間級別管理資源消耗。換句話說,一旦設置,它們將應用于整個命名空間。限制范圍具有類似目的,但會限制單個容器或容器級別的資源消耗。
“Kubernetes為管理員提供了強大的原語,以控制應用程序消耗的資源”Manville說。“管理員可以配置限制范圍,以限制開發(fā)人員的資源請求,并創(chuàng)建資源配額以限制命名空間中消耗的資源總數?!?/p>
考慮這些相關功能之間的區(qū)別的另一種方式是:可以使用名稱空間和資源配額來確保應用程序或團隊不會占用集群的總體池資源的必要份額。限制范圍有助于防止單個pod或容器占用分配給特定名稱空間的大部分資源的情況。
3.設置網絡策略
Kubernetes還具有有關網絡的本地特性,包括pods如何相互通信(或被阻止通信)。Vempati建議使用網絡策略。
Vempati說:“對于網絡,Kubernetes允許一個選項來設置網絡策略,該策略可以幫助指定集群上調度的各個pods如何與其他節(jié)點以及同一集群上的其他端點通信?!薄袄纾覀兛梢詾閜ods設定進出交通規(guī)則?!?這也是整體的、分層的容器安全方法的一部分。
4.如果適用,請不要忘記存儲
存儲值得自己深入研究。就像管理員可以對CPU和內存有非常特定的控制一樣,相同的原理也適用于存儲。
“Kubernetes幫助設定了非常細粒度的限制,”Vempati說。因此,在一個給定的名稱空間中,您可以設置一個可以存在于該名稱空間中的PersistentVolumeClaims的數量限制。
Red Hat的技術專員Gordon Haff將持久卷(PV)描述為有效 管理的最重要的Kubernetes資源之一。
Haff說:“配置不綁定到臨時容器映像的存儲的能力是Kubernetes的關鍵創(chuàng)新之一,它將Kubernetes與一些早期的基于容器的平臺即服務(PaaS)產品區(qū)分開來?!薄叭绻麤]有持久存儲,你的應用架構就會局限于特定的樣式。
Haff指出,Kubernetes中的PV是作為插件實現的,其生命周期與使用PV的任何單個Pod無關。PersistentVolumeClaim本質上是用戶的存儲請求,Haff補充說,它進一步抽象了PV的細節(jié)。
“ Kubernetes是按這種方式設計的,因為用戶通常需要具有不同屬性(例如性能)的PV來解決不同的問題和工作負載,” Haff解釋說。“不同類型的PV也具有不同類型的訪問模式。”
因此,這涉及到Vempati上面描述的第二類資源管理:應用程序和體系結構級別的資源規(guī)劃。Haff指出,存儲是一開始就需要評估的東西。
Haff說:“管理Kubernetes資源的一個重要部分是預先計劃是否首先需要持久性存儲(比如數據庫),如果需要,那么哪個卷插件最適合您的工作負載和計算環(huán)境?!?/p>
談到數據庫,Crunchy Data的平臺工程副總裁Jonathan Katz說,有狀態(tài)應用程序為資源管理引入了一些額外的細微差別。“例如,內存是一個重要的PostgreSQL可調資源,”Katz說。在Kubernetes操作符的PostreqSQL背后隱藏著復雜的數據。
Katz解釋說:“將你的內存請求設置為你想要長期使用的實際內存值是很重要的,而不是設置一個較低的請求和較高的限制?!薄斑@將確保你的PostgreSQL實例被調度到一個有足夠資源的節(jié)點,因為更多的數據被緩存在內存中,并且限制了事件的風險,比如驅逐或者被OOM殺手訪問?!?/p>
5.保持整潔:API對象和監(jiān)控
“如果您的任何應用程序直接使用Kubernetes API,請確保自動清理API對象,”Manville說。大量未使用的API對象會降低集群的性能。更糟糕的是,這些對象有時會映射到閑置的基礎設施,這可能會增加不必要的成本?!?/p>
通常,有效的資源管理要求團隊和管理員能夠看到正在發(fā)生的事情。因此,不要忘記監(jiān)視并確保密切關注集群之間的資源使用情況。
“這將幫助您更好地了解集群正在使用的資源,在集群接近容量時提醒您,并且在某些情況下,讓Kubernetes自動伸縮,”Manville說。
*原文鏈接:https://enterprisersproject.com/article/2020/8/managing-kubernetes-resources-5-things-remember?
網頁標題:管理Kubernetes資源要注意的五件事!
網頁URL:http://www.5511xx.com/article/dppdcio.html


咨詢
建站咨詢
