我有一个Kubernetes集群,其中不同的Pod在不同的命名空间中运行。我怎么知道某个吊舱是否失败了?
是否有单个命令来检查失败的Pod列表或重新声明的Pod列表?
重新启动的原因(日志)?
答案 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中,您可以检查是否有更多详细信息。