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

发布者:小桥流水 2023-3-29 10:51

在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定位到问题模块,根据模块具体的日志定位问题原因。在日志中包括了错误、关键变量、代码运行路径等信息,这些是问题排查的核心,因此日志永远是线上问题排查的必经路径。

在阿里的十多年中,日志系统伴随着计算形态的发展在不断演进,大致分为3个主要阶段:

在单机时代,几乎所有的应用都是单机部署,当服务压力增大时,只能切换更高规格的IBM小型机。日志作为应用系统的一部分,主要用作程序Debug,通常结合grep等Linux常见的文本命令进行分析。随着单机系统成为制约阿里业务发展的瓶颈,为了真正的Scale out,飞天项目启动:2013年飞天5K项目正式上线。在这个阶段各个业务开始了分布式改造,服务之间的调用也从本地变为分布式,为了更好的管理、调试、分析分布式应用,我们开发了Trace(分布式链路追踪)系统、各式各样的监控系统,这些系统的统一特点是将所有的日志(包括Metric等)进行集中化的存储。为了支持更快的开发、迭代效率,近年来我们开始了容器化改造,并开始了拥抱Kubernetes生态、业务全量上云、Serverless等工作。在这阶段,日志无论从规模、种类都呈现爆炸式的增长,对日志进行数字化、智能化分析的需求也越来越高,因此统一的日志平台应运而生。

可观察性的终极解读

在CNCF中,可观察性的主要作用是问题的诊断,上升到公司整体层面,可观察性(Observability)不仅仅包括DevOps领域,还包括业务、运营、BI、审计、安全等领域,可观察性的最终的目标是实现公司各个方面的数字化、智能化。

在阿里,几乎所有的业务角色都会涉及到各式各样的日志数据,为了支撑各类应用场景,我们开发了非常多的工具和功能:日志实时分析、链路追踪、监控、数据加工、流计算、离线计算、BI系统、审计系统等等。日志系统主要专注于数据的实时采集、清洗、智能分析与监控以及对接各类各样的流计算、离线系统。

Kubernetes日志系统建设难点

单纯日志系统的解决方案非常多,相对也比较成熟,这里就不再去赘述,我们此次只针对Kubernetes上的日志系统建设而论。Kubernetes上的日志方案相比我们之前基于物理机、虚拟机场景的日志方案有很大不同,例如:

日志的形式变的更加复杂,不仅有物理机/虚拟机上的日志,还有容器的标准输出、容器内的文件、容器事件、Kubernetes事件等等信息需要采集。环境的动态性变强,在Kubernetes中,机器的宕机、下线、上线、Pod销毁、扩容/缩容等都是常态,这种情况下日志的存在是瞬时的(例如如果Pod销毁后该Pod日志就不可见了),所以日志数据必须实时采集到服务端。同时还需要保证日志的采集能够适应这种动态性极强的场景。日志的种类变多,上图是一个典型的Kubernetes架构,一个请求从客户端需要经过CDN、Ingress、Service Mesh、Pod等多个组件,涉及多种基础设施,其中的日志种类增加了很多,例如K8s各种系统组件日志、审计日志、ServiceMesh日志、Ingress等。业务架构变化,现在越来越多的公司开始在Kubernetes上落地微服务架构,在微服务体系中,服务的开发更加复杂,服务之间的依赖以及服务底层产品的依赖越来越多,这时的问题排查将更加复杂,如果关联各个维度的日志将是一个困难的问题。日志方案集成困难,通常我们都会在Kubernetes上搭建一套CICD系统,这套CICD系统需要尽可能的自动化的完成业务的集成和部署,其中日志的采集、存储、清洗等也需要集成到这套系统中,并和K8s的声明式部署方式尽可能一致。而现有的日志系统通常都是较独立的系统,集成到CICD中代价极大。日志规模问题,通常在系统初期的时候我们会选择自建开源的日志系统,这种方式在测试验证阶段或公司发展初期是没有什么问题的,但当业务逐渐增长,日志量增长到一定规模时,自建的开源系统很多时候都会遇到各种各样的问题,例如租户隔离、查询延迟、数据可靠性、系统可用性等。日志系统虽不是IT中最核心的路径,但一旦关键时刻出现这些问题都将是非常可怕的影响,例如大促的时候出现紧急问题,排查时多个工程师并发查询把日志系统打爆,导致故障恢复时间变长,大促收到影响。

总结

相信在搞K8s日志系统建设的同学看到上面的难点分析都会深有感触,后面我们会从落地角度出发,详细介绍在阿里我们如何去搭建K8s的日志系统,敬请关注。

本文为云栖社区原创内容,未经允许不得转载。

