是否可以更改 CIDR 网络 flannel 和 Kubernetes

是否可以更改 CIDR 网络 flannel 和 Kubernetes

是否可以在运行的 Kubernetes 集群上更改 CIDR 网络 flannel?如果可以,启动的 pod 会发生什么情况?

谢谢

答案1

我已经成功改变绒布CIDR 网络池使用方式如下:

假设你已经通过以下方式安装了全新的 k8s 集群kubeadm构建工具在命令中采用适当的--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,创建新的 IPpool 并禁用旧的....https://projectcalico.docs.tigera.io/networking/migrate-pools

相关内容