在 Kubernetes 中,Pod 是最小的部署单元,用于运行容器化的应用程序。Pod 的状态反映了其当前的运行情况。以下是 Pod 的常见状态及其含义: Pod 已被 Kubernetes 系统接受,但尚未创建容器。这通常是因为镜像正在下载,或者调度器正在寻找合适的节点来放置 Pod。 Pod 已被调度到节点上,并且所有容器都已成功启动。 Pod 正常运行。 Pod 中的所有容器都已成功运行完成,并且不会再重新启动。这通常用于一次性任务(如初始化任务或批处理作业)。 容器正常退出,退出代码为 0。 Pod 中的所有容器都已终止运行,并且至少有一个容器以失败状态退出(退出代码非 0)。 查看 Pod 的日志,了解失败原因: 检查 Pod 的事件信息: 根据日志和事件信息排查问题。 Kubernetes 无法确定 Pod 的状态,通常是因为与 Pod 所在节点的通信失败。 检查节点的状态: 查看节点的事件信息: 如果节点不可用,可以考虑将 Pod 重新调度到其他节点。 Pod 正在被删除,但尚未完全终止。Kubernetes 会等待 Pod 中的所有容器正常退出,或者超时后强制终止。 如果 Pod 需要快速终止,可以设置删除超时时间: 查看 Pod 的终止日志,了解退出原因。 Pod 被驱逐出节点,通常是因为节点资源不足(如内存不足)。 检查节点的资源使用情况: Pod 无法拉取镜像,通常是因为镜像不存在或镜像仓库不可用。 Pod 在拉取镜像时遇到错误。 查看 Pod 的事件信息: Pod 中的容器启动失败,并且 Kubernetes 正在尝试重新启动它。如果连续多次启动失败,Kubernetes 会暂停尝试,等待一段时间后再重试。 查看 Pod 的日志: 检查 Pod 的事件信息: 根据日志和事件信息排查问题。 以上十种状态是较为常见的,还有ContainerCreating这些中间状态就不一一列举详解了 END1. Pending
含义:
常见原因:
解决方法:
2. Running
含义:
常见原因:
解决方法:
3. Succeeded
含义:
常见原因:
解决方法:
4. Failed
含义:
常见原因:
解决方法:
kubectl logs
kubectl describe pod
5. Unknown
含义
常见原因:
解决方法:
kubectl get nodes
kubectl describe node
6. Terminating
含义
常见原因
解决方法:
kubectl delete pod --force --grace-period=0
7. Evicted
含义
常见原因:
解决方法:
kubectl top node
8. ImagePullBackOff
含义:
常见原因:
解决方法:
kubectl create secret docker-registry my-secret --docker-server= --docker-username= --docker-password= --docker-email=
9. ErrImagePull
含义:
常见原因:
解决方法:
kubectl describe pod
10. CrashLoopBackOff
含义:
常见原因:
解决方法:
kubectl logs
kubectl describe pod
往期推荐 1 2 3 4 5 6