自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

把K8s做到可觀測,都需要哪些選型?

原創(chuàng)
開發(fā)
K8s對于當(dāng)下的大規(guī)模應(yīng)用的技術(shù)架構(gòu)的重要性不言而喻。而K8s的可觀測性(監(jiān)控)工具目前也成為了開發(fā)運維團(tuán)隊繞不過去的一道門檻。

作者 | 云昭

可觀測對于微服務(wù)盛行的年代來講,十分必要。成千上萬的微服務(wù)給開發(fā)和運維團(tuán)隊帶來了指數(shù)級的維護(hù)成本。要解決這個難題,就勢必引入高效的監(jiān)控工具來輔助技術(shù)管理和決策。而K8s作為當(dāng)下微服務(wù)領(lǐng)域的一個熱門選手,如何有效選擇和部署監(jiān)控K8s集群工具就成為了一個大家共同關(guān)注的話題。

問題

在K8s環(huán)境中,應(yīng)用程序運行在跨集群內(nèi)的多個節(jié)點,同時服務(wù)也將分布在多個集群和多個云中,這就使得追蹤、監(jiān)控這些應(yīng)用程序及其所依賴的基礎(chǔ)設(shè)施的健康狀況,非常具有挑戰(zhàn)性。K8s監(jiān)控涉及從K8s集群收集指標(biāo)、識別關(guān)鍵事件,目的是確保所有硬件、軟件和應(yīng)用程序按預(yù)期運行。因此,將指標(biāo)集中匯總在一個中心位置,將有效幫助開發(fā)者了解和維護(hù)整個 K8s隊列以及在其上運行的應(yīng)用或服務(wù)的健康狀況。而要做到全方位監(jiān)控非常困難,其中的兩個難點在于:1、容器化和K8s創(chuàng)建的抽象層之間的監(jiān)控;2、K8s環(huán)境中運行的應(yīng)用程序的動態(tài)特性之間的監(jiān)控。

這篇文章探討了一些不錯的K8s監(jiān)控和日志工具,包括用于監(jiān)控的Prometheus和用于可視化和儀表板的Grafana等。

K8s可觀測工具

目前業(yè)界流行的用于K8s容器監(jiān)控的開源工具并不少,比較常見的有:Prometheus、Grafana、Elasticsearch、Thanos等。

1. Prometheus

Prometheus是一個開源系統(tǒng)監(jiān)控和警報工具包,最初在 SoundCloud 構(gòu)建,靈感來自 Google 使用的 Borgmon 工具。自 2012 年成立以來,許多公司和組織都采用了 Prometheus,該項目擁有非常活躍的開發(fā)者和用戶社區(qū)。Prometheus 于 2016 年加入云原生計算基金會,成為繼K8s之后的第二個托管項目。

雖然本文在K8s監(jiān)控的背景下討論 Prometheus,但它可以滿足各種各樣的監(jiān)控需求,比如幫助簡化指標(biāo)收集、關(guān)聯(lián)事件和警報、提供安全性以及進(jìn)行大規(guī)模故障排除和跟蹤。

Prometheus的主要功能之一就是指標(biāo)收集,這里的指標(biāo)是什么?這要根據(jù)用戶想要測量的內(nèi)容或應(yīng)用程序而異。對于 Web 服務(wù)器,它可能是請求時間,對于數(shù)據(jù)庫,它可能是活動連接數(shù)或活動查詢數(shù)等。Prometheus收集并存儲用戶指定的指標(biāo)作為時間序列數(shù)據(jù)??梢苑治鲋笜?biāo)以了解集群及其組件的運行狀態(tài)。

Prometheus的可靠性非常出色。這有助于確保在用戶的環(huán)境中出現(xiàn)其他問題時,Prometheus仍然可以訪問。每個Prometheus服務(wù)器都是獨立的。本地時間序列數(shù)據(jù)庫使其獨立于遠(yuǎn)程存儲或其他遠(yuǎn)程服務(wù)。這有助于快速識別問題并接收有關(guān)受監(jiān)控集群和應(yīng)用程序系統(tǒng)性能的實時反饋。

Prometheus的主要組件,包括Prometheus服務(wù)器和Alertmanager,整體架構(gòu)如下圖所示。雖然Prometheus提供了 Web UI,但它通常與Grafana結(jié)合使用以實現(xiàn)更靈活的可視化。

2. Grafana

Grafana是一個完全托管的應(yīng)用程序和基礎(chǔ)設(shè)施可視化平臺,可與Prometheus等監(jiān)控軟件配合使用。Prometheus和Grafana的組合正在成為 devops 團(tuán)隊用于存儲和可視化時間序列數(shù)據(jù)的越來越常見的監(jiān)控堆棧。Prometheus作為存儲后端,Prafana作為分析和可視化的接口。

3. Thanos

Thanos作為度量(Metric)系統(tǒng),它提供了一種簡單且經(jīng)濟(jì)高效的方式來集中和擴(kuò)展基于Prometheus的監(jiān)控系統(tǒng)。

4. Elasticsearch(ES)

