zoukankan      html  css  js  c++  java
  • k8s安装网络插件flannel 时出现报错Init:ImagePullBackOff 无法安装成功

    错误截图如下:

     产生原因:

    查看kube-flannel.yml文件时发现quay.io/coreos/flannel:v0.12.0-amd64

    quay.io网站目前国内无法访问

    第一种解决办法:

         下载flannel:v0.12.0-amd64导入到docker中

          可以去https://github.com/coreos/flannel/releases官方仓库下载镜像    

            

       第二种解决办法:

          由于已经执行完命令【kubectl apply -f kube-flannel.yml】,执行完这个命令之后会自动生成一个文件,文件名为【kube-flannel.yml】,使用命令【cat kube-flannel.yml】可以打开这个文件

                         文件内部详情为截图:

                          

                    

                       

            下拉镜像:quay.io/coreos/flannel:v0.13.1-rc1
                如果拉取较慢,可以改为:quay-mirror.qiniu.com/coreos/flannel:v0.13.1-rc1

                 下拉镜像:gcr.io/google_containers/kube-proxy
                可以改为: registry.aliyuncs.com/google_containers/kube-proxy

                               

                             如何替换呢?

                               使用命令:【vi kube-flannel.yml】把截图中红框圈起来的地址替换掉

         第三种解决办法:

                      由于镜像地址是被屏蔽的,所以可以用加速器VPN,这样启动后就可以直接下载,也就不用修改yml文件了

      既然已经下载了部分插件,那么就得执行下删除命令,删除后,再重新下载

         卸载finnel插件命令

    #第一步,在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
    systemctl restart kubelet

    删除命令执行完后,就是重新下载

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

    第四种解决办法:(推荐!!!)

            直接使用命令【vi kube-flannel.yml】更改镜像源

        

         替换为国内源 【lizhenliang/flannel:v0.11.0-amd64

              替换完之后,执行删除命令

    kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

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

           

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

       

          总算给搞定了!

          kube-flannel插件是个坑,深深体会到了,上述总结为亲身经历,希望以后能爬更多的坑,解决更多的问题,如上为具体解决步骤

  • 相关阅读:
    Java FileInputStream与FileReader的区别
    java 保存和读取本地json文件
    java写文件时往末尾追加文件(而不是覆盖原文件),的两种方法总结
    Java魔法堂:注解用法详解——@SuppressWarnings
    使用Restlet Client发送各种Get和Post请求
    postman VS restlet client基本使用
    Java获取请求客户端的真实IP地址
    dom4j解析xml字符串实例
    C++ Boost库简介(一些自己的感受)
    打仗其实最讲成本核算,大炮轰的都是黄金,日军在中国就是不断赔本
  • 原文地址:https://www.cnblogs.com/xiaoyingzhanchi/p/14322823.html
Copyright © 2011-2022 走看看