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 错误、退出码信息等)。
使用场景
- 排查容器重启原因(比如 OOMKilled、Segmentation fault)。
- 结合
kubectl describe pod查看 Pod 事件,可以知道容器为何退出。 - CrashLoopBackOff 问题定位 → 必须依赖
--previous才能拿到崩溃前的日志。