在使用k8s主机部署nginx中,出现pod状态为ContainerCreating
通过执行 kubectl describe pod nginx-6867cdf567-zdfgs,查看日志,发现报错
大概意思就是 网络失败:networkPlugin cni未能设置pod“nginf867cdf567-zdfgs_default”网络:open/run/franland/subnet.env:没有这样的文件或目录
网上找了很多方法,最终是在节点机器中,添加subnet.env文件,文件内容为:
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
重新部署后,发现还是不能正常运行,状态为无法拉取镜像
这次报的错连接超时问题,修改dns配置文件,vim /etc/resolv.conf
重新部署服务,发现还是有问题
把dns配置改回原来配置,发现node节点机原来的dns配置是233.5.5.5,应该是223.5.5.5,后来又发现了一个不同的地方,就是/run/flannel/subnet.env下的FLANNEL_SUBNET值不一致
试试改为一致,看看能不能行,这时候想起来node节点机器是我手动添加的flannel文件,导进去的时候没看里面的配置
这时候pod就是运行状态了
总结:
使用k8s部署服务后,发现pod状态为ContainerCreating,通过kubectl describe pod pod名查看日志,发现缺少了subnet.env文件;添加subnet.env文件后提示连接超时,后发现是node节点机/etc/resolv.conf中的dns配置写错写成233.5.5.5,应该是223.5.5.5,之后修改/etc/resolv.conf文件,提示网络IP地址不同于10.244.1.1/24,最后发现是node节点机的subnet.env文件和主机的subnet.env不一致导致的,修改后pod就自动改为running状态了