您好,登錄后才能下訂單哦!
在Logging這塊做了幾年,最近1年來越來越多的同學來咨詢如何為Kubernetes構建一個日志系統或者是來求助在這過程中遇到一系列問題如何解決,授人以魚不如授人以漁,于是想把我們這些年積累的經驗以文章的形式發出來,讓看到這篇文章的同學能少走彎路。這個系列文章定位為長篇連載,內容偏向落地實操以及經驗分享,且內容會隨著技術的迭代而不定期更新。
第一次聽到Kubernetes的名字是在16年,那個時候Kubernetes還處于和Docker Swarm、Mesos方案的“三國鼎立時代”,Kubernetes由于一系列優勢(可擴展、聲明式接口、云友好)在這一競爭中嶄露頭角,最終獲得統治地位。Kubernetes作為CNCF最核心的項目(沒有之一),是Cloud Native(云原生)落地的底座,目前阿里已經全面基于Kubernetes在開展全站的云原生改造,在1-2年內,阿里巴巴100%的業務都將跑在公有云上。
CloudNative在 CNCF的定義的核心是:在公有云、私有云、混合云等環境中,通過Containers、Service Meshes、 MicroServices、Immutable Infrastructure、Declarative APIs構建和運行可彈性擴展的且具有高容錯性、易于管理、可觀察、松耦合的應用系統。可觀察性是應用系統必不可少的一個部分,云原生的設計理念中就有一條:面向診斷性設計(Diagnosability),包括集群級別的日志、Metric和Trace。
通常一個線上問題的定位流程是:通過Metric發現問題,根據Trace定位到問題模塊,根據模塊具體的日志定位問題原因。在日志中包括了錯誤、關鍵變量、代碼運行路徑等信息,這些是問題排查的核心,因此日志永遠是線上問題排查的必經路徑。
cdn.nlark.com/yuque/0/2019/png/347081/1567957254811-b4ac58ed-1e1b-4886-87dc-436154b57cb5.png">
在阿里的十多年中,日志系統伴隨著計算形態的發展在不斷演進,大致分為3個主要階段:
在CNCF中,可觀察性的主要作用是問題的診斷,上升到公司整體層面,可觀察性(Observability)不僅僅包括DevOps領域,還包括業務、運營、BI、審計、安全等領域,可觀察性的最終的目標是實現公司各個方面的數字化、智能化。
在阿里,幾乎所有的業務角色都會涉及到各式各樣的日志數據,為了支撐各類應用場景,我們開發了非常多的工具和功能:日志實時分析、鏈路追蹤、監控、數據加工、流計算、離線計算、BI系統、審計系統等等。日志系統主要專注于數據的實時采集、清洗、智能分析與監控以及對接各類各樣的流計算、離線系統。
單純日志系統的解決方案非常多,相對也比較成熟,這里就不再去贅述,我們此次只針對Kubernetes上的日志系統建設而論。Kubernetes上的日志方案相比我們之前基于物理機、虛擬機場景的日志方案有很大不同,例如:
相信在搞K8s日志系統建設的同學看到上面的難點分析都會深有感觸,后面我們會從落地角度出發,詳細介紹在阿里我們如何去搭建K8s的日志系統,敬請關注。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。