首页 > 其他分享 >Kubernetes业务服务日志采集原理全方位剖析

Kubernetes业务服务日志采集原理全方位剖析

时间:2023-07-24 15:46:47浏览次数:46  
标签:Kubernetes 剖析 采集 集群 DaemonSet 日志 Sidecar

Kubernetes日志采集原理全方位剖析

     

简介

作为容器编排领域的实施标准,Kubernetes(K8s)应用的场景也越来越广。日志作为可观测性建设中的重要一环,可以记录详细的访问请求以及错误信息,非常利于问题的定位。Kubernetes上的应用、Kubernetes组件本身、宿主机等都会产生各类日志数据,SLS全面支持这些数据的采集和分析。本文将主要介绍SLS对于Kubernetes日志采集的基本原理,便于大家在实践中能够更好的规划使用方式。

 

Kubernetes日志采集方式

在K8s中,日志采集一般分为Sidecar和DaemonSet两种方式。一般建议DaemonSet在中小型集群中使用;Sidecar推荐在超大型的集群中使用(为多个业务方提供服务,每个业务方有明确的自定义日志采集需求,采集配置数会超过500)。

  • DaemonSet方式在每个node节点上只运行一个日志agent,采集这个节点上所有的日志。DaemonSet相对资源占用要小很多,但扩展性、租户隔离性受限,比较适用于功能单一或业务不是很多的集群。
  • Sidecar方式为每个POD单独部署日志agent,这个agent只负责一个业务应用的日志采集。Sidecar相对资源占用较多,但灵活性以及多租户隔离性较强,建议大型的K8S集群或作为PAAS平台为多个业务方服务的集群使用该方式。
  DaemonSet方式 Sidecar方式
采集日志类型 标准输出+部分文件 文件
部署运维 一般,需维护DaemonSet 较高,每个需要采集日志的POD都需要部署sidecar容器
日志分类存储 一般,可通过容器/路径等映射 每个POD可单独配置,灵活性高
多租户隔离 一般,只能通过配置间隔离 强,通过容器进行隔离,可单独分配资源
支持集群规模 取决于采集配置数(由于每个节点的Agent都需要加载所有配置并工作,所以集群的采集配置数有上限,一般不建议超过500个采集配置) 无限制
资源占用 较低,每个节点运行一个容器 较高,每个POD运行一个容器
查询便捷性 较高,可进行自定义的查询、统计 高,可根据业务特点进行定制
可定制性 高,每个POD单独配置
耦合度 低,Agent可独立升级 一般,默认采集Agent升级对应Sidecar业务也会重启(有一些扩展包可以支持Sidecar热升级)
适用场景 日志分类明确、功能较单一的集群 大型、混合型、PAAS型集群

 

 

 

 

 

 

 

 

 

 

 

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:Kubernetes,剖析,采集,集群,DaemonSet,日志,Sidecar
From: https://www.cnblogs.com/gaoyuechen/p/17577377.html

相关文章

  • 在Linux添加定时任务删除5天前的日志文件
    在Linux添加定时任务删除5天前的日志文件利用shell脚本自动清理1.删除文件命令:find对应目录-mtime+天数-name"文件名"-execrm-f{}\;实例命令:find/usr/local/mysql/logs-typef-mtime+5-name"*.txt"-execrm-f{}\;说明:将/usr/local/mysql/logs目录下所......
  • PyCharm 在PyCharm中运行Django测试的日志输出
    环境:Windows10  +PyCharm2022.3.3+ Djangoversion4.2.3via: https://docs.djangoproject.com/zh-hans/4.2/topics/logging/#configuring-logging 日志模块配置:在settings.py添加如下配置: importosLOGGING={"version":1,"disable_existi......
  • 怎么找java项目日志输出的路径
    项目方案:Java项目日志输出路径的查找方法背景在Java项目开发过程中,日志是非常重要的一部分,可以帮助开发人员快速定位和解决问题。日志输出路径的查找方法决定了我们在开发和调试过程中如何查看和分析日志信息。本方案将介绍如何找到Java项目日志输出的路径,并提供代码示例。解决......
  • android studio打印日志过长显示补全
    AndroidStudio打印日志过长显示补全实现步骤作为一名经验丰富的开发者,我将向你介绍如何在AndroidStudio中实现打印日志过长时的显示补全功能。这个功能可以帮助你更方便地查看和调试长日志信息。实现步骤下面是整个实现过程的步骤概览。我们将逐步进行操作,确保你能够完全了解......
  • Spring Boot 使用 slf4j 日志
    logback的使用     在学习JAVA闲暇时间翻阅别人的随笔中的过程中,我发现在学习开发中我们经常使用System.out.println()来打印一些信息用来输出日志,但是这样不好,因为这样会在大量的使用System.out的过程中会增加资源的消耗,在查阅相关资料后我发现在实际项目中我们可以使......
  • iptables防火墙调试,想打印个日志就这么难
    背景怎么会讲这个话题,这个说来真的长了。但是,长话短说,也是可以的。我前面的文章提到,线上的服务用了c3p0数据库连接池,会偶发连接泄露问题,而分析到最后,又怀疑是db侧主动关闭连接,或者是服务所在机器和db之间有防火墙,防火墙主动关闭了连接。导致我们这边socket看着还健康,实际在对端......
  • AOP拦截日志
    首先对于AOP切面编程,我也是刚学习,了解不深,这边先引用老张的博客,方便大家学习。首先想一想,如果有这么一个需求,要记录整个项目的接口和调用情况,当然如果只是控制器的话,还是挺简单的,直接用一个过滤器或者一个中间件,还记得咱们开发Swagger拦截权限验证的中间件么,那个就很方便的把用......
  • docker查看具体时间日志
    Docker查看具体时间日志简介在使用Docker进行应用部署的过程中,经常需要查看容器的日志信息,以便排查问题和进行调试。本文将介绍如何使用Docker命令和相关技术,查看具体时间的日志信息。步骤概览下表展示了Docker查看具体时间日志的步骤概览:步骤描述1定位到特定的Dock......
  • 如何动态修改 spring aop 切面信息?让自动日志输出框架更好用
    业务背景很久以前开源了一款auto-log自动日志打印框架。其中对于spring项目,默认实现了基于aop切面的日志输出。但是发现一个问题,如果切面定义为全切范围过大,于是v0.2版本就是基于注解@AutoLog实现的。只有指定注解的类或者方法才会生效,但是这样使用起来很不方便。......
  • 聊聊日志聚类算法及其应用场景
    阅读《基于FlinkML搭建的智能运维算法服务及应用》一文后,对其中日志聚类算法有了些思考。概述日志聚类,简而言之是对海量日志的分析;其分析处理链路可以分为如下流程:日志采集->预处理->分词和特征表示->聚类和标注。算法模型分析针对如上的链路流程做一个拆分叙述。日......