• K8s日志类型综述


    日志类型综述

    一、容器标准输出格式

    容器引擎捕获了容器stdout和stderr,为每一行附加时间戳和来源并格式化之后写入宿主机的某个文件。

    容器引擎docker:

    {"log":"I0610 08:29:07.698664 Waiting for caches to sync\n", "stream":"stderr", "time:"2021-06-10T08:29:07.698731204Z"}

    容器引擎containerd:

    2021-12-01T03:13:58.298476921Z stderr F INFO [main] Starting service [Catalina]

    二、容器日志在宿主机真实路径

    stdout:

        - /var/log/pods/default_stdtest-55f6455bb6-gmk6q_7032a5f3-b7cb-4c87-8599-3e7d7cef0057/stdtest-stdout/*.log

    emptyDir:

    /var/lib/kubelet/pods/7032a5f3-b7cb-4c87-8599-3e7d7cef0057/volumes/kubernetes.io~empty-dir/cache/test.log

    hostpath:

    /hostdir/log/default/stdtest-55f6455bb6-gmk6q/test-hostpath.log

    rootfs:

    /var/lib/docker/overlay2/19b25ba2930090ce7f4f6190d81aca68b2d8fb20e3f212e93fe331ffc6845fd0/merged/var/log/test.log

    三、POD崩溃与对日志类型的影响

    emptyDir

    以容器stdtest-empty-5487d59689-8l65n为例子:

    在cache下写入日志

    echo dusaihduasihdua >> /cache/test.log

    我们 让容器崩溃

    kill -11 1

    再次进入容器

    1. root@stdtest-empty-5487d59689-8l65n:/# cat /cache/test.log
    2. dusaihduasihdua

    文件依旧存在,当我们删除掉emptyDir的pod

    1. root@stdtest-empty-5487d59689-fbw9s:/# ls /cache/
    2. test-empty.log

    test.log消失,也就是说容器崩溃emptyDir文件不会消失,但是如果容器滚动volume会丢失

    HostPath

    在cache下写入日志

    echo dusaihduasihdua >> /cache/test.log

    我们 让容器崩溃

    kill -11 1

    再次进入容器

    1. root@stdtest-empty-5487d59689-8l65n:/# cat /cache/test.log
    2. dusaihduasihdua

    文件依旧存在

    我们删除pod

    1. root@stdtest-host-5f5bd886b5-9wgbt:/# cat /cache/test.log
    2. dusaihduasihdua

    文件依旧会存在

    结论

    Deployment 升级

    Deployment 扩缩容

    DaemonSet更新

    Statefulset更新

    pod崩溃

    pod的uid是否变化

    旧有的pod uid不变,新增的pod是新的uid

    stdout

    emptydir

    hostpath

    hostpath-subPathExpr

    rootfs

    pod的uid变化时是否会删除掉日志文件

    容器崩溃重启后是否会删除掉日志文件

  • 相关阅读:
    最新最全Flutter入门到实战视频教程
    低代码助力软件开发
    正确使用Impala的invalidate metadata与refresh语句
    查看apk签名
    NLP之基于Seq2Seq的单词翻译
    mediasoup 源码分析(五) 创建room 和 router
    Elasticsearch学习(一):基础概念
    Lua调试函数 debug.getinfo() namewhat详解
    Java数据结构与算法(一)
    苹果测试版最新发行说明,iOS 15.4支持戴口罩解锁,Dropbox和OneDrive的云存储功能被打破
  • 原文地址:https://blog.csdn.net/qq_32783703/article/details/126705072