Est-il possible de modifier le réseau de réseau CIDR sur le cluster Kubettes en cours d'exécution? Si oui, que se passera-t-il avec les pods lancés?
Merci
J'ai réussi à changer flannel pool de réseau CIDR de la manière suivante:
En supposant que vous ayez installé un cluster de K8S frais via Kubeadm Builder Tool avec adopter approprié --pod-network-cidr
Drapeau dans kubeadm init
commande:
Remplacement podCIDR
Paramètre sur la ressource particulière des K8s noeud avec une nouvelle gamme de sources IP, une manière souhaitable avec la sortie de la tuyauterie:
$ 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
Remplacer le champ "Réseau" sous net-conf.json
En-tête dans le flanelle correspondant configmap avec une nouvelle gamme de IP de réseau:
$ kubectl edit cm kube-flannel-cfg -n kube-system
net-Conf.json: | {"Network": "10.244.0.0/16", "Backend": {"Type": "VXLAN"}}
Essuyez les interfaces réseau CNI actuelles restant l'ancien pool de réseau:
$ Sudo ip link del cni0; Sudo ip link del flannel.1
Re-Spawn Flannel et Coredns Pods respectivement:
$ kubectl delete pod --selector=app=flannel -n kube-system
$ kubectl delete pod --selector=k8s-app=kube-dns -n kube-system
Attendez que les pods Coredns obtiennent une adresse IP d'un nouveau pool de réseau. N'oubliez pas que vos gousses personnalisées conserveront toujours les anciennes adresses IP à l'intérieur des conteneurs, à moins que vous ne les créiez également manuellement.