K8S:容器日志收集与管理
Kubernetes 里面对容器日志的处理方式,都叫作 cluster-level-logging,即:这个日志处理系统,与容器、Pod 以及 Node 的生命周期都是完全无关的。这种设计当然是为了保证,无论是容器挂了、Pod 被删除,甚至节点宕机的时候,应用的日志依然可以被正常获取到。
而对于一个容器来说,当应用把日志输出到 stdout 和 stderr 之后,容器项目在默认情况下就会把这些日志输出到宿主机上的一个 JSON 文件里。这样,你通过 kubectl logs 命令就可以看到这些容器的日志了。
第一种,在 Node 上部署 logging agent,将日志文件转发到后端存储里保存起来。这个方案的架构图如下所示

核心就在于 logging agent ,它一般都会以 DaemonSet 的方式运行在节点上,然后将宿主机上的容器日志目录挂载进去,最后由 logging-agent 把日志转发出去。
在 Node 上部署 logging agent 最大的优点,在于一个节点只需要部署一个 agent,并且不会对应用和 Pod 有任何侵入性。所以,这个方案,在社区里是最常用的一种。
Kubernetes 容器日志方案的第二种,就是对这种特殊情况的一个处理,即:当容器的日志只能输出到某些文件里的时候,我们可以通过一个 sidecar 容器把这些日志文件重新输出到 sidecar 的 stdout 和 stderr 上,这样就能够继续使用第一种方案了。

由于 sidecar 跟主容器之间是共享 Volume 的,所以这里的 sidecar 方案的额外性能损耗并不高,也就是多占用一点 CPU 和内存罢了。
宿主机上实际上会存在两份相同的日志文件:一份是应用自己写入的;另一份则是 sidecar 的 stdout 和 stderr 对应的 JSON 文件。这对磁盘是很大的浪费。所以说,除非万不得已或者应用容器完全不可能被修改,否则还是建议你直接使用方案一,或者直接使用下面的第三种方案。
第三种方案,就是通过一个 sidecar 容器,直接把应用的日志文件发送到远程存储里面去。也就是相当于把方案一里的 logging agent,放在了应用 Pod 里。这种方案的架构如下所示:

