
Ist es möglich, das CIDR-Netzwerkflanell im laufenden Kubernetes-Cluster zu ändern? Wenn ja, was passiert mit den gestarteten Pods?
Danke
Antwort1
Ich habe es geschafft, mich zu ändernFlanellCIDR-Netzwerkpool auf folgende Weise:
Vorausgesetzt, Sie haben einen neuen K8S-Cluster installiert überAbonnierenBuilder-Tool mit Übernahme des entsprechenden --pod-network-cidr
Flags im kubeadm init
Befehl:
Überschreibe podCIDR
den Parameter für die jeweiligen K8sKnotenRessource mit einem neuen IP-Quellbereich, wünschenswerter Weg mit Piping-Ausgabe:
$ 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
Ersetzen Sie das Feld „Netzwerk“ unter net-conf.json
der Überschrift im entsprechenden FlanellKonfigurationskartemit einem neuen Netzwerk-IP-Bereich:
$ kubectl edit cm kube-flannel-cfg -n kube-system
net-conf.json: | { "Netzwerk": "10.244.0.0/16", "Backend": { "Typ": "vxlan" } }
Löschen Sie die aktuellen CNI-Netzwerkschnittstellen, die im alten Netzwerkpool verbleiben:
$ sudo ip link del cni0; sudo ip link del flannel.1
Flannel- und CoreDNS-Pods jeweils neu starten:
$ kubectl delete pod --selector=app=flannel -n kube-system
$ kubectl delete pod --selector=k8s-app=kube-dns -n kube-system
Warten Sie, bis CoreDNS-Pods eine IP-Adresse aus einem neuen Netzwerkpool erhalten. Beachten Sie, dass Ihre benutzerdefinierten Pods weiterhin die alten IP-Adressen in Containern behalten, sofern Sie sie nicht auch manuell neu erstellen.
Antwort2
Erstellen Sie für Calico einen neuen IP-Pool und deaktivieren Sie den alten …https://projectcalico.docs.tigera.io/networking/migrate-pools