问题现象:搭建k8s后,各个工作节点均无异常报错信息, 搭建后工作节点node1,node2 节点长时间处于NotReady状态
添加完工作节点后,安装网络插件,否则 node 是 NotReady 状态(主节点跑)
# 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 如果上面的插件安装失败,可以选用 Weave,下面的命令二选一就可以了。 kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml kubectl apply -f http://static.corecore.cn/weave.v2.8.1.yaml # 更多其他网路插件查看下面介绍,自行网上找 yaml 安装 https://blog.csdn.net/ChaITSimpleLove/article/details/117809007
问题处理排查:
1. 检查对应问题节点日志信息--登录node2 节点中查看
journalctl -f -u kubelet.service
报错:Jun 12 15:30:49 node2 kubelet[2566]: I0612 15:30:49.278262 2566 cni.go:239] "Unable to update cni config" err="no networks found in /etc/cni/net.d"
2. 查看node2 节点的详细日志
kubectl describe node node2
报错:container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
报错解析: 网络配置问题
解决方案:
检查node2 中的 /etc/cni/net.d配置路径不存在, 直接从master主节点中scp配置文件
scp master:/etc/cni/net.d/* /etc/cni/net.d/
补充: 这里测试scp master or node1 中的/etc/cni/net.d/ 配置文件均ok
检查k8s节点状态
kubectl get nodes
# 指定node状态检查
kubectl get nodes node2
已经恢复正常