有没有办法在初始化后在kubeadm中分配pod-network-cidr?

sar*_*ftw 5 kubernetes flannel kubeadm

我曾经kubeadm初始化我的 K8 master。但是,我错过了--pod-network-cidr=10.244.0.0/16与法兰绒一起使用的标志。有没有办法(或配置文件)我可以修改以反映这个子网而无需再次执行重新初始化过程?

Arg*_*dhu 10

使用 IP 源范围覆盖所有 k8s 节点资源上的 PodCIDR 参数 10.244.0.0/16

$ kubectl edit nodes nodename
Run Code Online (Sandbox Code Playgroud)

将相关 Flannel ConfigMap 中 net-conf.json 标头下的“Network”字段替换为新的网络 IP 范围:

$ kubectl edit cm kube-flannel-cfg -n kube-system
net-conf.json: | { "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan" } }
Run Code Online (Sandbox Code Playgroud)

擦除旧网络池中剩余的当前 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 地址