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