k8s 集群部署 flannel 報錯Couldn't fetch network config: client: response is invalid json


k8s 集群部署 flannel 報錯

查看 flannel 日志報錯如下:

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 版本

# ./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 進行通信,所以才造成了上面的問題,下面進行如下操作

1,停止 flannel

使用自己的方法停止,

2,刪除 etcd 里面剛才創建的 key

# etcdctl get --prefix /coreos.com
# etcdctl del /coreos.com/network

3, 開啟 etcd v2 API 接口

在 etcd 啟動命令里面添加上如下內容,然后重啟 etcd 集群

--enable-v2

4, 使用 etcd v2 去創建 flannel 的網絡配置

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 程序包


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM