又一次偷偷化解了可能发生的重大事故。不想看过程的可以直接跳到末尾看处理方案。
一个网络错误
某天,上kplcloud构建一个测试应用,构建完成之后发现新pod一直启动失败,并且抛出了以下错误信息:
Failed create pod sandbox: rpc error: code = Unknown desc = NetworkPlugin cni failed to set up pod "xxxxxx-fc4cb949f-gpkm2_xxxxxxx" network: netplugin failed but error parsing its diagnostic message "": unexpected end of JSON input
会k8s的运维同学早已不在,突然出问题了怎么办?
试着开始解决问题。
一、有没有可能是镜像拉取失败,开始找问题:
- 登录集群所有服务器查看空间是否占满(然而并没有占满)
- 查询集群所有服务器网络情况(也没有问题)
- 再启一个pod试试?(起不来)
这就尴尬了…,有没有可能是calico的问题?
二、查看服务器报错信息
尝试以下命令看服务器的报错信息:
$ journalctl -exf
确实有一些错误信息:
这个错误太广泛了,继续尝试从其他地方找找问题。
此时已经开始在思考如何跑路的问题了…
要不尝试从重启能否解决?
风险太大,不能冒险。虽然很多时候重启能解决大部分问题,但重启docker、k8s在这种情况下不是最佳选择。
继续搜刮日志,猜测是无法分配IP的问题,那目标转向calico
从calico-node上面找问题
查询ip池是否用完。
使用cal