kubernetes 日志采集方案 采用DaemonSet 还是 SideCar呢?

参考文献:
https://mp.weixin.qq.com/s/7Rq0LFhIs8oJoDRmNqrKqw

kubernetes 日志采集方案 采用DaemonSet 还是 SideCar呢?_第1张图片
image

日志最主要的采集工具是 Agent,在 Kubernetes 场景下,通常会分为两种采集方式:

  • DaemonSet 方式:在 K8S 的每个 node 上部署日志 agent,由 agent 采集所有容器的日志到服务端。
  • Sidecar 方式:一个 POD 中运行一个 sidecar 的日志 agent 容器,用于采集该 POD 主容器产生的日志

每种采集方式都有其对应的优缺点,这里简单总结如下:

DaemonSet方式 Sidecar方式
采集日志类型 标准输出+部分文件 文件
部署运维 一般,需维护 DaemonSet 较高,每个需要采集日志的 POD 都需要部署 sidecar 容器
日志分类存储 一般,可通过容器 / 路径等映射 每个 POD 可单独配置,灵活性高
多租户隔离 一般,只能通过配置间隔离 强,通过容器进行隔离,可单独分配资源
支持集群规模 中小型规模,业务数最多支持百级别 无限制
资源占用 较低,每个节点运行一个容器 较高,每个 POD 运行一个容器
查询便捷性 较高,可进行自定义的查询、统计 高,可根据业务特点进行定制
可定制性 高,每个 POD 单独配置
使用场景 功能单一型的集群 大型、混合型、PAAS 型集群

阿里内部,对于大型的 PAAS 集群,主要使用Sidecar 方式采集数据,相对隔离性、灵活性最好;
而对与功能比较单一(部门内部 / 产品自建)的集群,基本都采用 DaemonSet的方式,`资源占用最低。

你可能感兴趣的:(kubernetes 日志采集方案 采用DaemonSet 还是 SideCar呢?)