中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

系列文章:云原生Kubernetes日志落地方案

發布時間:2020-08-13 22:11:31 來源:ITPUB博客 閱讀:221 作者:大濤學長 欄目:數據庫

在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定位到問題模塊,根據模塊具體的日志定位問題原因。在日志中包括了錯誤、關鍵變量、代碼運行路徑等信息,這些是問題排查的核心,因此日志永遠是線上問題排查的必經路徑。
系列文章:云原生Kubernetes日志落地方案cdn.nlark.com/yuque/0/2019/png/347081/1567957254811-b4ac58ed-1e1b-4886-87dc-436154b57cb5.png">
在阿里的十多年中,日志系統伴隨著計算形態的發展在不斷演進,大致分為3個主要階段:

  1. 在單機時代,幾乎所有的應用都是單機部署,當服務壓力增大時,只能切換更高規格的IBM小型機。日志作為應用系統的一部分,主要用作程序Debug,通常結合grep等Linux常見的文本命令進行分析。
  2. 隨著單機系統成為制約阿里業務發展的瓶頸,為了真正的Scale out,飛天項目啟動:2013年飛天5K項目正式上線。在這個階段各個業務開始了分布式改造,服務之間的調用也從本地變為分布式,為了更好的管理、調試、分析分布式應用,我們開發了Trace(分布式鏈路追蹤)系統、各式各樣的監控系統,這些系統的統一特點是將所有的日志(包括Metric等)進行集中化的存儲。
  3. 為了支持更快的開發、迭代效率,近年來我們開始了容器化改造,并開始了擁抱Kubernetes生態、業務全量上云、Serverless等工作。在這階段,日志無論從規模、種類都呈現爆炸式的增長,對日志進行數字化、智能化分析的需求也越來越高,因此統一的日志平臺應運而生。

可觀察性的終極解讀

在CNCF中,可觀察性的主要作用是問題的診斷,上升到公司整體層面,可觀察性(Observability)不僅僅包括DevOps領域,還包括業務、運營、BI、審計、安全等領域,可觀察性的最終的目標是實現公司各個方面的數字化、智能化。
系列文章:云原生Kubernetes日志落地方案
在阿里,幾乎所有的業務角色都會涉及到各式各樣的日志數據,為了支撐各類應用場景,我們開發了非常多的工具和功能:日志實時分析、鏈路追蹤、監控、數據加工、流計算、離線計算、BI系統、審計系統等等。日志系統主要專注于數據的實時采集、清洗、智能分析與監控以及對接各類各樣的流計算、離線系統。

Kubernetes日志系統建設難點

系列文章:云原生Kubernetes日志落地方案
單純日志系統的解決方案非常多,相對也比較成熟,這里就不再去贅述,我們此次只針對Kubernetes上的日志系統建設而論。Kubernetes上的日志方案相比我們之前基于物理機、虛擬機場景的日志方案有很大不同,例如:

  1. 日志的形式變的更加復雜,不僅有物理機/虛擬機上的日志,還有容器的標準輸出、容器內的文件、容器事件、Kubernetes事件等等信息需要采集。
  2. 環境的動態性變強,在Kubernetes中,機器的宕機、下線、上線、Pod銷毀、擴容/縮容等都是常態,這種情況下日志的存在是瞬時的(例如如果Pod銷毀后該Pod日志就不可見了),所以日志數據必須實時采集到服務端。同時還需要保證日志的采集能夠適應這種動態性極強的場景。
  3. 日志的種類變多,上圖是一個典型的Kubernetes架構,一個請求從客戶端需要經過CDN、Ingress、Service Mesh、Pod等多個組件,涉及多種基礎設施,其中的日志種類增加了很多,例如K8s各種系統組件日志、審計日志、ServiceMesh日志、Ingress等。
  4. 業務架構變化,現在越來越多的公司開始在Kubernetes上落地微服務架構,在微服務體系中,服務的開發更加復雜,服務之間的依賴以及服務底層產品的依賴越來越多,這時的問題排查將更加復雜,如果關聯各個維度的日志將是一個困難的問題。
  5. 日志方案集成困難,通常我們都會在Kubernetes上搭建一套CICD系統,這套CICD系統需要盡可能的自動化的完成業務的集成和部署,其中日志的采集、存儲、清洗等也需要集成到這套系統中,并和K8s的聲明式部署方式盡可能一致。而現有的日志系統通常都是較獨立的系統,集成到CICD中代價極大。
  6. 日志規模問題,通常在系統初期的時候我們會選擇自建開源的日志系統,這種方式在測試驗證階段或公司發展初期是沒有什么問題的,但當業務逐漸增長,日志量增長到一定規模時,自建的開源系統很多時候都會遇到各種各樣的問題,例如租戶隔離、查詢延遲、數據可靠性、系統可用性等。日志系統雖不是IT中最核心的路徑,但一旦關鍵時刻出現這些問題都將是非常可怕的影響,例如大促的時候出現緊急問題,排查時多個工程師并發查詢把日志系統打爆,導致故障恢復時間變長,大促收到影響。

總結

相信在搞K8s日志系統建設的同學看到上面的難點分析都會深有感觸,后面我們會從落地角度出發,詳細介紹在阿里我們如何去搭建K8s的日志系統,敬請關注。

本文作者:元乙
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤翔县| 兴山县| 开化县| 江陵县| 松滋市| 丽水市| 宣威市| 商丘市| 陇西县| 阳西县| 怀来县| 金川县| 白河县| 怀远县| 蒙阴县| 易门县| 丹凤县| 山阳县| 元氏县| 浑源县| 双鸭山市| 理塘县| 巴青县| 墨江| 综艺| 北辰区| 乐都县| 汕头市| 浦县| 南靖县| 克东县| 托克逊县| 泸州市| 丹江口市| 闵行区| 北京市| 安阳市| 尚义县| 聊城市| 澄城县| 饶阳县|