在 KubeSphere 中開啟高度自動化的微服務可觀測性
Kubernetes 為開發者們帶來了巨大的微服務部署便利,但同時也將可觀測性建設的重要性提升到了前所未有的程度:大量微服務之間錯綜復雜的調用關系難以梳理,應用性能瓶頸鏈路難以排查,應用異常難以定位。從現在開始,使用 KubeSphere 的所有用戶可以從 KubeSphere 的應用商店中快速部署 DeepFlow,為微服務應用輕松開啟 高度自動化 的 全棧、全鏈路 可觀測性。
什么是 KubeSphere
KubeSphere 是在 Kubernetes 之上構建的面向云原生應用的分布式操作系統,完全開源,支持多云與多集群管理,提供全棧的 IT 自動化運維能力,簡化企業的 DevOps 工作流。它的架構可以非常方便地使第三方應用與云原生生態組件進行即插即用 (plug-and-play) 的集成。
作為全棧的多租戶容器平臺,KubeSphere 提供了運維友好的向導式操作界面,幫助企業快速構建一個強大和功能豐富的容器云平臺。KubeSphere 為用戶提供構建企業級 Kubernetes 環境所需的多項功能,例如多云與多集群管理、Kubernetes 資源管理、DevOps、應用生命周期管理、微服務治理(服務網格)、日志查詢與收集、服務與網絡、多租戶管理、監控告警、事件與審計查詢、存儲管理、訪問權限控制、GPU 支持、網絡策略、鏡像倉庫管理以及安全管理等。
GitHub 地址:https://github.com/kubesphere。
什么是 DeepFlow
DeepFlow [1] 是一款開源的高度自動化的可觀測性平臺,是為云原生應用開發者建設可觀測性能力而量身打造的全棧、全鏈路、高性能數據引擎。DeepFlow 使用 eBPF、WASM、OpenTelemetry 等新技術,創新的實現了 AutoTracing、AutoMetrics、AutoTagging、SmartEncoding 等核心機制,幫助開發者提升埋點插碼的自動化水平,降低可觀測性平臺的運維復雜度。利用 DeepFlow 的可編程能力和開放接口,開發者可以快速將其融入到自己的可觀測性技術棧中。
GitHub 地址:https://github.com/deepflowys/deepflow。
為什么選擇 DeepFlow
目前,社區已經擁有了非常豐富的 Metrics、Tracing、Logging 解決方案,比如著名的 Prometheus、Telegraf、SkyWalking、OpenTelemetry、Fluentd、Loki 等。隨著 eBPF [2] 技術的發展和 Linux 內核 4.X 版本的普及,可觀測性迎來了更加 自動化 、更加 零侵擾 的玩法。在經過一番調研后,KubeSphere 選擇將 DeepFlow 作為利用 eBPF 能力建設可觀測性的開源解決方案,并將其集成到 App Store 中。現在,KubeSphere 用戶可使用應用模板,輕松將 DeepFlow 一鍵部署至 Kubernetes 環境中。
輕松部署 DeepFlow
你可以在 KubeSphere 應用商店中找到 DeepFlow,選擇它并依次點擊 安裝? -> 下一步? -> 安裝 ,即可完成 DeepFlow 的部署。
點擊部署完成的應用,獲取資源狀態中的 deepflow-grafana 服務 NodePort,通過 http://${K8S_NODE_IP}:${NodePort} 即可訪問 DeepFlow 的 Grafana:
快速體驗 DeepFlow
Metrics
部署 DeepFlow 以后, 無需做任何操作 ,訪問 Grafana 即可查看所有微服務應用的 RED(Request/Error/Delay) 黃金指標 ,以及所有微服務之間的 全景調用關系 :
應用 RED 指標
結合 DeepFlow 的 全棧 數據采集能力和 AutoTagging 統一標簽注入能力,也可快速判斷兩個微服務之間的瓶頸路徑和原因:
全棧性能指標
Tracing
DeepFlow 基于 eBPF 的 AutoTracing 能力(適用于 Linux Kernel 4.14+)可直接呈現微服務之間的分布式追蹤火焰圖,快速定位容器及 Service Mesh 場景下的應用性能瓶頸。下圖是 Istio Bookinfo Demo 的零插碼分布式追蹤火焰圖:
eBPF Istio AutoTracing Demo
DeepFlow 也支持廣泛的數據集成能力,能夠自動集成 Prometheus、Telegraf 的指標數據和 OpenTelemetry、SkyWalking 的追蹤數據。其中對于 OpenTelemetry 和 SkyWalking 數據的集成可展現 無盲點 的分布式追蹤能力,將應用、系統、網絡 Span 展現在一個火焰圖中。下圖是一個 Spring Boot Demo 的無盲點分布式追蹤火焰圖:
Spring Boot Tracing Demo
Logging
依靠應用協議解析能力,DeepFlow 支持自動采集 HTTP 1/2/S、Dubbo、MySQL、Redis、Kafka、MQTT、DNS 等應用的調用日志,以及與之對應的 TCP/UDP 網絡流日志:
應用調用日志
以上均可訪問 DeepFlow Online Demo [3] ,體驗高度自動化的可觀測性新時代。