【问题标题】:How can I rename master nodes in a HA kubernetes cluster?如何重命名 HA Kubernetes 集群中的主节点?
【发布时间】:2020-12-14 16:30:53
【问题描述】:

我有一个包含 3 个主节点的 Kubernetes 集群。它们被命名为 master-1、master-2 和 master-3。我想将它们重命名为 control-plane-n。

我找不到执行此操作的明确程序。最接近的是如何重命名集群中的节点。所以我只是尝试了一下。这是我所做的(我的主机运行的是 ubuntu 18.04 和 kubernetes v1.16.2):

在 master-1 上:

  • kubectl drain master-3 --ignore-daemonsets
  • kubectl 删除节点 master-3
  • 运行“kubeadm token create --print-join-command”并复制输出

在 master-3 上:

  • sudo kubeadm 重置
  • sudo hostnamectl set-hostname control-plane-3
  • 修改 /etc/cloud/cloud.cfg 以将 preserve_hostname 设置为 true
  • 重启虚拟机
  • 粘贴来自 master-1 的 join 命令,并添加了 --control-plane 选项

这是我得到的日志:

sudo kubeadm join 172.22.19.188:6443 --control-plane --token nxxzby.zsfdx86e7cv1rq0e     --discovery-token-ca-cert-hash sha256:553366c2f91fd3abffe3e3d1c39d9314e2d73e8a6181f4da9938a8e24fd77456
[preflight] Running pre-flight checks
    [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
[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'
[preflight] Running pre-flight checks before initializing the new control plane instance
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[certs] Using certificateDir folder "/data/kubernetes/pki"
error execution phase control-plane-prepare/certs: error creating PKI assets: failed to write or validate certificate "apiserver": certificate apiserver is invalid: x509: certificate is valid for master-3, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, not control-plane-3
To see the stack trace of this error execute with --v=5 or higher

我该如何继续?还是有更好的方法?

提前感谢您提供的任何想法或建议。

【问题讨论】:

  • 您为什么不创建具有正确名称的第 4 个节点,加入,然后从集群中删除其中一个旧节点。 3 次。
  • 以前的/data/kubernetes/pki 中是否有master-3 的证书?您可能需要使用kubeadm reset --cert-dir xx 来清理它们。
  • @zerkms 为什么不发布您的建议作为帮助社区的答案?
  • 我只是不确定这是否可以算作一个答案:未知数太多 :shrug:
  • 我只有 3 个主节点,它们是由一些安装脚本设置的。我不知道如何设置第 4 个节点。

标签: kubernetes high-availability


【解决方案1】:

根据@zerkms 的评论,您可以创建一个具有正确名称的第 4 个节点,加入,然后从集群中删除一个旧节点。

这样做 3 次,您将能够拥有所有具有所需名称的节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-22
    • 2021-06-22
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 2018-02-20
    相关资源
    最近更新 更多