在这种方案里,你的应用还可以直接把日志输出到固定的文件里而不是 stdout,你的 logging-agent 还可以使用 fluentd,后端存储还可以是 ElasticSearch。只不过, fluentd 的输入源,变成了应用的日志文件。一般来说,我们会把 fluentd 的输入源配置保存在一个 ConfigMap 里。
这种方案虽然部署简单,并且对宿主机非常友好,但是这个 sidecar 容器很可能会消耗较多的资源,甚至拖垮应用容器。并且,由于日志还是没有输出到 stdout 上,所以你通过 kubectl logs 是看不到任何日志输出的。
此文章为7月Day26学习笔记,内容来源于极客时间《深入浅出Kubernetes》,推荐该课程。
相关文章:
K8S:容器日志收集与管理
Kubernetes 里面对容器日志的处理方式,都叫作 cluster-level-logging,即:这个日志处理系统,与容器、Pod 以及 Node 的生命周期都是完全无关的。这种设计当然是为了保证,无论是容器挂了、Pod 被删除,甚至节点…...
Flutter系列文章-Flutter进阶
在前两篇文章中,我们已经了解了Flutter的基础知识,包括Flutter的设计理念、框架结构、Widget系统、基础Widgets以及布局。在本文中,我们将进一步探讨Flutter的高级主题,包括处理用户交互、创建动画、访问网络数据等等。为了更好地…...
【C++】C++11右值引用|新增默认成员函数|可变参数模版|lambda表达式
文章目录 1. 右值引用和移动语义1.1 左值引用和右值引用1.2 左值引用和右值引用的比较1.3右值引用的使用场景和意义1.4 左值引用和右值引用的深入使用场景分析1.5 完美转发1.5.1 万能引用1.5.2 完美转发 2. 新的类功能2.1 默认成员函数2.2 类成员变量初始化2.3 强制生成默认函数…...
rust学习-线程
Rust 标准库只提供了 1:1 线程模型 Rust 是较为底层的语言,如果愿意牺牲性能来换取抽象,以获得对线程运行更精细的控制及更低的上下文切换成本,使用实现了 M:N 线程模型的 crate 示例 use std::thread; use std::time::Duration;fn main() …...
题目:2180.统计各位数字之和为偶数的整数个数
题目来源: leetcode题目,网址:2180. 统计各位数字之和为偶数的整数个数 - 力扣(LeetCode) 解题思路: 暴力遍历即可。 解题代码: class Solution {public int countEven(int num) {int re…...
3dsmax制作一个机器人
文章目录 建模身子:眼睛:头饰:肩膀手臂腿调整细节 渲染导出objMarmoset Toolbag 3.08渲染给眼睛添加材质,设置为自发光添加背景灯光 建模 身子: 眼睛: 头饰: 肩膀 手臂 腿 调整细节 渲染 导出…...
C++的类型转换运算符:reinterpret_cast
C的类型转换运算符:reinterpret_cast reinterpret_cast 是 C 中与 C 风格类型转换最接近的类型转换运算符。它让程序员能够将一种对象类型转换为另一种,不管它们是否相关;也就是说,它使用如下所示的语法强制重新解释类型…...
flask中的cookies介绍
flask中的cookies介绍 “Cookie” 在 web 开发中是一种非常重要的技术,用于在客户端(即用户的浏览器)存储信息,以便在多个页面和多个访问会话之间保持状态。Cookies 通常用于记住用户的登录信息,跟踪用户在站点上的浏…...
adnroid 11. 0 Activity启动流程图解
从Launcher到ActivityTaskManager 从ActivityTaskManagerService 到 ApplicationThread 从ApplicationThread到onCreate...
了解Unity编辑器之组件篇Physics(四)
Physics:用于处理物理仿真和碰撞检测。它提供了一组功能强大的工具和算法,用于模拟真实世界中的物理行为,使游戏或应用程序更加真实和可信。 主要用途包括: 碰撞检测:Unity Physics 提供了高效的碰撞检测算法&#x…...
“数字中华 点亮未来”中华线上客户节 盛大开幕
2023年是中华保险数字化转型落地之年,峥嵘37载,中华保险在数字化转型上已经涌现了一批彰显辨识度、具有影响力的应用成果。7月15日,中华保险围绕数字化转型之路开展以“数字中华 点亮未来”为主题的37周年线上客户节活动,倾力打造…...
中文分词入门:使用IK分词器进行文本分词(附Java代码示例)
1. 介绍 中文分词是将连续的中文文本切分成一个个独立的词语的过程,是中文文本处理的基础。IK分词器是一个高效准确的中文分词工具,采用了"正向最大匹配"算法,并提供了丰富的功能和可定制选项。 2. IK分词器的特点 细粒度和颗粒…...
CTFSHOW web 信息收集
web入门的刷题 web1 教我们多看看源代码 web2 抓包 web3 抓包 web4 robots.txt robots.txt web5 phps源代码泄露 phps 就是php的源代码 用户无法访问 php 只可以通过phps来访问 web6 源代码备份 web7 git web8 svn web9 swp /index.php.swp web10 cookie web11 查域名…...
速锐得开发社区-新一代汽车网络通信技术CAN FD的特点归纳
随着汽车工业的快速发展,汽车逐渐走向智能化,功能也越来越丰富,例如特斯拉、比亚迪、理想汽车为代表,在车载导航、驻车雷达、胎压监测、倒车影像、无钥匙启动、定速巡航、自动泊车、高级辅助驾驶系统、自动驾驶、域控制器、智能网…...
Android adb shell 查看App内存(java堆内存/vss虚拟内存/详细的内存状况/内存快照hprof)和系统可用内存
1.adb shell 获取app 进程的pid adb shell "ps|grep com.xxx包名"根据某个渠道包,去查询对应的pid,如下所示: 2.通过adb shell 查看设备的java dalvik 堆内存的最大值 执行命令行: adb shell getprop dalvik.vm.h…...
java篇 类的进阶0x0A:万类之祖:Object 类
文章目录 万类之祖:Object 类hashCode() 与 equals()hashCode() 方法equals() 方法 vs. equals()String 的 equals() 为什么要重写 hashCode 和 equals 方法重写(覆盖)前 hashCode() 和 equals() 的作用什么情况下需要重写(覆盖&a…...
AVFoundation - 音频录制
文章目录 需要调用到麦克风方法,别忘记添加 Privacy - Microphone Usage Description @interface AudioRecorder ()<AVAudioRecorderDelegate>@property (strong, nonatomic) AVAudioRecorder *recorder;@end@implementation AudioRecorder- (void...
Jmeter+MySQL链接+JDBC Connection配置元件+使用
参考大大的博客学习:怎么用JMeter操作MySQL数据库?看完秒懂!_jmeter mysql_程序员馨馨的博客-CSDN博客 注:里面所有没打码的都是假数据,麻烦大家自行修改正确的信息。 一、背景 需要取数据库中的值,作为…...
统一观测丨使用 Prometheus 监控 Cassandra 数据库最佳实践
作者:元格 本篇内容主要包括四部分:Cassandra 概览介绍、常见关键指标解读、常见告警规则解读、如何通过 Prometheus 建立相应监控体系。 Cassandra 简介 Cassandra 是什么? Apache Cassandra 是一个开源、分布式、去中心化、弹性可伸缩、…...
Hive视图
hive的视图 简介 hive的视图简单理解为逻辑上的表hive只支持逻辑视图,不支持物化视图视图存在的意义 对数据进行局部暴露(涉及隐私的数据不暴露)简化复杂查询 创建视图: create view if not exists v_1 as select uid,movie f…...
SAM:Segment Anything Model
原文:towardsdatascience.com/sam-segment-anything-model-4b25a47245f2 简介 变压器已被广泛应用于自然语言处理用例,但它们也可以应用于人工智能的多个其他领域,例如时间序列预测或计算机视觉。 将 Transformer 模型应用于计算机视觉的绝…...
OpenClaw+Phi-3-vision-128k-instruct实战:电商产品图自动生成描述文案
OpenClawPhi-3-vision-128k-instruct实战:电商产品图自动生成描述文案 1. 为什么选择这个技术组合 去年双十一前,我负责的电商项目需要为300多款新品生成营销文案。传统做法是设计师导出图片后,由文案组手动撰写描述,平均每款产…...
OpenClaw+Phi-3-mini-128k-instruct智能书签:网页关键信息自动提取
OpenClawPhi-3-mini-128k-instruct智能书签:网页关键信息自动提取 1. 为什么需要智能书签? 作为一个每天要浏览大量技术文档的研究员,我经常遇到这样的困境:在查阅资料时看到有价值的观点,随手保存到书签栏ÿ…...
STM32宏定义控制IO口实战:5分钟搞定LED闪烁(附完整代码)
STM32宏定义控制IO口实战:5分钟搞定LED闪烁(附完整代码) 引言 在嵌入式开发中,IO口控制是最基础也是最频繁的操作之一。对于STM32开发者来说,如何高效、简洁地管理GPIO端口直接影响着代码的可维护性和开发效率。传统方…...
伏秒平衡在DC-DC开关电路中的关键作用与实现
1. 伏秒平衡:DC-DC开关电路的"心跳规律" 第一次拆解电源模块时,我看到电感在PWM信号驱动下规律地"呼吸",就像心脏跳动一样稳定。这种周期性规律就是伏秒平衡的直观体现——当DC-DC电路处于稳态时,电感两端的正…...
LongCat 为 OpenClaw 装上效率引擎:你的自动化任务还能再快 30%
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
CVPR 2023 TKSA注意力机制实战:手把手教你用PyTorch实现Top-K稀疏注意力模块
CVPR 2023 TKSA注意力机制实战:手把手教你用PyTorch实现Top-K稀疏注意力模块 在计算机视觉领域,注意力机制已经成为提升模型性能的关键组件。然而,传统注意力机制的计算开销和内存消耗常常成为制约模型效率的瓶颈。CVPR 2023提出的Top-K稀疏注…...
别再只会用plt.plot了!用Matplotlib画温度曲线,这5个实用技巧让你的图表更专业
别再只会用plt.plot了!用Matplotlib画温度曲线,这5个实用技巧让你的图表更专业 当你第一次用Matplotlib画出温度曲线时,可能会觉得"能用就行"。但随着项目要求的提高,那些默认设置生成的图表往往显得粗糙、缺乏专业感。…...
【Ease UI】2026-04-03组件更新:新增组件xly-china-map中国地图组件
🚀 即插即用的 Vue 3 业务组件库,让中后台开发回归简单Ease UI 是一套为「快速复制」而生的 Vue 3 业务组件库。每个组件都是独立的 .vue 单文件,不依赖任何外部样式或工具函数,直接复制到你的项目即可使用。它仅依赖 Element Plu…...
网站SEO与用户体验的关系是什么_高质量内容创作的技巧是什么
网站SEO与用户体验的关系是什么 在互联网时代,网站的成功往往取决于其在搜索引擎上的排名和用户体验的质量。这两者之间存在着密切的关系。一个高质量的网站不仅能在搜索结果中获得更好的排名,还能吸引并留住更多的用户。因此,了解网站SEO&a…...
