有没有想过在kubernetes中查看崩溃的pod的日志文件?我的pod在启动replicationController后将其状态列为"CrashLoopBackOff".我搜索可用的文档,但找不到任何文档.
Pra*_*h B 59
kubectl logs <podname> --previous
$ kubectl logs -h
-p, - previous [= false]:如果为true,则在pod中打印容器的上一个实例的日志(如果存在).
kubectl logs命令仅在 pod 启动并运行时才有效。如果不是,您可以使用该kubectl events命令。
kubectl get events -n <your_app_namespace> --sort-by='.metadata.creationTimestamp'
Run Code Online (Sandbox Code Playgroud)
默认情况下,它不会对事件进行排序,因此不会对--sort-by标志进行排序。
在许多情况下,kubectl logs <podname> --previous正在返回:
Error from server (BadRequest): previous terminated container "<container-name>" in pod "<pod-name>" not found
Run Code Online (Sandbox Code Playgroud)
因此,您可以尝试检查命名空间的事件 ( kubectl get events ..),如@alltej 所示。
如果您没有找到错误的原因kubectl logs / get events并且您无法使用外部日志记录工具查看它,我建议:
1 )检查 pod 运行在哪个节点上:
$kubectl get -n <namespace> pod <pod-name> -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName
NAME STATUS NODE
failed-pod-name Pending dns-of-node
Run Code Online (Sandbox Code Playgroud)
(如果删除 ,则<pod-name>可以在命名空间中看到其他 pod)。
2 ) SSH 进入该节点并:
A ) 在其中搜索失败的 pod 容器名称/var/log/containers/并转储其.log文件并搜索错误 - 在大多数情况下,错误原因将与错误发生之前发生的操作/事件一起显示在那里。
B ) 如果上一步没有帮助,请尝试通过运行来搜索最新的系统级错误:
sudo journalctl -u kubelet -n 100 --no-pager。
| 归档时间: |
|
| 查看次数: |
29086 次 |
| 最近记录: |