Kubernetes 集羣和應用監控方案的設計與實踐(上)

語言: CN / TW / HK

(本文閲讀時間:4分鐘)

嚴振範

微軟最有價值專家,一個逗B,目前正在學習微服務相關的知識,可以多交流喲~

Kubernetes 監控

當你的應用部署到 Kubenetes 後,你很難看到容器內部發生了什麼,一旦容器死掉,裏面的數據可能就永遠無法恢復,甚至無法查看日誌以定位問題所在,何況一個應用可能存在很多個實例,用户的一個請求不指定被哪個容器處理了,這使得在 Kubernetes 中對應用進行故障排除較為複雜。在應用之外,由於 Kubernetes 作為基礎設施,掌管這整個集羣的生死,Kubernetes 的任何故障,必定影響到應用服務的運行,因此監控 Kubernetes 運行狀況也至關重要。

當你的應用上了雲原生,那你就不得不關注各個服務器的運行狀態,基礎設施和中間件的運行狀態,Kubernetes 中每個組件和資源對象的運行狀態,每個應用的運行狀態。當然,這個運行狀態是一個模糊的概念,取決於我們的關注點,每個被監控的對象要表達的 "運行狀態" 是不一樣的。為了可以監控我們關注的對象,對象需要做出一些配合,提供合適的運行狀態的表達信息,以供我們收集和分析,這可以稱為可觀測性。

在雲原生中,一般對可觀測性分為三大作用域:

你可以在 Kubernetes 文檔中瞭解如何監控、調試,以及瞭解如何對日誌進行處理。

在本文中,所提到的監控,只包括 Metrics 。

Metrics、Tracing、Logging 不是完全獨立的,在上圖中,Metrics 也會可能包含 Logging 和 Tracing 的信息。

要採集的監控數據,來源於被監控對象,而在 Kubernetes 集羣中,我們可以將要監控的對象分為三大部分:

在基礎環境中,一個完整的監控應包括採集數據、存儲數據、分析存儲數據、展示數據、告警等多個部分,而每個部分都有相關的工具或技術解決雲原生中環境的多樣需求和複雜性問題。

既然要做監控,那麼就需要監控工具。監控工具可以獲取所有重要的指標和日誌(Metrics也可以包含一些日誌),並將它們存儲在一個安全、集中的位置,以便可以隨時訪問它們來制定方案解決問題。由於在雲原生中,應用在 Kubernetes 集羣中部署,因此,監控 Kubernetes 可以讓你深入瞭解集羣的運行狀況和性能指標、資源計數以及集羣內部情況的頂級概覽。發生錯誤時,監控工具會提醒你(告警功能),以便你快速推出修復程序。

Prometheus 是一個 CNCF 項目,可以原生監控 Kubernetes、節點和 Prometheus 本身,目前 Kubernetes 官方文檔主要推薦使用 Prometheus 本身,它為 Kubernetes 容器編排平台提供開箱即用的監控能力。因此在本文中,對監控方案的設計是圍繞 Prometheus 展開的。

下面是 Prometheus 的一些組件介紹:

Prometheus 在 Kubernetes 中的監控方案結構如下:

【圖源:https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/】

要監控的對象種類很多,我們把相同類型的對象稱為一個實體,而每個實體運行時的對象產生的數據有各種各樣的,為了歸納收集這些數據, Prometheus 將實體中的各種屬性值分為 Counter (計數器)、Gauge (儀表盤)、Histogram(累積直方圖)、Summary(摘要)四種類型,實體中的每個屬性,稱為指標,例如 容器已累計使用 CPU 量,使用指標名稱 container_cpu_usage_seconds_total 記錄。

每個指標一般格式為:

每個對象都在無時無刻產生數據,為了區分當前指標值屬於哪個對象,可以給指標除了指

對象生成類似這種結構的文本後,可以暴露 metrics 端點,讓 Prometheus 自動採集,或通過 Pushgateway 推送到 Prometheus 中。

接下來,我們將在 Kubernetes 中搭建一個完整的 Prometheus 監控體系。

微軟最有價值專家(MVP)

微軟最有價值專家是微軟公司授予第三方技術專業人士的一個全球獎項。29年來,世界各地的技術社區領導者,因其在線上和線下的技術社區中分享專業知識和經驗而獲得此獎項。

MVP是經過嚴格挑選的專家團隊,他們代表着技術最精湛且最具智慧的人,是對社區投入極大的熱情並樂於助人的專家。MVP致力於通過演講、論壇問答、創建網站、撰寫博客、分享視頻、開源項目、組織會議等方式來幫助他人,並最大程度地幫助微軟技術社區用户使用 Microsoft 技術。

更多詳情請登錄官方網站:
https://mvp.microsoft.com/zh-cn

謝謝你讀完了本文!歡迎在 評論區留言 分享你的想法,並且 轉發到朋友圈

如果你對本文青睞有加,想要轉載到自己的平台, 請在後台回覆「轉載」 與我們取得聯繫!

長按識別二維碼

關注微軟中國MSDN

加入微軟MVP