kubeadm部署k8s 排错 (初学)

环境 :1 台master 2台node

在用kubeadm 安装k8s时,如果flannel镜像拉不下来,就类似于下面的情况,因为网络都不通

master和node都是 NotReady

[root@k8s-master .kube]# kubectl get  nodes 
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   NotReady    master   23h   v1.15.0
k8s-node1    NotReady    <none>   23h   v1.15.0
k8s-node2    NotReady    <none>   23h   v1.15.0

我在安装pod网络插件flannel是执行下面的代码

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db1 1b/Documentation/kube-flannel.yml

其实 kube-flannel.yml这个文件里有定义flannel镜像的名字,你可以先wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
将kube-flannel.yml下载下来,然后vi 打开,可以看到定义flannel所需要的镜像名字 ,

如图需要的是 quay.io/coreos/flannel:v0.11.0-amd64
在这里插入图片描述
可是执行了kubectl apply -f

https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml,去看pod 发现其中一个或者多个flannel 异常,如下图

[root@k8s-master .kube]# kubectl get pods --all-namespaces 
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
default       nginx-554b9c67f9-6k8zx               1/1     Running   0          23h
kube-system   coredns-bccdc95cf-2f894              1/1     Running   3          23h
kube-system   coredns-bccdc95cf-txm77              1/1     Running   3          23h
kube-system   etcd-k8s-master                      1/1     Running   1          23h
kube-system   kube-apiserver-k8s-master            1/1     Running   1          23h
kube-system   kube-controller-manager-k8s-master   1/1     Running   2          23h
kube-system   kube-flannel-ds-amd64-dgndz          1/1     Running   0          23h
kube-system   kube-flannel-ds-amd64-nbn4b          1/1     Running   0          23h
kube-system   kube-flannel-ds-amd64-rds4j          0/1     Init:ImagePullBackOff   0          23h
kube-system   kube-proxy-bwbwm                     1/1     Running   1          23h
kube-system   kube-proxy-c7dr7                     1/1     Running   1          23h
kube-system   kube-proxy-q8m56                     1/1     Running   1          23h
kube-system   kube-scheduler-k8s-master            1/1     Running   2          23h

可是等了好久,还是如上图flannel状态还是 Init:ImagePullBackOff 无非就是镜像没有拉取下来

给所有docker 使用阿里云的镜像加速器

cat > /etc/docker/daemon.json  << EOF
{  
  "registry-mirrors": ["https://hccwwfjl.mirror.aliyuncs.com"]  
}  
EOF

然后 systemctl restart docker 重启docker,如果还拉不下来镜像,可以更换一个flannel镜像

docker pull lizhenliang/flannel:v0.11.0-amd64

上面说了需要的是 quay.io/coreos/flannel:v0.11.0-amd64

可以修改 lizhenliang/flannel:v0.11.0-amd64 为所需要的quay.io/coreos/flannel:v0.11.0-amd64

docker tag  docker tag lizhenliang/flannel:v0.11.0-amd64     quay.io/coreos/flannel:v0.11.0-amd64

其实也可以改kube-flannel.yml 这个文件里 改成现在下载的 lizhenliang/flannel:v0.11.0-amd64

然后执行 kubectl apply -f kube-flannel.yml

两种方法都可以,但是我们其他node已经是quay.io/coreos/flannel:v0.11.0-amd64,所以我们还是改镜像名字

kubectl get pods –all-namespaces这条命令并不是特备详细

kubectl get pods -n kube-system -o wide 这条命令可以清楚看出来是哪个节点/IP上pod或者镜像有问题

在这里插入图片描述
如果是其他的镜像状态不对 看看是不是镜像没有拉取下来,可以给docker增加 加速器,只要镜像能正常获取下载,一般没有问题。

Logo

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

更多推荐