Containerd节点业务容器标准输出日志写入过快导致节点数据盘使用率过高
问题现象
Containerd节点上业务容器标准输出不断写入大量日志,导致/var/lib/containerd目录占用空间不断增长,同时节点上容器创删速度变慢,进一步出现磁盘使用率过高、Pod驱逐、节点异常等现象。
问题根因
对于使用Containerd运行时的节点上业务容器,若日志输出方式采用容器标准输出,其日志转储由节点上kubelet组件完成,除负责业务容器标准输出日志转储外,kubelet还负责节点上所有容器生命周期的维护操作。
若节点上业务容器过多,业务容器标准日志输出过快,会导致kubelet持续高负荷运行,超过一定限度会出现日志转储,进而日志累积导致磁盘使用率过高。同时因为kubelet高负荷运行此时节点上容器创删等操作也会受影响。
解决方法
一般场景下,以8U16G节点、数据盘大小为100G为例,建议单容器的日志标准输出速率不超过512KB/s,节点上所有容器总体日志标准速率建议不超过5MB/s。若确实存在大量日志输出场景,可考虑以下方式优化:
- 避免日志输出过多的容器调度在同一个节点。例如给此类应用配置Pod间反亲和,或减少单节点的Pod数量上限。
- 考虑单独挂盘,如用户创建节点时挂载额外用户数据盘或应用动态挂载存储等等,然后将业务日志输出到额外挂载盘中的文件。
节点运行 所有常见问题
- 集群可用,但节点状态为“不可用”?
- CCE集群中的节点无法远程登录,如何排查解决?
- 如何重置CCE集群中节点的密码?
- 如何收集CCE集群中节点的日志?
- 如何解决yum update升级操作系统导致的容器网络不可用问题?
- Node节点vdb盘受损,通过重置节点仍无法恢复节点?
- CCE集群节点中安装kubelet的端口主要有哪些?
- 如何配置Pod使用GPU节点的加速能力?
- 容器使用SCSI类型云硬盘偶现IO卡住
- docker审计日志量过大影响磁盘IO
- thinpool磁盘空间耗尽导致容器或节点异常时,如何解决?
- 节点上监听了哪些端口
- GPU节点使用nvidia驱动启动容器排查思路
- 节点NTP时间不同步
- Containerd节点业务容器标准输出日志写入过快导致节点数据盘使用率过高
- 为什么kubectl top命令查看节点内存使用超过100%?
- 节点事件中一直出现“镜像回收失败”告警
more