尝试在我的GKE中运行knative服务时。 Pods给我CrashLoopBackOff错误。该如何解决?
答案 0 :(得分:1)
CrashLoopBackOff是Kubernetes的pod状态。这意味着您的Pod经常发生故障并重新启动,Kubernetes有时会降低Pod的重启速度以节省集群资源。
有几种方法可以调试此错误:
此人获取有关pod状态的所有信息,并仔细查看此处的状态部分至关重要。
kubectl get pod $podname -o yaml
这显示了带有时间轴和一些其他信息的pod发生了什么
kubectl describe pod $podname
此显示的是日志,但前一个窗格是完整的,因此日志从头到尾都已结束。没有上一部分,它将显示当前窗格,并且可能不会显示所有日志。
kubectl logs $podname --previous
最后一个不是命令而是方法,如果您真的想在容器中挖掘并且上面的命令没有帮助,则将sidecar添加到pod中并检查文件系统是否存在错误,或者将.spec.restart设置为Never和exec。
答案 1 :(得分:1)
根据CrashLoopBackOff,按照以下步骤,上述答案是正确的。
如上所述,在describe pod命令的输出中,
containers: [CONTAINER_NAME]: last state: exit code
字段。
如果退出代码为0,请验证您的应用运行了多长时间。当应用程序的主进程退出时,容器退出。如果您的应用很快完成执行,容器可能会继续重新启动。
kubectl exec -it [POD_NAME] -- /bin/bash
如果您的Pod中有多个容器,请添加-c [CONTAINER_NAME]
。
您现在可以使用该容器通过运行bash命令进行测试。
以下是Kubernetes Engine的所有Troubleshooting问题的链接。