检查Kubernetes集群中失败的Pod日志

时间:2020-08-22 19:01:22

标签: kubernetes

我有一个Kubernetes集群,其中不同的Pod在不同的命名空间中运行。我怎么知道某个吊舱是否失败了?

是否有单个命令来检查失败的Pod列表或重新声明的Pod列表?

重新启动的原因(日志)?

2 个答案:

答案 0 :(得分:0)

这将起作用:kubectl get pods --all-namespaces | | grep -Ev '([0-9]+)/\1'

此外,Lens在这些情况下还不错。

答案 1 :(得分:0)

取决于您是要获取详细信息还是要检查最后几个失败的容器。

我建议您阅读有关Logging Architecture的信息。

如果您希望获得此详细信息,则应使用Kubernetes文档-Logging Using Elasticsearch and Kibana或另一个FluentD中所述的第三方软件。

如果您正在使用Cloud环境,则可以使用与Cloud Logging集成的工具(即在Google Cloud Platform中可以使用Stackdriver)。

如果您想检查日志以查找pod失败的原因,请在K8s文档Debug Running Pods中对它进行很好的描述。

如果您想从特定的容器中获取日志

$ kubectl logs ${POD_NAME} -n {NAMESPACE}

首先,查看受影响容器的日志:

$ kubectl logs ${POD_NAME} ${CONTAINER_NAME} 

如果您的容器以前曾崩溃过,则可以使用以下命令访问先前容器的崩溃日志:

$ kubectl logs --previous ${POD_NAME} ${CONTAINER_NAME}

您可以使用的其他信息

$ kubectl get events -o wide --all-namespaces | grep <your condition>

类似的问题发布在this SO thread中,您可以检查是否有更多详细信息。

相关问题