在前面的章节中,我们安装了kubenetes集群,在使用flannel插件时,服务能正常应用,但是其下属pod一直显示"CrashLoopBackOff"状态,如何处理呢?
Kubernetes 定义了 CNI 标准,有很多网络插件,这里我选择最常用的 Flannel,可以在它的 GitHub 仓库里
https://github.com/flannel-io/flannel/
应用完后,我这里检查pod的时候,提示如下信息:
CrashLoopBackOff 代表pod无法正常启动,一直在不停尝试,尝试多次后,就提示后端异常的情况
这种异常,我们可以通过kubectl describe /kubectl logs命令去排查
1,kubectl describe pod kube-flannel-ds-2x77z -n kube-flannel 看最后的events 关键信息
2,通过kubectl logs pod 定位一下原因,使用命令如下:
kubectl logs kube-flannel-ds-2x77z -n kube-flannel
报错如下:
] Error registering network: failed to acquire lease: subnet "10.244.0.0/16" specified in the flannel net config doesn't contain "10.10.0.0/24" PodCIDR of the "master" node
这里的意思是说,flannel.yml中有默认的ip网段,与用户初始化时定义的网段有出入,导致flannel无法识别。需要改一下flannel文件的ip定义。那我们去flannel.yml文件中,看看默认的ip定义。
检查master节点:
发现没有问题,再检查work节点,发现这里没改。那可能就是这个原因导致的pod服务异常
大致确认了原因,我们再修改一下,修改成自己的network-cidr.
修改完后,我们delete 原来的pod,再apply. 命令如下:
kubectl delete -f kube-flannel.yml
kubectl apply -f kube-flannel.yml
查看pod进程。逐步开始初始化
随后,就好了。
这里,yaml格式也要注意一些标点符号,大小写应为格式等细节,否则也可能报一些格式错误
Failed to create SubnetManager: error parsing subnet config: invalid character '"' after object key:value pair
那么这样我们的系统pod,就都在线了。
watch -n1 kubectl get pods -A
那么这样,flannel插件的问题基本搞定,正常运转。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。