問題
NetworkPlugin cni failed to set up pod “coredns-5d4b4db-jkmnl_kube-system” network: failed to set bridge addr: “cni0” already has an IP address different from 10.244.0.1/24
解決方案
這個問題通常是由于Flannel網絡插件殘留配置導致的IP地址沖突。以下是解決方案:
1?. 清理Flannel殘留配置?:
- 在master節點刪除Flannel部署:kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 在所有節點執行以下清理命令:
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
?2. 檢查/重建subnet.env文件?:
- 確保/run/flannel/subnet.env文件存在且內容正確,應包含:
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
```:ml-citation{ref="3,6" data="citationList"}
?3. 重新部署Flannel?:
- 確認kubeadm初始化時指定了正確的pod網絡CIDR:kubeadm init --pod-network-cidr=10.244.0.0/166
- 重新應用Flannel配置:kubectl apply -f kube-flannel.yml
?驗證解決?:
- 檢查cni0網橋IP是否變為10.244.0.1/24:ip addr show cni0
- 觀察Pod是否能夠正常啟動
如果問題仍然存在,可能需要重啟節點或檢查Calico等其他網絡插件的兼容性問題。