
是否可以在運行的 Kubernetes 叢集上更改 CIDR 網路 flannel?如果是,啟動的吊艙會發生什麼事?
謝謝
答案1
我已經成功改變絨布CIDR網路池的方式如下:
假設您已經透過以下方式安裝了新的 k8s 集群庫貝德姆在命令中採用適當--pod-network-cidr
標誌的建構器工具:kubeadm init
覆蓋podCIDR
特定 k8s 上的參數節點具有新 IP 來源範圍的資源,管道輸出的理想方式:
$ kubectl get no $hostname -o yaml >> file.yaml | sed -i "s~$old_ip~$new_ip~" file.yaml| kubectl delete no $hostname && kubectl create -f file.yaml
net-conf.json
替換相關 Flannel 中標題下的「網路」字段配置映射表使用新的網路 IP 範圍:
$ kubectl edit cm kube-flannel-cfg -n kube-system
net-conf.json: | { "網路": "10.244.0.0/16", "後端": { "類型": "vxlan" } }
擦除舊網路池中剩餘的目前 CNI 網路介面:
$ sudo ip link del cni0; sudo ip link del flannel.1
分別重新產生 Flannel 和 CoreDNS pod:
$ kubectl delete pod --selector=app=flannel -n kube-system
$ kubectl delete pod --selector=k8s-app=kube-dns -n kube-system
等待 CoreDNS Pod 從新網路池取得 IP 位址。請記住,您的自訂 Pod 仍將保留容器內的舊 IP 位址,除非您也手動重新建立它們。
答案2
對於 calico,建立新的 IP 池並停用舊的...https://projectcalico.docs.tigera.io/networking/migrate-pools