V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lhstack
V2EX  ›  Kubernetes

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

  •  
  •   lhstack · 292 天前 · 1832 次点击
    这是一个创建于 292 天前的主题,其中的信息可能已经有所发展或是发生改变。
    10 条回复    2024-03-19 16:51:22 +08:00
    buaacss
        1
    buaacss  
       292 天前   ❤️ 1
    在写日志的时候就一边写一边回收,起一个 logtail 的边车,写完了就立即把日志收上去。业务不想写回收逻辑就启一个 logrotate 的边车帮他们回收。
    Akiya
        2
    Akiya  
       292 天前
    限制单个日志文件大小,限制日志文件数量
    cleanery
        3
    cleanery  
       292 天前
    日志框架都支持设置保存天数和日志大小上限吧
    lhstack
        4
    lhstack  
    OP
       292 天前
    @cleanery 输出到控制台的日志,貌似就不支持这个功能
    lhstack
        5
    lhstack  
    OP
       292 天前
    @Akiya 我知道,docker 是支持这个功能的,我这边用的是 containerd,我查看文档发现,kubelet 提供了 containerd 的日志参数,但是并不会清理日志,它会把切割后的日志存放成一个压缩文件,所以这个参数也不能满足我的需求
    proxychains
        6
    proxychains  
       291 天前
    笨方法: 再起个容器放到同一个 pod 中, 专门清理 N 天以上的日志
    ExplodingFKL
        7
    ExplodingFKL  
       291 天前
    每个 pod 配置好日志轮转 + limit,

    ```yaml

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

    ```
    Judoon
        8
    Judoon  
       291 天前
    @lhstack #5 你确定吗?你所说的是滚动参数,还有一个保留份数的,都设置了也没用?
    lhstack
        9
    lhstack  
    OP
       290 天前
    @Judoon 那个保留份数,我测试了一下,只会将日志文件切割为几份,但是多余的日志,它会将其压缩成.gz 的压缩文件
    naoying
        10
    naoying  
       277 天前
    apiVersion: v1
    kind: Pod
    metadata:
    name: mypod
    spec:
    containers:
    - name: mycontainer
    image: myimage
    ...
    logPolicy:
    maxSize: "10Mi"
    maxFiles: 3
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2524 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.