Ist es möglich, CIDR-Netzwerkflanell und Kubernetes zu ändern?

Ist es möglich, CIDR-Netzwerkflanell und Kubernetes zu ändern?

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-cidrFlags im kubeadm initBefehl:

Überschreibe podCIDRden 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.jsonder Ü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

verwandte Informationen