请问大佬们,k8s 使用 containerd 作为容器运行时,容器日志将磁盘打满,大佬们是如何解决这种情况的

2024-03-04 16:50:47 +08:00
 lhstack
2212 次点击
所在节点    Kubernetes
10 条回复
buaacss
2024-03-04 17:17:45 +08:00
在写日志的时候就一边写一边回收,起一个 logtail 的边车,写完了就立即把日志收上去。业务不想写回收逻辑就启一个 logrotate 的边车帮他们回收。
Akiya
2024-03-05 10:09:27 +08:00
限制单个日志文件大小,限制日志文件数量
cleanery
2024-03-05 10:12:29 +08:00
日志框架都支持设置保存天数和日志大小上限吧
lhstack
2024-03-05 11:35:18 +08:00
@cleanery 输出到控制台的日志,貌似就不支持这个功能
lhstack
2024-03-05 11:36:39 +08:00
@Akiya 我知道,docker 是支持这个功能的,我这边用的是 containerd,我查看文档发现,kubelet 提供了 containerd 的日志参数,但是并不会清理日志,它会把切割后的日志存放成一个压缩文件,所以这个参数也不能满足我的需求
proxychains
2024-03-05 13:52:56 +08:00
笨方法: 再起个容器放到同一个 pod 中, 专门清理 N 天以上的日志
ExplodingFKL
2024-03-05 14:55:02 +08:00
每个 pod 配置好日志轮转 + limit,

```yaml

resources:
requests:
ephemeral-storage: "50Mi"
limits:
ephemeral-storage: "100Mi"

```
Judoon
2024-03-06 09:52:56 +08:00
@lhstack #5 你确定吗?你所说的是滚动参数,还有一个保留份数的,都设置了也没用?
lhstack
2024-03-06 11:53:41 +08:00
@Judoon 那个保留份数,我测试了一下,只会将日志文件切割为几份,但是多余的日志,它会将其压缩成.gz 的压缩文件
naoying
2024-03-19 16:51:22 +08:00
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mycontainer
image: myimage
...
logPolicy:
maxSize: "10Mi"
maxFiles: 3

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1020506

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX