【k8s部署问题】:kubeadm init后coredns总处于Pending状态,解决方法
kubeadm部署K8S,2节点极限资源最小化部署,容器Pending无法启动问题解决。虚拟机1:master:2cpu,2G内存,20G硬盘虚拟机2:node1:2cpu,2G内存,20G硬盘。
·
部署环境:
虚拟机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
地址如下:
解压后将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进行同样操作。问题解决。
更多推荐
已为社区贡献2条内容
所有评论(0)