K8s常见故障排查及解决方案

一. k8s集群频繁重启节点之后,可能会出现一下问题

1. 查看pod的信息时发现报错:open /run/flannel/subnet.env: no such file or directory

查看各个节点,包括master 节点是否有/run/flannel/subnet.env,内容应该是类似如下:

FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

若有节点没有该文件那就拷贝一份,再次进行部署,应该就不会报这个错了。

2. 部署服务,发现服务无法暴露,服务间调用不通

先执行ifconfig,查看下节点的网络情况。
在这里插入图片描述
会发现有两个网关,如果网络有问题,可以先看看两个的网络段是不是一致。

在部署K8s的时候,我使用的是flannel网络插件,也可以使用calico插件,但是都会出现频繁重启或者运行时间长了之后出现部署服务之后,无法发现服务的问题,可以采用以下方式试着解决。

建议:在生产场景中,建议提前规划好k8s的网络,如果中途更换网络插件,产生的影响会比较大。

重新部署网络插件,建议不要更换,还是用之前的插件,只需要重新部署下就行。

第一步,在master节点删除flannel
kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
第二步,在node节点清理flannel网络留下的文件
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
rm -f /etc/cni/net.d/*

执行完上面的操作,重启kubelet,然后需要把之前部署的应用都重新启动一下,会发现服务已经可以发现了。也是一个小技巧,反正我的问题,得到了解决。

猜你喜欢

转载自blog.csdn.net/bacawa/article/details/129122366