錯誤截圖如下:
產生原因:
查看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插件是個坑,深深體會到了,上述總結為親身經歷,希望以后能爬更多的坑,解決更多的問題,如上為具體解決步驟