无法部署Pod且NOMINATED NODE显示<none>的排查求助
Pod创建异常排查方案
一、处理OOMKilled状态的Pod(pic-applet-example-anc-pic-66c9cc4df4-xvqkf)
- 查看Pod资源配置与事件详情:执行
kubectl describe pod pic-applet-example-anc-pic-66c9cc4df4-xvqkf,重点关注Resources段的内存请求/限制,以及Events中OOM触发的具体日志。 - 检查内存实际占用:若集群部署了metrics-server,执行
kubectl top pod pic-applet-example-anc-pic-66c9cc4df4-xvqkf,对比实际内存使用量与配置的限制值。 - 查看崩溃前容器日志:执行
kubectl logs pic-applet-example-anc-pic-66c9cc4df4-xvqkf --previous,排查是否存在内存泄漏、突发内存占用过高的业务逻辑问题。 - 调整资源配置:若确认是内存不足导致,可增大Pod的
memory limit,或优化应用代码减少内存消耗。
二、处理ImagePullBackOff状态的Pod(anc-pic-1-6f6f4f8766-4nwms)
- 验证镜像地址正确性:执行
kubectl describe pod anc-pic-1-6f6f4f8766-4nwms,检查Containers段的Image字段,确认镜像名称、标签、仓库地址是否无误。 - 节点手动拉取镜像测试:登录到节点
mynode23,执行docker pull <镜像完整地址>,排查是否存在私有仓库权限缺失、网络不通、镜像不存在等问题。 - 检查镜像拉取密钥:若使用私有镜像仓库,确认Pod所在Namespace是否配置了有效的
imagePullSecret,密钥是否包含正确的仓库认证信息。 - 查看节点kubelet日志:在
mynode23节点执行journalctl -u kubelet,查找镜像拉取失败的具体错误提示,定位根因。
三、处理DNSConfigForming警告
- 查看集群DNS配置:执行
kubectl get configmap coredns -n kube-system,检查CoreDNS的配置中是否包含过多的搜索域;也可通过kubectl config view --minify查看集群级DNS设置。 - 检查Pod自定义DNS配置:执行
kubectl describe pod <目标Pod名>,查看DNS相关字段,确认是否存在Pod级别的自定义搜索域导致总长度/数量超限。 - 精简DNS搜索路径:移除不必要的搜索域,若为集群级配置则修改CoreDNS的ConfigMap;若为Pod级则调整Pod的
dnsConfig字段。 - 验证DNS功能:在正常运行的Pod中执行
nslookup <集群内服务名>,确认DNS解析是否正常,排查该警告是否实际影响业务功能。
内容的提问来源于stack exchange,提问作者MikiBelavista
相关产品推荐
相关产品推荐