Elasticsearch是一個分布式、RESTful風(fēng)格的搜索和數(shù)據(jù)分析引擎。它幾乎適用于所有數(shù)據(jù)類型:數(shù)字、文本、地理位置、結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)等。

5. Logstash

Logstash是一個開源的服務(wù)器端數(shù)據(jù)處理管道,可同時從多個來源獲取數(shù)據(jù),并對其進(jìn)行轉(zhuǎn)換,然后將其發(fā)送到合適的存儲區(qū)。

圖片

6. Kibana

Kibana提供了 Elasticsearch 數(shù)據(jù)進(jìn)行可視化的免費開放的用戶界面,并允許用戶在Elastic Stack中進(jìn)行導(dǎo)航。它提供了一種數(shù)據(jù)可視化和探索工具,用于日志和時間序列分析、應(yīng)用程序監(jiān)控和運營智能用例。從跟蹤查詢負(fù)載,到理解請求在整個應(yīng)用的運轉(zhuǎn),都能有效完成。

圖片

許多團(tuán)隊單獨或組合使用這些監(jiān)控和日志記錄工具來創(chuàng)建自己的解決方案并解決特定的容器監(jiān)控和K8s應(yīng)用程序監(jiān)控需求。目前市面上比較流行的K8s監(jiān)控工具組合大體上可以分為兩種:Prometheus+Grafana,Elasticsearch+Logstash+Kibana。后者通常被稱為ELK堆?;駿lastic Stack,目前這套組合是免費和開源的。

注意事項 

無論是單獨部署還是組合部署,監(jiān)控工具的使用都必然會帶來一定的復(fù)雜性,尤其當(dāng)遇到情況復(fù)雜的K8s集群時——可能在不同的云環(huán)境中運行不同的K8s發(fā)行版,難度將陡然增加。一般來說,需要注意以下幾點:

1. Prometheus單獨配置不適用于大規(guī)模場景

由于應(yīng)用程序載入問題、手動配置門檻較高、配置不同步,大規(guī)模的Prometheus配置管理會給開發(fā)運維團(tuán)隊帶來十分艱巨的挑戰(zhàn)。舉個例子,截至 2019 年底,Uber 的工作負(fù)載已增長到 4,000 多個微服務(wù)。要管理和操作此類復(fù)雜的應(yīng)用程序,技術(shù)團(tuán)隊需要更加高級的可觀測性,這需要為每個應(yīng)用程序進(jìn)行抓取、儀表板和警報的專用配置。而創(chuàng)建這些配置,并將它們應(yīng)用到每個環(huán)境——通常是手動完成,并且每次發(fā)生變化時都以臨時方式完成,這對于一家起來說是難以承擔(dān)的。

2. Prometheus和Grafana在多集群環(huán)境中適用性有限制

雖然Prometheus和Grafana可以很好地協(xié)同用于單個集群,但在多集群環(huán)境中,用戶可能必須將Thanos添加到用戶的工具集中以聚合數(shù)據(jù)并提供長期存儲和全局視圖。用戶仍然可能面臨數(shù)據(jù)保留和HA(高可用性)的限制,導(dǎo)致一些人更喜歡 ELK 堆棧?;谶@種多集群的復(fù)雜性,許多公司團(tuán)隊更喜歡使用 Datadog、Cloudwatch 和 New Relic 等商業(yè)解決方案將監(jiān)控作為服務(wù)。 

寫在最后 

K8s對于當(dāng)下的大規(guī)模應(yīng)用的技術(shù)架構(gòu)的重要性不言而喻。而K8s的可觀測性(監(jiān)控)工具目前也成為了開發(fā)運維團(tuán)隊繞不過去的一道門檻。不管是Prometheus、Grafana 還是ELK,這些工具在業(yè)務(wù)中已經(jīng)得到了不錯的性能驗證,希望本文可以給大家到來一些有益的思考。

參考資料:

https://dzone.com/articles/kubernetes-monitoring-with-prometheus

https://prometheus.io/docs/

責(zé)任編輯:薛彥澤 來源: 51CTO
相關(guān)推薦

2021-04-29 08:43:17

k8s可觀測性Metrics

2023-08-07 08:27:43

混合云K8S容器

2022-12-06 07:30:12

K8s云原生生態(tài)系統(tǒng)

2023-07-26 00:12:04

2023-02-06 07:47:23

2022-08-15 09:49:28

K8s云原生

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2022-04-26 10:36:34

監(jiān)控設(shè)計技術(shù)

2023-02-14 08:01:42

2022-12-27 14:18:45

K8S命令

2023-12-05 18:16:59

LTS版本K8s

2023-11-06 07:16:22

WasmK8s模塊

2022-02-07 08:42:28

k8sdocker命令

2025-01-07 14:36:12

2022-09-07 09:22:36

SpringBootWeb

2023-12-20 08:13:54

K8S監(jiān)控管理

2023-09-06 08:12:04

k8s云原生

2020-09-01 10:40:11

K8SDocker開源

2024-09-26 18:04:02

2022-06-07 13:48:25

可觀測性架構(gòu)系統(tǒng)開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號