我在部署一些应用程序。我有的是时间
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pic-applet-example-anc-pic-66c9cc4df4-xvqkf 0/1 OOMKilled 543 (5m19s ago) 46h 45.234.76.51 mynode23 <none> <none>
anc-pic-1-6f6f4f8766-4nwms 0/1 ImagePullBackOff 0 43h 45.234.76.57 mynode23 <none> <none>
字符串
当我查看事件时,
DNSConfigForming 100s (x12084 over 43h) kubelet Search Line limits were exceeded, some search paths have been omitted, the applied search line is: default.svc.cluster.local svc.cluster.local cluster.local xmp.net.intra net.intra eu.net.intra
型
如何查看是什么阻止了pod的创建?
2条答案
按热度按时间gblwokeq1#
DNSConfigForming 100 s(x12084 over 43 h)kubelet搜索行超出限制,部分搜索路径被省略,应用的搜索行为:default.svc.cluster.local svc. cluster.local cluster.local xmp.net.intra net.intra eu.net.intra
当满足以下条件时会出现上述错误:NGINX Controller主机系统上的/etc/resolv.conf文件中包含三个以上用户定义的搜索域。您可能会在以下位置遇到此消息:/var/log/messages文件
Kubernetes最多可以有六个搜索域。在/etc/resolv.conf文件中最多只能定义三个搜索域,因为CoreDNS在运行时而不是在文件中创建三个搜索域。
解决问题:
您可以验证NGINX Controller主机系统的/etc/resolv.conf文件的搜索域不超过三个,以解决此问题。如果超过三个,则减少在节点的/etc/resolv.conf文件中建立的自定义搜索域的数量将解决此问题。
要使修改在编辑resolv.conf文件后在新Pod中生效,您可能需要重新启动Kubelet和coredns部署:
每个节点上:
字符串
在运行kubectl的机器上:
型
您可以参考此Lumigo doc来解决图像拉回和OOM killed错误。如需进一步参考,您也可以参考此官方文档和Steven西尔维斯特撰写的blog。
dsf9zpds2#
对于第一个pod,您没有足够的内存分配给pod中的容器,增加其内存资源请求和限制。
对于第二个pod,k8s无法拉取pod模板的容器规范中提到的docker镜像。检查image:标签并验证它是否存在。