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