kubectl logs--previous参数(查看上一个容器日志)

kubectl logs--previous 参数是一个很实用的选项,主要用于排查容器异常重启(CrashLoopBackOff、OOMKilled 等)时的日志

具体含义:

  • 默认情况 (kubectl logs pod -c container)
    获取的是容器 当前正在运行实例 的日志。
    如果容器已经崩溃并被 Kubernetes 重启,新实例启动后,旧日志就不会显示。

  • 加上 --previous 参数
    会让 kubectl logs 去获取 上一个已终止容器实例 的日志。
    这对于定位容器为什么崩溃非常关键。


举例

假设 Pod xxxx 的某个容器异常退出,K8s 重启了它。

  • kubectl logs xxxx -n px
    查看的是 当前新容器实例 的日志。
  • kubectl logs xxxx -n px --previous
    查看的是 刚刚崩溃的旧容器实例 的日志(通常包含异常堆栈、OOM 错误、退出码信息等)。

使用场景

  1. 排查容器重启原因(比如 OOMKilled、Segmentation fault)。
  2. 结合 kubectl describe pod 查看 Pod 事件,可以知道容器为何退出。
  3. CrashLoopBackOff 问题定位 → 必须依赖 --previous 才能拿到崩溃前的日志。