如何检查kubernetes集群中有状态集的重启原因

Dol*_*hin 0 elasticsearch kubernetes

我在kubernetes中部署了一个elasticsearch集群,现在集群pod重启了很多次。为了elasticsearch集群稳定,我想找出集群重启的原因。现在我查看重启pods日志,它只显示重启的日志输出,但是重新启动的日志没有错误,我尝试将集群设置为不自动启动,我可以看到失败时的错误输出,它显示:

StatefulSet.apps "es-cluster" is invalid: spec.template.spec.restartPolicy: Unsupported value: "Never": supported values: "Always"
Run Code Online (Sandbox Code Playgroud)

那么哪个是找出 Pod 重启原因的最佳方法?

在此处输入图片说明

hoq*_*que 5

获取重新启动的 pod 运行日志

kubectl logs -f <pod> -n <namespace> --previous


And*_*alu 5

要详细查看日志截图或 Pod 启动失败的直接原因,请运行

kubectl describe pod <pod> -n <namespace>
Run Code Online (Sandbox Code Playgroud)

理想情况下,您应该在 pod 重新启动后立即运行它(或者您可以通过删除 pod 来强制它)。除了上述建议拖尾日志的注释之外,还可以/应该这样做,直到 pod 无法启动为止。请注意,如果一个 Pod 中有多个容器,您可能还需要

kubectl logs -f <pod> -n <namespace> -c <container name> --previous
Run Code Online (Sandbox Code Playgroud)

干杯