阿里PB级Kubernetes日志平台建设实践

时间:2022-09-29 03:51:14

干货分享 | 阿里PB级Kubernetes日志平台建设实践
https://www.infoq.cn/article/HiIxh-8o0Lm4b3DWKvph

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

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

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

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

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

问题 2:如何降低资源消耗

阿里PB级Kubernetes日志平台建设实践