如何解决kube1.20.2如何修改control-palne,master节点的名字
我成功地在我的虚拟机中设置了一个控制平面主节点。然后我复制了vm,试图将复制的vm加入到现有的kubernete集群中。
问题是原来的vm(node)的名字是new-master-1,复制的节点名字是一样的。即使在我 vi /etc/hostname
并将复制的 vm 的名称更改为 new-master-2 之后,在复制的 vm 中运行 kubectl get nodes
后,输出名称仍然是 new-master-1
:
root@new-master-2:/home/hzg# kubectl get nodes
NAME STATUS ROLES AGE VERSION
new-master-1 Ready control-plane,master 32h v1.20.2
我想我只能在看到名称更改为 new-master-2
后才能将复制的 vm 作为另一个主节点加入集群,对吗?如何更改节点的名称?
解决方法
TL;DR:
运行:kubeadm join
- 根据 kubeadm token create
的输出调整此命令,并根据需要添加 --control-plane
和 --node-name
等标志。在继续之前查看 kubeadm join。
kubelet
以特定名称注册节点。通常你可以Reconfigure a Node's Kubelet in a Live Cluster。但是在更改节点名称时它不适用。如果你尝试使用 kubectl edit node
,你会得到一个错误:
error: At least one of apiVersion,kind and name was changed
不过还是有办法的。您需要更改主机名,然后移除节点、重置并重新加入。
这是步骤。在需要更改名称的节点上:
-
更改主机名。
-
运行:
kubectl delete node <nodename>
(注意你仍然必须使用旧的节点名称) -
运行:
kubeadm reset
(如果需要,作为root
)
现在,在原来的主节点上:
-
运行:
export KUBECONFIG=/path/to/admin.conf
-
运行:
kubeadm token create --print-join-command
回到重命名的节点:
- 运行:
kubeadm join
- 根据kubeadm token create
的输出调整此命令,并根据需要添加--control-plane
和--node-name
等标志。在继续之前,请查看 kubeadm join。
您可以查看 this source 的教程视频。
示例:
kube-master:~$ kubectl get nodes
NAME STATUS
kube-master Ready
kube-node-1 Ready
kube-node-2 Ready
kube-master:~$ kubectl delete node kube-node-2
node "kube-node-2" deleted
kube-node-2:~$ sudo kubeadm reset
[reset] WARNING: Changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted.
[reset] Are you sure you want to proceed? [y/N]: y
kube-node-2:~$ sudo kubeadm join --node-name kube-node-22 <rest-of-the-join-command>
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
kube-master:~$ kubectl get nodes
NAME STATUS
kube-master Ready
kube-node-1 Ready
kube-node-22 Ready
结果:kube-node-2
的名称已成功更改为 kube-node-22
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。