干货分享 | 阿里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日志平台建设实践的更多相关文章

  1. 亿级 ELK 日志平台构建部署实践

    本篇主要讲工作中的真实经历,我们怎么打造亿级日志平台,同时手把手教大家建立起这样一套亿级 ELK 系统.日志平台具体发展历程可以参考上篇 「从 ELK 到 EFK 演进」 废话不多说,老司机们座好了, ...

  2. Kubernetes容器云平台建设实践

    [51CTO.com原创稿件]Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署.大规模可伸缩.应用容器化管理.伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经 ...

  3. TOP100summit 2017:【案例分享】魅族持续交付平台建设实践

    本篇文章内容来自第10期魅族开放日魅族运维架构师林钟洪的现场分享.编辑:Cynthia 一.自动化建设历程1.1 魅族互联网发展的时间线 2003-2008年被称之为“互联网1.0时代”.2003年, ...

  4. [平台建设] HBase平台建设实践

    背景 由于公司业务场景的需要,我们需要开发HBase平台,主要需要以下功能: 建表管理 授权管理 SDK实现 与公司内部系统打通 我们使用的HBase 版本: HBase 1.2.0-cdh5.16. ...

  5. TKE 用户故事 - 作业帮 PB 级低成本日志检索服务

    作者 吕亚霖,2019年加入作业帮,作业帮架构研发负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 莫仁鹏,2020年加入作业帮,作业帮 ...

  6. 趣头条基于 Flink 的实时平台建设实践

    本文由趣头条实时平台负责人席建刚分享趣头条实时平台的建设,整理者叶里君.文章将从平台的架构.Flink 现状,Flink 应用以及未来计划四部分分享. 一.平台架构 1.Flink 应用时间线 首先是 ...

  7. ELK 日志平台构建

    elastic中文社区 https://elasticsearch.cn/ 完整参考 ELK实时日志分析平台环境部署--完整记录 https://www.cnblogs.com/kevingrace/ ...

  8. 6 个 K8s 日志系统建设中的典型问题,你遇到过几个?

    作者 |  元乙  阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11.双 12 考验. 导读:随着 K8s 不断 ...

  9. 一文看懂 K8s 日志系统设计和实践

    上一篇中我们介绍了为什么需要一个日志系统.为什么云原生下的日志系统如此重要以及云原生下日志系统的建设难点,相信DevOps.SRE.运维等同学看了是深有体会的.本篇文章单刀直入,会直接跟大家分享一下如 ...

随机推荐

  1. django2以后的版本Foreignkey的变动

    目录 class User(AbstractUser): """用户表""" job = models.ManyToManyField(to ...

  2. 打造完美Python环境(pyenv, virtualenv, pip)

    写在最前 在使用 Python 进行开发和部署的时候,经常会碰到Python版本或者依赖包或者对应版本不同导致各种意外情况发生. 本文将介绍如何通过 pyenv, virtualenv, pip三个工 ...

  3. Linux命令——getent

    简介 getent命令帮助用户administrative databases中查找相关信息.administrative databases包括: passwd – can be used to c ...

  4. nodeJs修改镜像源

    // 设置 淘宝镜像源npm config set registry https://registry.npm.taobao.org // 查看 使用的 镜像源npm config get regis ...

  5. c++面向对象模型---c++如何管理类,对象以及它们之间的联系

    首先我们随意定义4个类结构 class cl1 { private: int age; string name; static int addr; public: cl1() { } void iwa ...

  6. mysql - InnoDB存储引擎 死锁问题( Deadlock found when trying to get lock; try restarting transaction )

    刚刚向数据库插入数据的时候出现了这么一段错误 Deadlock found when trying to get lock; try restarting transaction 主要原因(由于无法使 ...

  7. POJ-2478-Farey Sequence(欧拉函数)

    链接: https://vjudge.net/problem/POJ-2478 题意: The Farey Sequence Fn for any integer n with n >= 2 i ...

  8. 使用JSP/Servlet技术开发新闻发布系统---JSP数据交互(二)

    JSP内置对象application application对象 JSP常用的内置对象 对象的作用域 作用的分类 对象的作用域 page作用域 实例 //页面1 <% String name = ...

  9. 简要概述java内存模型,以及volatile关键字

    如果我们要想深入了解Java并发编程,就要先理解好Java内存模型.Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步.原始的Java内存模型效率并不是很理想,因此 ...

  10. Mysql查看所有表的数据量

    ##查看所有表信息 SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'pcms-zgh20190327' ##查看各个表数据量 ...