5招搞定Kubernetes監控

HitTwice發表於2018-08-02

作者:Karen Lee 來源:微信公眾號(K8S技術社群)

原文連結: https://mp.weixin.qq.com/s/NkncatCPy8qUs3CY4BhilQ


如果你位於DevOps前線,Kubernetes正在迅速成為你的生產雲環境的重要組成部分。由於容器編排對於部署、伸縮和管理容器化應用程式至關重要,監控Kubernetes需要成為監控策略的重要組成部分。

容器環境的執行與傳統環境不同。因此,如果你正在監控應用程式和基礎設施,你需要考慮如何監控執行它們的容器環境。這裡有可供參考的5個最佳實踐:

1.集中日誌和指標。透過Kubernetes編排你的容器化服務和工作負載會帶來秩序,但請記住,你的環境仍然是分散的。如果你集中你的日誌和指標,處理起來會容易得多。

2.考慮ephemeral容器。容器編排的美妙之處在於它可以很容易地在短時間內啟動、停止、殺死和清理容器。但是,監控它們可能並不容易。即使服務正在進行,你仍然需要除錯問題並監控叢集活動。訣竅是在日誌和指標消失之前獲取。如果你不這樣做,你的指標看起來更像左邊的圖,而不是右邊的圖。

3.簡化,簡化,簡化。對於容器環境中的所有移動部分(服務、API、容器、編排工具),你需要進行監控而不會引入不必要的複雜性。不是使用各種監控代理來擴充套件容器,而是要從你監控和管理的內容中抽象出監控和管理工具。這也將幫助你的工程師專注於構建和交付軟體,而不是運維交付平臺。

4.明確監視每一層。你需要收集日誌並監控環境中各層的錯誤、故障和效能問題(pod\容器和控制器管理器)。例如,你需要能夠進行pod故障排除,確保容器正常執行,並在控制器管理器中收集執行時指標。

5.確保跨層的資料一致性。為了快速準確地除錯,你需要確保容器環境中跨所有層的資料一致性。諸如準確的時間戳、一致的測量單位(如毫秒數與秒數)以及在應用程式和元件中收集常用的一組指標和日誌,將幫助你快速準確地對所有層進行故障排除和除錯。

以簡單直接的方式完成這些待辦事項的最佳做法是,監控Kubernetes環境中的容器,而不觸碰應用程式容器。透過將DaemonSet或sidecar引入與容器化服務並列幷包含日誌記錄和指標收集代理的Kubernetes環境中,可以實現這一目的。使用此方法進行部署將確保資料收集的一致性,最大限度地減少應用程式容器所需的更改,最重要的是,消除生產環境中盲目選擇的可能性。

幾種實現方法包括:

1.使用帶有Fluentd日誌記錄代理的DaemonSet(這會為你提供日誌記錄而不是指標)。如果你已經有了配置好的ELK叢集,這是一個選擇。

2.使用帶有Prometheus指標代理的DaemonSet或sidecar(CoreOS在整合Prometheus和Kubernetes方面做得非常出色)。在你的Kubernetes叢集上執行Prometheus將為你提供指標檢測、查詢和警報。

3.許多指標和效能監控工具,包括Heapster、DataDog、cAdvisor、New Relic、Weave / VMware,也提供了用於Kubernetes監控的DaemonSet或sidecar選項。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31473948/viewspace-2169006/,如需轉載,請註明出處,否則將追究法律責任。

相關文章