查看 flannel 日誌報錯以下:linux
Couldn't fetch network config: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint. timed out 沒法獲取網絡配置:客戶端:響應無效json。端點可能不是有效的etcd集羣端點。 計時結束
而後檢查 etcd 和 flannel 版本json
# ./etcd --version etcd Version: 3.4.15 Git SHA: aa7126864 Go Version: go1.12.17 Go OS/Arch: linux/amd64 # ./flanneld --version v0.11.0
而後查閱 flanneld 官網文檔,上面標準了 flannel 這個版本不能給 etcd 3 進行通訊,因此才形成了上面的問題,下面進行以下操做bash
1,中止 flannel網絡
使用本身的方法中止,ide
2,刪除 etcd 裏面剛纔建立的 keyfetch
# etcdctl get --prefix /coreos.com # etcdctl del /coreos.com/network
3, 開啓 etcd v2 API 接口插件
在 etcd 啓動命令裏面添加上以下內容,而後重啓 etcd 集羣日誌
--enable-v2
4, 使用 etcd v2 去建立 flannel 的網絡配置code
ETCDCTL_API=2 ./etcdctl set /coreos.com/network/config '{"Network": "172.16.0.0/16", "Backend": {"Type": "host-gw"}}'
5,而後啓動 flannel 服務接口
6,查看 etcd 裏面的數據是否正確
ETCDCTL_API=2 ./etcdctl ls /coreos.com/ ETCDCTL_API=2 ./etcdctl ls /coreos.com/network/config ETCDCTL_API=2 ./etcdctl ls /coreos.com/network/subnets
檢查獲得的結果是否是給你的 subnet.env 裏面配置的網絡在同一網段,若是是檢查路由表,查看是否自動添加路由
route -n
擴展: 卸載刪除 flannel 網絡插件
1,中止 flannel 網絡插件
2, 刪除 etcdctl 裏面的內容
ETCDCTL_API=2 ./etcdctl rm /coreos.com/network/config ETCDCTL_API=2 ./etcdctl rm /coreos.com/network/subnets/172.16.27.0-24 ETCDCTL_API=2 ./etcdctl rm /coreos.com/network/subnets/172.16.56.0-24 ETCDCTL_API=2 ./etcdctl rmdir /coreos.com/network/subnets
3, 刪除路由表
route del -net 172.16.88.0/24 gw 172.16.88.1
4, 刪除 flannel 程序包