是否可以更改 CIDR 網路 flannel 和 Kubernetes

是否可以更改 CIDR 網路 flannel 和 Kubernetes

是否可以在運行的 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

相關內容