推荐阅读
  • 看完《二十一天》大结局,我难掩激动心情,写下这篇文章

    看完《二十一天》大结局,我难掩激动心情,写下这篇文章

    刚刚,我看完了灾难片《二十一天》的大结局。虽然和不少观众的感受一样,我也觉得这部电视剧,有不少漏洞。比如这群人明明是在大型商超里,但是最后他们却没有找到多少吃的

    10-01

  • 高温相聚,友情升温记

    高温相聚,友情升温记

    高温夜聚,友情升温记。说说我们这里的高温天气下的聚会!1. 昨晚朋友我们约好啦,一起出来走走、吃吃饭。2. 姐妹聚会,暖暖地,厮守着快乐的滋味,凝聚着彼此内心的感情和

    09-20

  • 玻璃笔藏日记,10年悲凉,好友怒断情谊:恨,死!

    玻璃笔藏日记,10年悲凉,好友怒断情谊:恨,死!

    1. 六一的时候,我朋友给我送了个礼物,原来是她偷偷写的日记,里面写着她的家庭秘密和心酸事。2. 我俩之前关系挺复杂,我之前还嫉妒她,老说她坏话,现在想想自己真不是东

    09-11

  • 【旅行日记】中越友谊万古长青

    【旅行日记】中越友谊万古长青

    旅行日记。1. 2024/07/22-23。2. 中国援建的中越友谊桥,1961-1964 建成,中越友谊万古长青。3. 越南最北端海滨蓝色教堂,建于 1926 年。4. 茶古教堂,建于 1880 年,2017

    09-11

  • 3.0版挑战30天在头条写日记的最后一天,文章收益高于微头条

    3.0版挑战30天在头条写日记的最后一天,文章收益高于微头条

    #挑战30天在头条写日记#挑战写日记,这个活动是四月份开始的,今天结束,当时读要求的时候觉得要写文章,会不会太难,实际上它的奖金并不多,没有后面推的任何活动的奖金多

    09-04

  • 中国人的遗嘱里有什么:藏在20多万普通中国人遗嘱中的亲情纽带

    中国人的遗嘱里有什么:藏在20多万普通中国人遗嘱中的亲情纽带

    本文来源于 真实故事计划(id:zhenshigushi1),欢迎关注及投稿,符合者将获得【1800元或2500元/每篇】稿酬。遗嘱,是一个人一辈子人际关系的体现。中国几千年的人情社会

    09-02

  • 【荐读】婚姻的起伏,亲情的牵绊

    【荐读】婚姻的起伏,亲情的牵绊

    在这个辗转于苦痛和坚持之间的人生中,我不禁被生命的起伏所震撼。从农村走出的我,一路经历坎坷,生活的曲折仿佛永无尽头。婚姻的起伏,亲情的牵绊,似乎在交织着一张错综

    09-02

  • 由小故事来谈“安全管理”中不能忽视的问题

    由小故事来谈“安全管理”中不能忽视的问题

    有这样一个故事,一个农场主很讨厌场里的老鼠,于是放置了一个老鼠夹收拾它,老鼠整日整夜担心,并把这个消息告诉了同在农场生活的鸡、猪和牛。鸡正在孵蛋,说:“担心你自

    08-26

  • 和女朋友分手后,我开了一间她最喜欢的店

    和女朋友分手后,我开了一间她最喜欢的店

    尺度 | 雕刻青年生活“真不想上班啊。想开一家属于自己的店。每天对着满屋子喜欢的东西,好看的设计,接待每一个笑容满面的人。”酒吧,咖啡馆,书店,客栈民宿……这些词

    08-26

  • 揭秘幸福:爱情日记中的成长与秘诀

    揭秘幸福:爱情日记中的成长与秘诀

    #我的爱情日记#哦吼!我的爱情日记里居然隐藏了这样的幸福秘诀!在探索爱情的旅程中,从青涩到成熟,我经历了无数的情感起伏。通过记录在日记中的点点滴滴,我发现了一个令

    08-24

阅读排行
  • 支教心得:相信明天会更好

    今天,阳光明媚,鸟语花香,绿树成荫,看着孩子们开开

  • 亡心

    亡心 没有能留得住的生命就像没有能攥住的水,生命的

  • 残酷的爱情结局啊!

    表哥今年28岁了。按说现在的她都已经该成家立业了,或

  • 忆.谁

    如果一切曾消失过, 一直一直走到尽头 ,不曾忘记不曾

  • 因为我是你妈

    无论长大后你多么独立,甚至位高权重,但是你若有一个

Copyright © 2021-2024 领读者 All Rights Reserved.

本网站提供好文章在线阅读,经典好文章推荐好文章摘抄日志随笔等各种文章应有尽有。

蜀ICP备09043158号-3

返回顶部