【发布时间】: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