許多企業使用Kubernetes來快速發布新功能并提高服務的可靠性。Rancher使團隊能夠減少管理其云原生工作負載的操作成本——但獲得這些環境的持續可見性可能是一個挑戰。
在這篇文章中,我們將探討如何利用Rancher內置支持的Prometheus和Grafana快速開始監控編排工作負載。然后,我們將向你展示如何將Datadog與Rancher集成,通過豐富的可視化、算法告警和其他功能,幫助你獲得對這些臨時環境更深入的可見性。
Kubernetes監控所面臨的挑戰
Kubernetes集群本質上是復雜和動態的。容器以極快的速度啟動和關閉:在對數千家組織的超過15億個容器進行調查時,Datadog發現,編排容器的周轉速度(一天)是未編排容器的兩倍(兩天)。
在這種快節奏的環境中,監控你的應用程序和基礎設施比以往任何時候都重要。Rancher內置支持開源監控工具(如Prometheus和Grafana),允許你從Kubernetes集群中跟蹤基本的健康和資源指標。
Prometheus按照預設的時間間隔從Kubernetes集群收集指標。雖然Prometheus沒有可視化選項,但你可以使用Grafana內置的儀表板來顯示健康和資源指標的總體情況,例如你的pods的CPU使用情況。
然而,一些開源解決方案并不是為了監控大型、動態Kubernetes集群而設計的。此外,Prometheus要求用戶學習PromQL(這是一種專門的查詢語言)以分析和匯總他們的數據。
雖然Prometheus和Grafana可以為你的集群提供一定程度的洞察力,但它們不能讓你看到全貌。例如,你需要連接到其中一個Rancher支持的日志解決方案,以訪問你環境中的日志。而為了排除代碼級問題,你還需要部署一個應用程序性能監控解決方案。
最終,為了充分可視化你的編排集群,你需要在一個平臺上監控所有這些數據源——指標、跟蹤和日志。通過向整個企業的團隊提供詳細的、可操作的數據,一個全面的監控解決方案可以幫助減少檢測和解決的平均時間(MTTD和MTTR)。
Datadog Agent:自動發現和自動伸縮服務
為了獲得Rancher解決方案中每一層的持續可見性,你需要一個專門用于實時跟蹤云原生環境的監控解決方案。Datadog Agent是一款輕量級的開源軟件,它可以從你的容器和主機中收集指標、跟蹤和日志,并將它們轉發到你的賬戶,以便進行可視化、分析和告警。
由于Kubernetes部署處于不斷變化的狀態,因此無法手動跟蹤哪些工作負載在哪些節點上運行,或者你的容器在哪里運行。為此,Datadog Agent使用Autodiscovery來檢測容器何時啟動或關閉,并自動開始收集你的容器和它們正在運行的服務的數據,如etcd和Consul。
Kubernetes內置的自動彈性伸縮功能可以根據需求(如CPU使用量激增)自動增加或減少工作負載,從而幫助提高服務的可靠性。自動伸縮還可以通過調整基礎設施的規模來幫助管理成本。
Datadog擴展了彈性伸縮這一功能,使你能夠根據已經在Datadog中監控的任何指標(包括自定義指標)自動伸縮Kubernetes工作負載。這對于根據需求的波動來擴展集群是非常有用的,特別是在“雙十一”這樣的關鍵業務時期。假設你的公司是一家零售商,擁有繁忙的在線業務。當銷售正在起飛時,你的Kubernetes工作負載可以根據作為活動指標的自定義指標(如結賬數量)進行自動伸縮,以確保流暢的購物體驗。有關使用Datadog自動伸縮Kubernetes工作負載的更多細節,請查看以下文章:
https://www.datadoghq.com/blog/autoscale-kubernetes-datadog/
Kubernetes特定的監控功能
無論你的環境是多云、多集群還是兩者兼而有之,Datadog高度專業化的功能都可以幫助你實時監控你的容器化工作負載。Datadog通過從Kubernetes、Docker、云服務和其他技術導入的tag自動豐富你的監控數據。Tag為你的環境任意一層提供了持續的可見性,即使單個容器啟動、停止或在主機間移動,你都能夠獲得可視化。例如,你可以搜索所有共享一個標簽(例如,它們正在運行的服務名稱)的容器,然后使用另一個標簽(例如,可用性區域)來分解它們在不同區域的資源使用情況。
Datadog可以收集超過120個Kubernetes指標,幫助你從控制平面健康狀況跟蹤到pod級CPU限制的一切。所有這些監控數據都可以直接在應用中訪問,而無需使用查詢語言。
Datadog提供了幾個功能來幫助你探索和可視化容器基礎設施的數據。Container Map(datadoghq.com/blog/container-map/ )提供了一個Kubernetes環境的鳥瞰圖,并允許你通過任何標簽組合來過濾和分組容器,如docker_image、host和kube_deployment。
你還可以根據任何資源指標的實時值對容器進行顏色編碼,如系統CPU或RSS內存。這讓你可以一目了然地快速發現資源爭奪問題,例如,如果一個節點比其他節點消耗了更多的CPU。
實時容器視圖(Live Container view)可以顯示基礎架構中每個容器的流程級系統指標——以兩秒的粒度繪制。由于 CPU 利用率等指標可能非常不穩定,這種高度的顆粒度確保了重要的峰值不會在噪音中消失。
Container Map和 “實時容器 "視圖均允許你使用任意組合的標簽(如鏡像名稱或云提供商)對容器進行過濾和排序。要了解更多細節,你還可以單擊以檢查在任何單個容器上運行的進程,并查看從該容器收集的所有指標、日志和跟蹤,獲取這些信息只需點擊幾下。這可以幫助你調試問題,并確定是否需要調整資源的配置。
通過Datadog網絡性能監控(NPM),你可以跟蹤整個Kubernetes部署的實時網絡流量,并快速調試問題。從本質上講,Docker容器只受制于可用的CPU和內存量。因此,單個容器可能會使網絡飽和并使整個系統癱瘓。
Datadog可以幫助你輕松隔離消耗最多網絡吞吐量的容器,并通過導航到該服務的相關日志或請求跟蹤來確定可能的根本原因。
Datadog+Rancher協同工作
通過Rancher的Datadog Helm chart,你的團隊可以在幾分鐘內開始監控他們的Kubernetes環境。Datadog與Rancher協同工作,可以讓你使用Rancher管理不同的協調環境,并部署Datadog來實時監控、排除故障和自動擴展環境。
此外,Datadog的算法監控引擎Watchdog可以發現并提醒團隊成員注意性能異常(如延遲峰值或高錯誤率)。這使得團隊能夠在潛在問題(例如容器重啟率異常高)升級之前解決問題。
我們已經向你展示了Datadog如何幫助你獲得Rancher環境的全面可見性。通過Datadog,工程師可以使用APM來識別單個請求中的瓶頸,并準確定位代碼級問題,收集和分析整個基礎設施中每個容器的日志等。通過在一個平臺上統一指標、日志和跟蹤,Datadog消除了切換上下文或工具的需要。因此,可以加快團隊故障排除工作流程,并充分利用Rancher管理大規模動態集群的全部潛力。