容器化应用程序写入到 stdout 和 stderr 中的任何信息,都将被容器引擎重定向到某个地方。例如,Docker 容器引擎将 stdout 和 stderr 这两个输出流重定向到 logging driver ,Kubernetes的默认配置中,最终 logging driver 最终把日志写入了一个 json 格式的文件。

Docker 的 json logging driver 将每一行日志都当做一个单独的消息处理(即 json 文件中的一个对象),它并不直接支持多行的日志消息(multi-line message)。此时,您需要自行在日志代理层或者更高层将 json 日志中的多个对象合并成一个多行日志消息。

这个可以结合docker日志来进行进一步的处理

Kubernetes中存在两种类型的系统组件:

运行在容器中的系统组件

不运行在容器中的系统组件

例如:

kubenetes scheduler 和 kube-proxy 运行在容器中

kubelet 和容器引擎(例如 docker)不运行在容器中

在带有 systemd 的机器上,kubelet 和容器引擎将日志写入 Linux 系统的 journald 中。如果没有 systemd,kubelet 和容器引擎将日志写入目录 /var/log 中的 .log 文件。运行在容器中的系统组件则使用将日志写入目录 /var/log 中(绕过了默认的日志机制--即将日志写入stdout 和 stderr)

与容器化应用程序的日志相似,记录在 /var/log 目录下的系统组件的日志也应该进行轮转。在使用 kube-up.sh 脚本安装的集群中,这些日志文件将由 logrotate 工具进行轮转,轮转的时机是:每天或者每当日志文件超过 100MB 时。

具体是在/var/log目录下的containers,kubernetes和pods目录下

containers目录下的文件链接到pods目录下

kubernetes目录下的内容

pods目录下的内容,实际是连接到docker对应目录下的

最新文章

  1. odoo种种
  2. IE浏览器下常见的CSS兼容问题
  3. 详解Mac配置虚拟环境Virtualenv
  4. android开发之生命周期
  5. runc create container 流程分析
  6. OpenJudge就算概论-最长单词2【寻找句子内部最长的单词】
  7. 关于App.config配置文件
  8. 在linux中使用php将word文档转为pdf
  9. Apache HTTP Server suEXEC符号链接任意文件访问漏洞
  10. 【数据库摘要】12_Sql_存储过程
  11. ARC引用计数
  12. Django集成celery实战小项目
  13. riot.js教程【六】循环、HTML元素标签
  14. 鸟哥的linux私房菜学习-(二)VMware虚拟机及linux系统安装过程
  15. 隐藏Easy UI 中parent.$.modalDialog 的button
  16. P2453 [SDOI2006]最短距离
  17. DotNetCore跨平台~2.0提前发布喽
  18. Java oop(一些自己的理解,并没有展开很细)
  19. oracle中创建数据库用户,并授权
  20. 专题1:记忆化搜索/DAG问题/基础动态规划

热门文章

  1. CTCLoss如何使用
  2. shell脚本处理二进制数据
  3. 如何优雅的升级 Flink Job?
  4. Airbnb的动态kubernetes集群扩缩容
  5. Linux 启动流程及相关知识
  6. 第三天python3 字典
  7. IP地址和端口号
  8. Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准
  9. Dart 导包时类名冲突
  10. YC-Framework版本更新:V1.0.9