【发布时间】:2021-06-01 05:32:40
【问题描述】:
现在我的 kubernetes (v1.15.x) 部署一直在重新启动。从带有 kubernetes 仪表板的日志输出中,我看不到任何有用的东西。现在我想登录到 pod 并从我的服务的日志目录中检查日志。但是 pod 一直在重启,我没有机会登录 pod。
有什么方法可以登录restart pod或转储一些文件或查看pod中的文件?我想知道为什么 pod 总是重启。
【问题讨论】:
标签: kubernetes
现在我的 kubernetes (v1.15.x) 部署一直在重新启动。从带有 kubernetes 仪表板的日志输出中,我看不到任何有用的东西。现在我想登录到 pod 并从我的服务的日志目录中检查日志。但是 pod 一直在重启,我没有机会登录 pod。
有什么方法可以登录restart pod或转储一些文件或查看pod中的文件?我想知道为什么 pod 总是重启。
【问题讨论】:
标签: kubernetes
如果您正在运行 GKE 并且启用了 logging,您可以默认将所有容器日志获取到堆栈驱动程序日志记录的仪表板中。
现在您可以运行kubectl describe pod <pod name> 来检查退出的容器的状态码。状态码可能有助于了解重启的原因,是由于 错误 还是 OOM 已终止。
您还可以使用标志--previous 并获取重新启动的 POD 的日志
例子:
kubectl logs <POD name> --previous
在上述--previous 的情况下,您的 pod 需要但仍存在于集群中。
【讨论】:
@HarshManvar 是对的,但我想为您提供更多选择:
Debugging with an ephemeral debug container:当kubectl exec 因容器崩溃或容器映像不包含调试实用程序(例如distroless images)而不足时,临时容器可用于交互式故障排除。
Debugging via a shell on the node:如果这些方法都不起作用,您可以找到运行 pod 的主机并通过 SSH 连接到该主机。
当checking logs 或execing into the container 效率不高时,可以发现上述两种方法很有用。
【讨论】: