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

Kubernetes 下如何方便地获取不断重启的服务的日志

  •  
  •   feng32 · 2020 年 10 月 9 日 · 4674 次点击
    这是一个创建于 1927 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在一些条件下,服务进程可能会异常退出。在传统部署模式下,首先做的一件事,是登到服务器上看日志

    但是用了 Kubernetes,容器会被自动销毁,然后等待一段时间后再重建,这样就没法及时取得日志了

    一个显而易见的解决方法,是让服务检测机制临时失效,让问题重现一次,等调试和修复工作完成后,再让检测机制重新生效;当然也可以日志上云,这样实际上就绕过了原问题

    请问还有什么更好的解法吗?
    7 条回复    2020-10-17 14:22:04 +08:00
    ManjusakaL
        1
    ManjusakaL  
       2020 年 10 月 9 日
    容器的话 stdout/stderr 输出的日志可以搜集到 ELK 或者其余后端存储
    tcxurun
        2
    tcxurun  
       2020 年 10 月 9 日
    可以把日志挂载到宿主机
    fuis
        3
    fuis  
       2020 年 10 月 9 日
    日志管理直接上 ELK 。
    “让服务检测机制临时失效” 可以通过修改 YAML 实现,比如让 probes 返回正常,在 command args 里用 bash -c "your-service; tail -f /dev/null" 等待
    joesonw
        4
    joesonw  
       2020 年 10 月 10 日
    容器 runtime 会有日志呀. 例如 docker, 可以 json 模式写在磁盘里, 或者到 syslog, journald 等等.

    把 docker 日志改成 json 模式, 然后用 daemonSet 去采集.
    anubu
        5
    anubu  
       2020 年 10 月 10 日
    标准方法就是借助日志系统或其他方式对日志收集和转储;临时使用场景,如果不是 Pod 重启(重建)而是 Pod 里面某一个容器重启(重建),可以试试 kubectl logs 命令查看,kubectl logs deployment/nginx -c nginx-1 --previous
    jejer
        6
    jejer  
       2020 年 10 月 13 日
    kubectl logs -p 取上一次 log
    stcheng
        7
    stcheng  
       2020 年 10 月 17 日
    try fluentd
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:11 · PVG 15:11 · LAX 23:11 · JFK 02:11
    ♥ Do have faith in what you're doing.