新聞中心
十大Kubernetes開(kāi)源監(jiān)控工具
譯文
作者:陳峻編譯 2019-11-01 09:00:00
開(kāi)源
云計(jì)算 在本文中,我們將通過(guò)優(yōu)缺點(diǎn)的比較,向您介紹十大流行的Kubernetes開(kāi)源監(jiān)控工具。

【51CTO.com快譯】如今,Kubernetes在GitHub上已經(jīng)擁有了超過(guò)58000萬(wàn)顆點(diǎn)贊之星,而且它在全球范圍內(nèi)有著2200多名在冊(cè)的貢獻(xiàn)者??梢哉f(shuō),它已然成為了容器編排方面的實(shí)際標(biāo)準(zhǔn)。不過(guò),在解決并運(yùn)行分布式微服務(wù)應(yīng)用的過(guò)程中,它時(shí)常也會(huì)面臨一些嚴(yán)峻的挑戰(zhàn)。其中,廣為開(kāi)發(fā)與運(yùn)維人員所提及的挑戰(zhàn)之一便是:對(duì)于Kubernetes的監(jiān)控問(wèn)題。面對(duì)復(fù)雜的分布式環(huán)境,大家往往需要通過(guò)開(kāi)發(fā)各種開(kāi)源的監(jiān)控方案,以滿(mǎn)足實(shí)際應(yīng)用的需求。
當(dāng)前,在Kubernetes生態(tài)系統(tǒng)及其社區(qū)中,有著林林總總的Kubernetes工具。它們中有的能夠通過(guò)日志來(lái)輔助檢測(cè)狀態(tài);有的則是一種數(shù)據(jù)收集器;而另一些則提供了操作Kubernetes的界面。有些是Kubernetes原生的,有些則是開(kāi)發(fā)人員自行研發(fā)的。在本文中,我們將通過(guò)優(yōu)缺點(diǎn)的比較,向您介紹十大流行的Kubernetes開(kāi)源監(jiān)控工具。
Prometheus
優(yōu)點(diǎn):Kubernetes原生,易于使用,擁有龐大的社區(qū)。
缺點(diǎn):可擴(kuò)展性與存儲(chǔ)能力不強(qiáng)。
由于具有與大量數(shù)據(jù)源的集成能力,因此Grafana在業(yè)界備受歡迎。同時(shí),強(qiáng)大的Grafana具有警報(bào)、注釋、過(guò)濾、特定數(shù)據(jù)源查詢(xún)、可視化儀表板、身份驗(yàn)證與授權(quán)、以及跨組織協(xié)作等多種功能。
優(yōu)點(diǎn):擁有大型生態(tài)系統(tǒng),以及豐富的可視化與警報(bào)功能。
缺點(diǎn):未能針對(duì)Kubernetes的日志管理進(jìn)行優(yōu)化。
ELK(ala Elastic Stack)
就Kubernetes的日志而言,最受歡迎的開(kāi)源解決方案當(dāng)屬ELK Stack。ELK是Elasticsearch、Logstash和Kibana的首字母縮寫(xiě),其實(shí)它包含了第四個(gè)組件:Beats。它們都屬于輕量級(jí)的數(shù)據(jù)傳送器。雖然堆棧中的每一個(gè)組件都僅負(fù)責(zé)日志管道中的不同階段,但是它們組合在一起,卻能為Kubernetes提供了一個(gè)全面而強(qiáng)大的日志解決方案。
其中,Logstash管道能夠在發(fā)送日志并對(duì)其進(jìn)行存儲(chǔ)之前,完成數(shù)據(jù)的匯總和處理。具有可擴(kuò)展性的Elasticsearch,即使在存儲(chǔ)和搜索數(shù)百萬(wàn)個(gè)文檔時(shí),也能具有不俗的表現(xiàn)。其對(duì)應(yīng)的Kibana平臺(tái),則能夠出色地為用戶(hù)提供分析數(shù)據(jù)所需的可視化界面。
堆棧中所有不同的組件都可以被輕松部署到Kubernetes環(huán)境之中。您可以使用各種部署配置、以及helm圖表,將不同的組件作為pod予以運(yùn)行。通過(guò)部署,我們可以將Metricbeat和Filebeat作為守護(hù)進(jìn)程的采集器,將Kubernetes的元數(shù)據(jù)附加到對(duì)應(yīng)的文檔中。
優(yōu)點(diǎn):擁有龐大的社區(qū),易于在Kubernetes中部署與使用,具有豐富的分析功能。
缺點(diǎn):擴(kuò)展起來(lái)較為麻煩。
Fluentd/Fluent Bit
Fluentd在Logstash的基礎(chǔ)上進(jìn)行了相關(guān)性能的改進(jìn),因此也廣受Kubernetes用戶(hù)的歡迎。在工具設(shè)計(jì)方面,F(xiàn)luentd擁有出色的性能、可擴(kuò)展性和可靠性。各種簡(jiǎn)單方便的輸入與輸出,并不會(huì)對(duì)其性能產(chǎn)生任何影響。針對(duì)處理傳輸中的故障、以及數(shù)據(jù)過(guò)載問(wèn)題,F(xiàn)luentd使用磁盤(pán)或內(nèi)存來(lái)進(jìn)行緩沖和隊(duì)列。同時(shí),F(xiàn)luentd通過(guò)支持多種配置選項(xiàng),以確保提供更為靈活的數(shù)據(jù)管道。
Kubernetes原生的Fluentd和Fluent Bit都隸屬于CNCF項(xiàng)目。它們不但可以與Kubernetes無(wú)縫集成,而且能夠在僅占用少量資源的情況下,使用相關(guān)的pod和容器元數(shù)據(jù)來(lái)豐富各類(lèi)數(shù)據(jù)。
優(yōu)點(diǎn):具有龐大的插件生態(tài)系統(tǒng),提供優(yōu)異的性能與可靠性。
缺點(diǎn):配置較為麻煩。
cAdvisor(https://github.com/google/cadvisor)
作為一款開(kāi)源的代理工具,cAdvisor能夠通過(guò)收集、處理和導(dǎo)出數(shù)據(jù),來(lái)展示那些正在運(yùn)行的容器性能,及其資源使用情況。它能夠以Kubelet二進(jìn)制文件的形式,被內(nèi)置集成到Kubernetes之中。
與其他代理工具不同,cAdvisor并不是被部署在每個(gè)pod中,而是在節(jié)點(diǎn)級(jí)別上。它能夠自動(dòng)發(fā)現(xiàn)計(jì)算機(jī)上所有正在運(yùn)行的容器,并收集到諸如內(nèi)存、CPU等系統(tǒng)網(wǎng)絡(luò)指標(biāo)。
作為一款基礎(chǔ)性的本地開(kāi)源監(jiān)視工具,cAdvisor具有易用性,用戶(hù)可以開(kāi)箱即用(out-of-the-box)的方式發(fā)現(xiàn)Prometheus的參數(shù)指標(biāo)。不過(guò),要想成為一款全方位的監(jiān)視解決方案,cAdvisor尚有持續(xù)改進(jìn)的空間。
優(yōu)點(diǎn):內(nèi)置于Kubernetes,易于部署和使用,能夠支持多個(gè)端點(diǎn)。
缺點(diǎn):過(guò)于基礎(chǔ),缺乏分析的深度,且功能有限。
kubewatch(https://github.com/bitnami-labs/kubewatch)
顧名思義, kubewatch能夠監(jiān)控那些特定的Kubernetes事件,并將此類(lèi)事件以通知的形式推送到諸如Slack和PagerDuty的端點(diǎn)上。具體而言,kubewatch能夠通過(guò)監(jiān)控,來(lái)獲悉Kubernetes指定資源的變化,其中包括:守護(hù)進(jìn)程集、部署、pod、副本集、復(fù)制控制器、服務(wù)、密碼、以及各種配置映射。Kubewatch不但易于配置,而且能夠使用helm來(lái)進(jìn)行自定義部署。
優(yōu)點(diǎn):支持多個(gè)端點(diǎn),且易于部署。
缺點(diǎn):只是一個(gè)監(jiān)控器。
kube-ops-view(https://github.com/hjacobs/kube-ops-view)
雖然kube-ops-view項(xiàng)目的官方文檔已明確指出:它不是一款監(jiān)控工具,不能對(duì)生產(chǎn)環(huán)境進(jìn)行監(jiān)控與報(bào)警。但是它可以為您提供Kubernetes集群、不同部署節(jié)點(diǎn)、以及節(jié)點(diǎn)上不同Pod的運(yùn)行狀態(tài)信息。
資料來(lái)源: GitHub
優(yōu)點(diǎn):易于部署與使用。
缺點(diǎn):作為只讀工具,不太適用于管理Kubernetes資源。
kube-state-metrics
作為一款Kubernetes的原生監(jiān)控指標(biāo)服務(wù),kube-state-metrics能夠偵聽(tīng)各種Kubernetes API,并能夠生成諸如Pod、服務(wù)、部署、以及節(jié)點(diǎn)等,有關(guān)對(duì)象的狀態(tài)指標(biāo)。您可以通過(guò)鏈接:https://github.com/kubernetes/kube-state-metrics/tree/master/docs,來(lái)獲悉kube-state-metrics能夠生成的完整指標(biāo)列表。
kube-state-metrics雖然極其簡(jiǎn)單易用,但是由于它只能提供單一的指標(biāo)服務(wù),因此需要更多的改進(jìn),才能集成到完整的Kubernetes監(jiān)控解決方案之中。kube-state-metrics能夠以純文本格式,導(dǎo)出HTTP端點(diǎn)上的指標(biāo)。那些使用Prometheus的用戶(hù)會(huì)經(jīng)常使用到它。
優(yōu)點(diǎn):屬于Kubernetes原生,易于使用,能與Prometheus無(wú)縫集成。
缺點(diǎn):僅提供單一的指標(biāo)生成服務(wù)。
Jaeger(https://github.com/jaegertracing/jaeger)
目前,分布式跟蹤正在逐漸成為針對(duì)Kubernetes環(huán)境監(jiān)視和故障排除的優(yōu)秀實(shí)踐方式。Jaeger正是此類(lèi)開(kāi)源跟蹤工具中的佼佼者。
2016年,Uber在其他現(xiàn)有跟蹤工具:Zipkin和Dapper的啟發(fā)下,開(kāi)發(fā)出了開(kāi)源式的Jaeger。它能夠幫助用戶(hù)執(zhí)行根本原因分析,性能優(yōu)化和分布式的事務(wù)監(jiān)控。
Jaeger具有適用于Go、Java、Node、Python和C++應(yīng)用程序的OpenTracing-based特征。它能夠根據(jù)每一個(gè)服務(wù)或端點(diǎn),來(lái)使用一致性的前端信息采樣頻率。同時(shí),它也支持Cassandra、Elasticsearch、Kafka、以及內(nèi)存等多種存儲(chǔ)后端模式。
Jaeger具有多種上手模式:用戶(hù)既可以使用全新的Jaeger Operator(https://www.jaegertracing.io/docs/1.13/operator/),也可以使用守護(hù)進(jìn)程來(lái)進(jìn)行配置,另外它還有一個(gè)適用于測(cè)試和演示目的的all-in-one部署方式。
優(yōu)點(diǎn):易于部署,且能夠通過(guò)用戶(hù)界面來(lái)檢測(cè)各種監(jiān)控選項(xiàng)。
缺點(diǎn):提供有限的后端集成。
Weave Scope
由Weaveworks開(kāi)發(fā)的監(jiān)視工具--Weave Scope,能夠讓您獲悉對(duì)于Kubernetes集群的操作洞見(jiàn)。
雖然和kube-ops-view有幾分類(lèi)似,但Weave Scope主要是通過(guò)更好的用戶(hù)界面,來(lái)提升服務(wù)等級(jí);并允許用戶(hù)在其界面上運(yùn)行各種診斷命令,來(lái)管理不同的容器。
圖片來(lái)源:GitHub
您可以通過(guò)該應(yīng)用工具,來(lái)有效地掌控部署環(huán)境,并在其上部署自己的基礎(chǔ)架構(gòu),以及不同的組件連接。
優(yōu)點(diǎn):提供了“零配置”式的用戶(hù)界面。
缺點(diǎn):其分析深度欠佳。
總結(jié)
上述所列舉的十大Kubernetes開(kāi)源工具,只是業(yè)界所有工具中的“冰山一角”。它們?cè)诓煌潭壬蠟橛脩?hù)提供了設(shè)計(jì)Kubernetes堆棧的可觀察性。您可以通過(guò)設(shè)置小型的沙箱環(huán)境,從小規(guī)模的測(cè)試開(kāi)始,進(jìn)行嘗試性的測(cè)試和部署,進(jìn)而判斷出哪一款才是您真正所需要的工具。
網(wǎng)站名稱(chēng):十大Kubernetes開(kāi)源監(jiān)控工具
文章出自:http://www.dlmjj.cn/article/ccosehj.html


咨詢(xún)
建站咨詢(xún)
