如何更改Kubernetes节点cidr?

dhxwm5r4  于 2023-04-11  发布在  Kubernetes
关注(0)|答案(3)|浏览(231)

群集具有CIDR 10.100.32.0/22,但主节点和工作节点具有172.168.0.0/24
我尝试用kubectl edit node node_name更改每个节点的CIDR,但vim只保存了一个临时的YAML文件。
我也试着用过,但好像没用。
我还尝试使用kubectl patch命令,但似乎也不起作用,返回:
节点“node_name”无效:spec.podCIDRs:禁止:节点更新不能更改podCIDR,除非从“”更改为有效
当我检查kube-controller-managerlogs(有CrashLoopBackOff状态)时,它们显示:
启动“nodeipam”时出错启动控制器时出错:无法将172.168.10.0/24idx [0]处的cidr[ www.example.com ]标记为节点已占用:node_name:cidr 172.168.10.0/24超出了群集cidr的范围10.100.32.0/22
任何建议都会有帮助,谢谢。

rsl1atfo

rsl1atfo1#

是的,出于安全考虑,该字段是只读的。您必须从头开始重新初始化节点。通常,动态更改节点IP非常冒险,我会创建一个新的。

vohkndzv

vohkndzv2#

我已经通过重新初始化整个Kubernetes集群成功地更改了CIDR。
使用kubeadm init将CIDR作为参数传递

jtjikinw

jtjikinw3#

我复制了Node资源,并删除了Kubernetes正在记账的任何属性,如managedFields。根据我的喜好更改了podCIDR,然后删除了以前的Node资源,然后应用了新的资源。然后重新启动了Kubelets。它做到了这一点。

相关问题