雲端中的Kubernetes:可觀察性指南

根據 Deming 所說的“如果你不測量它,你就無法管理它”,可觀察性和監控是我們測量服務的方式。

當談到處理部署和擴展時,Kubernetes 非常具革命性。但容器不斷地被創建和銷毀有時會在監控方面帶來挑戰。這就是觀察性發揮作用的地方,提供對系統表現及問題原因的關鍵洞察。

想要複習 Kubernetes 術語嗎?閱讀在5分鐘內揭開 Kubernetes 的神秘面紗

在 Kubernetes 中的可觀察性是什麼?

人們喜歡將可觀察性視為一個總稱。但通常指的是指標、日誌和跟踪。這就像有一個窺探應用程序和基礎設施核心的鏡頭。通過收集和分析這些輸出,可觀察性幫助您在問題擾亂服務之前發現潛在問題,並優化整個系統的性能。

三件事情浮現在腦海:

指標

這些是數據,提供有關資源使用、錯誤率和性能的數據。一些流行的指標是 CPU 使用率和記憶體使用率的百分比,以及有關指標本身的附加元數據(有時稱為維度)。

日誌

日誌提供了系統內事件的詳細歷史記錄,例如錯誤或用戶操作。它們為故障排除和理解應用程序行為提供了上下文。我相信你之前見過「日誌」:

SystemVerilog

 

追蹤

追蹤提供了請求在服務之間傳遞的端到端視圖,有助於識別瓶頸或延遲問題。通過跟踪多個微服務中的請求,你可以精確找出性能問題出現的地方。

日誌和追蹤聽起來可能相似,但它們是不同的。可以把日誌看作是發生過的事情的快照,而追蹤則告訴你整個系統中發生的方式和原因。

可觀察性並不僅限於組織中的一個角色,本身是不同角色之間傳遞的關鍵信息。例如,作為一名軟體工程師,你需要在應用程式代碼中加入指標、日誌和追蹤。現在,你需要一些工具來收集、存儲和分析這些數據,例如 Prometheus 用於指標和 Jaeger 用於追蹤。

如果你還沒有對可觀察性感到信服,我將總結一下:

  1. 它通過識別性能瓶頸來確保一切順利且高效地運行。
  2. 提高系統的韌性,幫助應用程序(希望)快速從故障中恢復。
  3. 持續監控允許團隊及早檢測異常,防止安全漏洞並確保敏感數據受到保護。
  4. 您可以建立一個看起來精彩的儀表板,幫助您更好地了解系統性能。它甚至可以幫助您節省大量基礎設施成本(看著你,AWS!)。

等等,我之前還提到了監控。那是什麼,它又有什麼不同呢?

儘管可觀察性和監控彼此相關,但它們有著不同的功能。監控涉及設置預定檢查/警報,以確保系統在可接受的參數範圍內運作,符合您的SLA/SLO。另一方面,可觀察性則提供對系統行為的全面理解。這不僅僅是知道甚麼時候出現問題;更重要的是了解為什麼以及如何發生。監控和可觀察性對於有效的系統管理至關重要。

Call Out: OpenTelemetry

OpenTelemetry(又稱OTel)是一個領先的開源API、SDK和工具集。使用它來對軟件的性能和行為進行儀器化、生成、收集和導出遙測數據(指標、日誌和跟蹤)。OpenTelemetry與許多熱門庫和框架集成,支持在不同的Kubernetes環境中進行基於代碼和零代碼的儀器化。

結論

總結可觀察性 不僅僅是一項技術要求——對於希望在當今競爭激烈的市場中保持領先的組織而言,它是一項戰略性必要條件。通過利用合適的工具和策略,如 OTel 進行統一數據收集,組織可以監控、故障排除並持續優化其 Kubernetes 應用程序。通過更好的系統性能可見性,組織可以做出基於數據的決策,增強應用程序的可靠性,更有效地實現商業目標。

我不知道這句話是誰說的,但我喜歡這句話:停止猜測,開始了解!

Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability