Назад | Перейти на главную страницу

Можно ли поменять фланель сети CIDR и Kubernetes

Можно ли изменить фланель сети CIDR при работающем кластере Kubernetes? Если да, что будет с запущенными модулями?

Спасибо

Мне удалось изменить Фланель Сетевой пул 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 ConfigMap с новым диапазоном сетевых 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 соответственно:

$ kubectl delete pod --selector=app=flannel -n kube-system
$ kubectl delete pod --selector=k8s-app=kube-dns -n kube-system

Подождите, пока модули CoreDNS получат IP-адрес из нового сетевого пула. Имейте в виду, что ваши настраиваемые поды по-прежнему сохранят старые IP-адреса внутри контейнеров, если вы также не воссоздаете их вручную.