實(shí)現(xiàn)Kubernetes可觀測(cè)性的三種優(yōu)秀工具
適當(dāng)管理和實(shí)現(xiàn)的可觀測(cè)性系統(tǒng)為 DevOps 提供了可用于調(diào)試和修復(fù)復(fù)雜系統(tǒng)的細(xì)粒度見解??捎^測(cè)性將監(jiān)視、警報(bào)和日志與度量可視化及其分析結(jié)合在一起。
它允許開發(fā)團(tuán)隊(duì)對(duì) Kubernetes 集群和應(yīng)用程序的實(shí)時(shí)性能進(jìn)行詳細(xì)的了解,以便他們能夠及時(shí)和知情地采取行動(dòng)。這里,在這個(gè)博客中,我們討論了三個(gè)實(shí)現(xiàn) Kubernetes 可觀測(cè)性的重要工具。我們來看看!
繁榮時(shí)期的Kubernetes
今天,容器和微服務(wù)正在成為靈活的混合云戰(zhàn)略的基石。Kubernetes 徹底改革了跨公共云和私有數(shù)據(jù)中心的容器的部署和生命周期管理。它的影響是如此深遠(yuǎn),以至于最初,Kubernetes 被認(rèn)為是軟件生命周期管理的“全部和最終”。
Kubernetes 的活力本質(zhì)
然而,事情已經(jīng)發(fā)生了變化。既然最初圍繞 Kubernetes 的業(yè)內(nèi)“炒作”已有所平息,那么很明顯,Kubernetes的采用可能會(huì)是一場艱難的爭吵??紤]微服務(wù)和容器是云本地難題的一個(gè)關(guān)鍵部分。另一部分也是利用其所有好處必須解決的問題。組織必須了解這些系統(tǒng)是如何整體工作的,然后才能開始云計(jì)算本地化的旅程。
Kubernetes,由于其動(dòng)態(tài)的性質(zhì),是不可預(yù)測(cè)的。盡管付出了最大的努力,但這類系統(tǒng)中的故障和性能瓶頸是不可避免的,而且可能難以分離。在如此復(fù)雜的環(huán)境中,深入了解企業(yè)應(yīng)用程序的行為對(duì)于立即解決錯(cuò)誤和問題以實(shí)現(xiàn)無縫和快速的應(yīng)用程序交付至關(guān)重要。但是,更大的挑戰(zhàn)是如何監(jiān)視 Kubernetes 集群及其組件。
可觀測(cè)性的重要性——三大支柱
IT 決策者和技術(shù)戰(zhàn)略家認(rèn)為,可觀測(cè)性在軟件開發(fā)生命周期的規(guī)劃和操作階段起著重要作用??捎^測(cè)性的三個(gè)支柱ーー度量、日志記錄和跟蹤,不僅幫助團(tuán)隊(duì)在 Kubernetes 環(huán)境中獲得可觀測(cè)性,而且讓他們深入了解底層基礎(chǔ)設(shè)施,而不管使用的是什么技術(shù)組合。
根據(jù) New Relic 的2021年可觀測(cè)性預(yù)測(cè)報(bào)告,83% 的企業(yè)同意最好的 Kubernetes 可觀測(cè)性策略的核心是部署一個(gè)能夠自動(dòng)收集和關(guān)聯(lián)所有可用來源的可觀測(cè)性數(shù)據(jù)的解決方案。這概述了企業(yè)需要一種非侵入性的、無摩擦的方法來跟蹤可觀察性,以管理云原生堆棧。
下面是三個(gè)重要的 Kubernetes 可觀測(cè)性工具,它們已經(jīng)成為云本地社區(qū)中企業(yè)的事實(shí)上的行業(yè)標(biāo)準(zhǔn)。這些 Kubernetes 監(jiān)控工具的實(shí)現(xiàn)將使 DevOps 和 SRE 團(tuán)隊(duì)完全了解維護(hù) Kubernetes 環(huán)境所需的集群組件。
Prometheus-可觀測(cè)性數(shù)據(jù)的自動(dòng)收集和存儲(chǔ)
Prometheus是一個(gè)開源的監(jiān)控和警報(bào)工具,可以深入了解系統(tǒng)的性能。它是一個(gè)本地云時(shí)間序列數(shù)據(jù)存儲(chǔ),具有內(nèi)置的度量查詢語言。該工具內(nèi)置了對(duì) Kubernetes 和容器的支持。它可以很容易地運(yùn)行在 Kubernetes 使用Kubernetes運(yùn)營商或在一個(gè)獨(dú)立的模式。
Prometheus exports 使用將第三方數(shù)據(jù)帶入其數(shù)據(jù)存儲(chǔ)。 有大量的ready-to-use exporters 維持作為Prometheus一部分. 他們包含:
- -Elasticsearch stats exporter for Prometheus,
- -the Exporter for MySQL server metrics,
- -and the Kafka exporter for Prometheus.
Prometheus從 Kubernetes 的Kubernetes nodes, containers, pods, services和在 Kubernetes 運(yùn)行的用戶應(yīng)用程序中獲取指標(biāo)。為了允許 Prometheus 從應(yīng)用程序中獲取指標(biāo),開發(fā)人員需要在指標(biāo)端點(diǎn)通過 HTTP 公開指標(biāo)。Prometheus使用高效的 PromQL 查詢語言,集成了主要的數(shù)據(jù)庫和度量收集器代理,如 Elasticsearch 和 Metricbeat。
在某些情況下,團(tuán)隊(duì)需要監(jiān)視不能報(bào)廢的組件。使用作為Prometheus組件的Prometheus推送網(wǎng)關(guān),團(tuán)隊(duì)可以收集極其簡短工作的指標(biāo),并將時(shí)間序列直接推送到Prometheus數(shù)據(jù)存儲(chǔ)中。
Prometheus由連鎖部件組成
- Prometheus Server: 它充當(dāng)系統(tǒng)的“大腦”,收集各種指標(biāo),并將它們存儲(chǔ)在時(shí)間序列數(shù)據(jù)庫中。
- Prometheus Client libraries: 它們通過以Prometheus可以理解的格式發(fā)送度量和數(shù)據(jù)來幫助用戶集成他們構(gòu)建的服務(wù)。
- Prometheus Alertmanager: 當(dāng)工具檢測(cè)到異常和性能問題時(shí),這個(gè) Prometheus 組件向指定用戶發(fā)送警報(bào)和通知。
- Prometheus Visualization tools: 這些工具有助于以人類可讀的格式顯示指標(biāo)和數(shù)據(jù)。用戶還可以將Prometheus與 Grafana 集成,Grafana 是一個(gè)用于分析和數(shù)據(jù)可視化的開源 web 應(yīng)用程序。
使用 Prometheus 收集數(shù)據(jù)可以幫助 DevOps 團(tuán)隊(duì)獲得關(guān)于 Kubernetes 集群中運(yùn)行的完整基礎(chǔ)設(shè)施和容器的詳細(xì)見解。為了確保 Kubernetes 集群在生產(chǎn)中的高效性能,產(chǎn)品團(tuán)隊(duì)必須實(shí)時(shí)了解各種指標(biāo),這些指標(biāo)可以說明各種問題,如內(nèi)存或存儲(chǔ)短缺、節(jié)點(diǎn)、網(wǎng)絡(luò)健康狀況、應(yīng)用程序錯(cuò)誤等。通過提供應(yīng)用程序組件使用情況的深入可見性,這個(gè) K8監(jiān)視工具有助于跟蹤應(yīng)用程序的性能,以識(shí)別瓶頸和消除瓶頸的方法。
Grafana—可視化觀測(cè)數(shù)據(jù)
有時(shí),原始指標(biāo)(尚未處理的數(shù)據(jù))不能最好地服務(wù)于可觀測(cè)性數(shù)據(jù)的可視化。原因在于,它們往往由時(shí)間序列和基于文本的數(shù)據(jù)組成,其中包含成千上萬的事件,這些事件是人類無法解決的。
Grafana 是一個(gè)易于在 Kubernetes 部署的可觀測(cè)性平臺(tái),它通過處理原始指標(biāo)來幫助解決這個(gè)問題。根據(jù) Grafana 文檔,這個(gè)工具“允許團(tuán)隊(duì)查詢、可視化、提醒和理解度量,無論它們存儲(chǔ)在哪里?!盙rafana 通過其官方和社區(qū)構(gòu)建的儀表板管理和執(zhí)行所有這些。這些儀表板可以下載并導(dǎo)入 Grafana 實(shí)例。
Grafana 是一個(gè)強(qiáng)大的數(shù)據(jù)可視化和分析工具,支持警報(bào)和通知。該工具集成了主要的時(shí)間序列數(shù)據(jù)庫(普羅米修斯、流感數(shù)據(jù)庫)、彈性搜索、 SQL 數(shù)據(jù)庫、云監(jiān)控服務(wù)等等。它通過指標(biāo)聚合和強(qiáng)大的儀表板運(yùn)作,使得庫伯內(nèi)特的可觀測(cè)性成為一項(xiàng)一帆風(fēng)順的任務(wù)。您可以在這里了解更多關(guān)于 Grafana、其組件以及如何監(jiān)視 Kubernetes 集群的信息!
用于集群監(jiān)視的 Kubernetes 儀表板
BuildPiper-全面了解 Kubernetes 集群
BuildPiper 是一個(gè) Kubernetes & Microservices 應(yīng)用程序交付平臺(tái),提供360度的 Kubernetes 集群視圖。通過 BuildPiper,可見性和庫伯內(nèi)特集群的異常檢測(cè)被重新構(gòu)想,以便在幾個(gè)簡單的點(diǎn)擊中給團(tuán)隊(duì)提供深入的分析。這個(gè) Kubernetes 監(jiān)控工具有一個(gè) Service Overview Dashboard,它使 DevOps 團(tuán)隊(duì)能夠查看和觀察構(gòu)建和部署的細(xì)節(jié),還有一個(gè) Service Kubernetes Dashboard,它提供深入的集群可觀察性能力,以監(jiān)控性能、健康狀態(tài)、 CPU 和內(nèi)存分配、節(jié)點(diǎn)可用性、日志和其他重要指標(biāo)。
提供的360度視圖清楚地展示了集群組件的性能、健康狀態(tài)、可用性和功能。它提供完整的節(jié)點(diǎn)可見性,以便能夠查看節(jié)點(diǎn)的健康狀態(tài)。豆莢健康特性顯示了容器的實(shí)時(shí)健康狀態(tài),突出顯示了環(huán)境變量和 K8s 集群中豆莢的體積安裝。此外,團(tuán)隊(duì)可以借助這個(gè)監(jiān)視工具跟蹤 Kubernetes 集群的 NameSpaces、 Inress 和其他 K8s 資產(chǎn)的實(shí)時(shí)狀態(tài)。
只有管理和監(jiān)控得當(dāng),Kubernetes才是強(qiáng)大的
由于 Kubernetes 的短暫和不斷變化的性質(zhì),一個(gè)庫伯內(nèi)特監(jiān)測(cè)系統(tǒng)要求能夠自動(dòng)識(shí)別變化,并不斷監(jiān)測(cè)事件,日志,豆莢健康狀態(tài),以及更多的沒有任何中斷。探索如何監(jiān)視 Kubernetes 集群的解決方案,了解關(guān)于查找錯(cuò)誤、掃描集群健康狀態(tài)以及找到解決這些問題的方法的度量標(biāo)準(zhǔn),是企業(yè)經(jīng)常面臨的一些常見問題。因此,在選擇 Kubernetes 部署平臺(tái)或 Kubernetes 監(jiān)控工具時(shí),重要的是,您選擇的解決方案能夠跟蹤這些指標(biāo),并給出集群內(nèi)部正在發(fā)生的事情的清晰圖像,從而實(shí)現(xiàn)無麻煩的 Kubernetes 部署。