Pod是Kubernetes最小可调度单元,由一个或多个共享网络、存储和生命周期的容器组成;其状态包括Pending、Running、Succeeded、Failed、Unknown;常用操作有kubectl run、exec、logs、delete;调度受nodeSelector、affinity、taints/tolerations、resources影响;排查启动失败需先kubectl describe查看Events,再检查镜像、资源、配置及日志。
Kubernetes 中 Pod 是最小的可调度单元,管理好 Pod 是集群稳定运行的基础。 它不是独立运行的进程,而是由一个或多个紧密关联的容器组成的逻辑主机,共享网络、存储和生命周期。理解 Pod 的创建、状态、调度机制和常见问题处理方式,是日常运维和应用部署的核心能力。
Pod 从创建到终止会经历多个阶段,Kubelet 持续监控并上报其状态。常用状态包括:
通过 kubectl get pods 查看简略状态,用 kubectl describe pod 查看事件(Events)和容器详细状态,这是定位启动失败最直接的方式。
虽然生产环境推荐使用控制器(如 Deployment)管理 Pod,但调试和临时任务仍需直接操作:
kubectl run debug-pod --image=busybox:1.35 -- sleep 3600
kubectl exec -it debug-pod -- sh(注意指定容器名若 Pod 含多个容器)kubectl logs debug-pod;查看前 10 行:kubectl logs debug-pod --tail=10;跟踪实时日志:kubectl logs -f debug-pod
kubectl delete pod debug-pod(控制器会自动重建,除非是裸 Pod)Kubernetes 默认使用默认调度器将 Pod 分配到合适节点,但可通过以下方式干预调度行为:
disktype: ssd
影响 cgroup 限制)当 Pod 卡在 Pending 或 CrashLoopBackOff,按顺序检查:
kubectl describe pod ,重点看 Events 区域(如 “FailedScheduling”、“ImagePullBackOff”、“Failed to pull image”)kubectl describe nodes 查看 Allocatable 和 Used)kubectl logs --previous (上一次崩溃的日志)