部署环境:

虚拟机1:master:2cpu,2G内存,20G硬盘

虚拟机2:node1:2cpu,2G内存,20G硬盘

部署步骤:

前置准备工作省略,直接定位至,使用kubeadm 对集群进行初始化

kubeadm init --apiserver-advertise-address=192.168.52.129 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

初始化完成后,对集群进行网络配置(此处先下载好的flannel文件)

kubeclt apply -f kube-flannel.yml

问题描述:

执行完毕后,问题表现为coredns无法启动,master与node1处于NotReady状态,如图所示:

节点处于NotReady

原因排查 

1.对有问题的pod进行describe

kubectl describe po coredns-7ff77c879f-twksf -n kube-system|less

报错显示:2个节点都有污点,因此无法调度,于是对node1进行排查

 2.对node1进行describe

kubectl describe nodes node1|less

发现错误如下:
KubeletNotReady        runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

由此推断是Kubelet没有部署好,并且是网络插件导致的,因此对Kubelet进行打印

最终定位问题至flannel问题

报错:failed to find plugin "flannel" in path /opt/cni/bin

又在网上差了一些资料,得到解决方案

解决方法

Github 手动下载 cni plugin v0.8.6

地址如下:

https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz

解压后将flannel文件拷贝至 /opt/cni/bin/目录下

 tar -zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni-plugins/
 cp flannel /opt/cni/bin/ 

容器瞬间启动,master节点处于Ready状态。同理,node1进行同样操作。问题解决。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