如何選擇正確的Kubernetes監(jiān)控工具
使用Kubernetes進(jìn)行應(yīng)用程序現(xiàn)代化的最大好處之一是,它能夠跨集群中的多個(gè)節(jié)點(diǎn)進(jìn)行操作,從而提供靈活性和可擴(kuò)展性。這樣做可以使應(yīng)用程序跨集群甚至云環(huán)境分布。雖然Kubernetes這一功能的好處遠(yuǎn)遠(yuǎn)超過(guò)了挑戰(zhàn),但它確實(shí)在跟蹤應(yīng)用程序和基礎(chǔ)設(shè)施的整體健康狀況方面造成了重大障礙。
在本文中,我們討論了一些當(dāng)今的最佳實(shí)踐及其相應(yīng)的解決方案,用于監(jiān)控Kubernetes,以確保獲得最大效率。
一、什么是Kubernetes監(jiān)控?
首先,讓我們從快速定義Kubernetes監(jiān)控開(kāi)始。在這種情況下,Kubernetes監(jiān)控意味著從集群中收集指標(biāo)和事件,以確保你的代碼、技術(shù)堆棧和所有應(yīng)用程序都在正常運(yùn)行。有效的監(jiān)控還需要將所有這些數(shù)據(jù)集中在一個(gè)位置,多個(gè)利益相關(guān)者可以從中獲得可操作的洞察。
由于運(yùn)行Kubernete和容器化應(yīng)用程序通常會(huì)帶來(lái)許多復(fù)雜的層,因此監(jiān)控、集中和分析這些數(shù)據(jù)的過(guò)程可能會(huì)很麻煩。然而,Kubernetes受歡迎程度的增長(zhǎng)與支持它的工具和服務(wù)的激增相對(duì)應(yīng),包括各種開(kāi)源和商業(yè)工具和平臺(tái),這些工具和平臺(tái)可以幫助實(shí)現(xiàn)有效的Kubernetes監(jiān)控。
讓我們首先來(lái)看一些最流行和最廣泛使用的Kubernetes監(jiān)控和日志記錄工具。
二、主要工具
1、Prometheus
Prometheus憑借其開(kāi)箱即用的事件監(jiān)控功能,成為Kubernetes粉絲的最愛(ài)。作為一個(gè)開(kāi)源工具,Prometheus為用戶提供了許多商業(yè)解決方案所沒(méi)有的靈活性和可定制性選項(xiàng)。它是市場(chǎng)上較為成熟的事件監(jiān)控和警報(bào)工具之一,早在2016年就加入了CNCF,成為繼Kubernetes之后的第二個(gè)托管項(xiàng)目。
2、Grafana
Grafana是另一個(gè)開(kāi)源平臺(tái),為Kubernetes監(jiān)控提供了許多強(qiáng)大的功能。Grafana作為度量分析和事件監(jiān)控以及可視化的工具而蓬勃發(fā)展。該工具與Prometheus等監(jiān)控軟件齊頭并進(jìn),形成了一個(gè)用于監(jiān)控和可視化的雙孔。通過(guò)部署這兩種工具,你可以深入了解Kubernetes實(shí)例。
3、Thanos
Thanos的目的是讓基于Prometheus的監(jiān)控系統(tǒng)集中化變得輕而易舉。雖然Prometheus確實(shí)是監(jiān)控Kubernetes的一個(gè)受歡迎的和功能強(qiáng)大的選擇,擴(kuò)展Prometheus是一個(gè)挑戰(zhàn)。Thanos是另一個(gè)開(kāi)源工具,可以幫助你將現(xiàn)有Prometheus部署轉(zhuǎn)換為統(tǒng)一的監(jiān)控系統(tǒng)。這對(duì)集中數(shù)據(jù)很有幫助。
4、Elasticsearch
Elasticsearch是一個(gè)恰如其名的搜索和分析引擎,其靈活性和規(guī)模使其成為與Kubernetes一起使用的最佳選擇。
5、Logstash
說(shuō)到集中數(shù)據(jù),Logstash是一個(gè)強(qiáng)大的選擇。它也是一個(gè)開(kāi)源工具,是一個(gè)服務(wù)器站點(diǎn)數(shù)據(jù)處理管道,它從各種來(lái)源獲取數(shù)據(jù),對(duì)其進(jìn)行轉(zhuǎn)換并記錄。
6、Kibana
如果數(shù)據(jù)不可操作,那它沒(méi)有什么好處。Kibana是一種數(shù)據(jù)可視化工具,用于日志和時(shí)間序列分析,以及監(jiān)控和智能。
三、選擇正確的工具
有了所有這些選擇,你如何為組織選擇合適的工具呢?如上所述,最終的選擇取決于組織的需求。在做出這些決定時(shí),重要的是不僅要考慮當(dāng)前的環(huán)境,還要考慮Kubernetes將來(lái)會(huì)是什么樣子。選擇一種隨著公司發(fā)展而擴(kuò)展的監(jiān)控方法,對(duì)于保持優(yōu)化的運(yùn)維并充分利用監(jiān)控和分析至關(guān)重要。
考慮到這一點(diǎn),事件和應(yīng)用程序監(jiān)控最流行的選擇之一是Promethues和Grafana的組合——Prometheus是從軟件和硬件來(lái)源收集時(shí)間序列數(shù)據(jù)的最常用工具之一,Grafana是一個(gè)用于將數(shù)據(jù)可視化為可操作內(nèi)容的強(qiáng)大工具。
然而,如上所述,由于應(yīng)用程序安裝、管理配置需求和漂移方面的障礙,隨著組織的發(fā)展,跨多個(gè)集群擴(kuò)展Prometheus可能成為一個(gè)挑戰(zhàn)。如果你的組織目前或最終將在多集群環(huán)境中運(yùn)行,那么Thanos就是一個(gè)強(qiáng)大的選擇。Thanos允許你聚合數(shù)據(jù)并提供長(zhǎng)期存儲(chǔ),這使得Prometheus和Grafana的組合更加靈活。
另一個(gè)很好的選擇,尤其是大規(guī)模的情況下,是將Elasticsearch與Kibana和Logstash相結(jié)合——通常稱為ELK堆?;駿lastic Stack。這創(chuàng)造了一種收集、組織、搜索和可視化數(shù)據(jù)的好方法,為Kubernetes集群提供端到端的監(jiān)控和可見(jiàn)性。
四、平臺(tái)方法是否帶來(lái)復(fù)雜性?
使用Kubernetes對(duì)IT組織進(jìn)行監(jiān)控的最大挑戰(zhàn)之一是預(yù)測(cè)未來(lái)的需求,并構(gòu)建一個(gè)解決方案,該解決方案將在現(xiàn)在和未來(lái)提供穩(wěn)定性和性能指標(biāo)。事實(shí)上,許多組織面臨著組合工具以創(chuàng)建滿足其需求的監(jiān)控堆棧的復(fù)雜性,他們決定采用商業(yè)解決方案,如Datadog、New Relic或Cloudwatch。這些解決方案提供了強(qiáng)大的監(jiān)控和可視化功能,但每種解決方案都有自己的優(yōu)缺點(diǎn)。那么,你如何知道選擇哪個(gè)選項(xiàng)將順應(yīng)組織的發(fā)展過(guò)程呢?
對(duì)于許多公司來(lái)說(shuō),答案是采取平臺(tái)方法。如今,有一些解決方案可以采用集中的方法進(jìn)行監(jiān)控,使組織在未來(lái)不再局限于或局限于一個(gè)或幾個(gè)工具。組織可以為不同的節(jié)點(diǎn)或集群部署不同的工具,以滿足應(yīng)用程序的特定需求,同時(shí)仍然可以將可見(jiàn)性集中到單個(gè)窗口中,用于跨組織應(yīng)用程序和基礎(chǔ)設(shè)施健康監(jiān)控。此外,通過(guò)采用基于角色的訪問(wèn)控制,你可以確保每個(gè)利益相關(guān)者獲得最相關(guān)的數(shù)據(jù)和信息,以將復(fù)雜性轉(zhuǎn)化為控制。
五、把它們放在一起
無(wú)論你決定采用按單點(diǎn)菜還是平臺(tái)方法來(lái)滿足Kubernetes監(jiān)控需求,你可以使用的選項(xiàng)和工具很多,并且它們的功能很強(qiáng)大。最重要的是獲得對(duì)應(yīng)用程序和系統(tǒng)的廣泛可見(jiàn)性。這樣你可以最大限度地利用Kubernetes,并為持續(xù)成功設(shè)置好IT。