添加新的kubernetes master时出现未授权问题

Unauthorized issues when adding new kubernetes master

我正在尝试添加新的 master ,并且我将证书和密钥即 /etc/kubernetes/pki/apiserver-kubelet-client.crt 从当前的 master 复制到新的。我注意到在我执行“kubeadm init --config=config.yaml”之后,这个键(可能是所有键)正在改变(kubeadm init 本身是成功的)。为什么会发生这种情况,这可能是我的新主人处于 NotReady 状态的根本原因吗?

systemctl status kubelet 显示很多 *Failed to list v1.Node: Unauthorized, *Failed to list v1.Secret: 未经授权..

docker@R90HE73F:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION

k8s-master-0 Ready master 7d1h v1.13.1

k8s-master-1 Ready master 7d v1.13.1

k8s-master-2 NotReady master 104m v1.13.1

k8s-worker-0 Ready <none> 7d v1.13.1

k8s-worker-1 Ready <none> 7d v1.13.1

k8s-worker-2 Ready <none> 7d v1.13.1

顺便说一句,etcd 集群是健康的

要向 kubernetes 集群添加新的 master,您需要从现有的 kubernetes master 证书目录中复制四个文件,然后再对新的 master 执行 kubeadm init。这些文件是 ca.crt, ca.key, sa.pub, sa.key 并将这些文件复制到新主服务器上的 /etc/kubernetes/pki 文件夹。如果您不复制 sa* 文件,您的 kubernetes master 将进入 NotReady 状态并且会出现这些错误。

关于如何设置kubernetes multi master的更多信息,请查看我关于kubernetes high availability的博客:

https://velotio.com/blog/2018/6/15/kubernetes-high-availability-kubeadm