如何更改kubernetes节点的名称

时间:2017-09-01 19:18:39

标签: kubernetes

我在kubernetes集群中有一个正在运行的节点。有没有办法可以改名呢?

我试过

  1. 使用kubectl delete
  2. 删除节点
  3. 更改节点
  4. 中的名称
  5. 重新添加节点。
  6. 但节点不会开始。

    任何人都知道应该怎么做?

    由于

2 个答案:

答案 0 :(得分:4)

Usualy它的kubelet负责以特定名称注册节点,因此您应该更改节点的kubelet配置,然后它应该弹出为新节点。

答案 1 :(得分:2)

目前无法更改节点名称,这需要您删除并重新加入该节点。 您需要确保将主机名更改为新名称,然后删除该节点,将其重置并重新加入。

(您会注意到,使用命令:kubectl edit node,如果尝试保存名称,则会收到错误消息: 您所做的更改的副本已存储到“ /tmp/kubectl-edit-qlh54.yaml” 错误:apiVersion,种类和名称中的至少一项已更改 )

理想情况下,您已删除其上正在运行的吊舱。 您可以尝试运行kubectl drain <node_name_to_rename>。如果还没有完成,后果自负。 --ignore-daemon-sets可用于忽略无法驱逐的吊舱的可能问题。

简而言之,对于已重命名并且不在CentOS 7上的集群中的节点:

kubectl delete node <original-nodename>

然后以根用户身份在要重新加入的节点上:

kubeadm reset

检查输出,并查看其是否适用于您的设置(以备进一步清理)。

现在在主节点上生成加入命令:

export KUBECONFIG=/etc/kubernetes/admin.conf #(or wherever you have it)
kubeadm token create --print-join-command

在刚刚重置的工作节点上运行输出:

kubeadm join <masternode_ip_address>:6443 --token somegeneratedtoken --discovery-token-ca-cert-hash sha256:somesha256hashthatyougotfromtheabovecommand

如果您运行kubectl get nodes,它将立即以新名称显示

在我的情况下输出:

W0220 10:43:23.286109   11473 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.17" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

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.

享受重命名的节点!

基于来源:https://www.youtube.com/watch?v=TqoA9HwFLVU