群集具有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
任何建议都会有帮助,谢谢。
3条答案
按热度按时间rsl1atfo1#
是的,出于安全考虑,该字段是只读的。您必须从头开始重新初始化节点。通常,动态更改节点IP非常冒险,我会创建一个新的。
vohkndzv2#
我已经通过重新初始化整个Kubernetes集群成功地更改了CIDR。
使用
kubeadm init
将CIDR作为参数传递jtjikinw3#
我复制了
Node
资源,并删除了Kubernetes正在记账的任何属性,如managedFields
。根据我的喜好更改了podCIDR
,然后删除了以前的Node
资源,然后应用了新的资源。然后重新启动了Kubelets。它做到了这一点。