Kri*_*454 1 networking cidr kubernetes kubeadm
是否可以在运行 Kubernetes 集群时更改 CIDR 网络法兰绒?如果是,启动的 Pod 会发生什么?
谢谢
我设法通过以下方式更改Flannel CIDR 网络池:
假设您已经通过kubeadm builder 工具安装了一个新的 k8s 集群,并--pod-network-cidr
在kubeadm init
命令中采用了适当的标志:
使用新的 IP 源范围覆盖podCIDR
特定 k8s节点资源上的参数,管道输出的理想方式:
$ 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
Run Code Online (Sandbox Code Playgroud)
用新的网络 IP 范围替换net-conf.json
相关 Flannel ConfigMap 中标头下的“网络”字段:
$ kubectl edit cm kube-flannel-cfg -n kube-system
Run Code Online (Sandbox Code Playgroud)
net-conf.json: | {“网络”:“10.244.0.0/16”,“后端”:{“类型”:“vxlan”}}
擦除旧网络池中剩余的当前 CNI 网络接口:
$ sudo ip link del cni0; sudo ip link del flannel.1
Run Code Online (Sandbox Code Playgroud)
分别重新生成 Flannel 和 CoreDNS pod:
$ kubectl delete pod --selector=app=flannel -n kube-system
$ kubectl delete pod --selector=k8s-app=kube-dns -n kube-system
Run Code Online (Sandbox Code Playgroud)
等待 CoreDNS pod 从新的网络池中获取 IP 地址。请记住,除非您手动重新创建它们,否则您的自定义 Pod 仍将保留容器内的旧 IP 地址。