微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重装节点无法加入Kubernetes集群

如何解决重装节点无法加入Kubernetes集群

我有一个使用 kubeadm 安装的 3 节点 k8s 集群(Ubuntu 20.04 裸机上的 v1.21.0)。我删除了其中一个节点并从头开始重新安装(擦除磁盘、新操作系统但 IP 地址相同)。现在无法加入集群:

# kubeadm join k8s.example.com:6443 --token who21h.jolq7z79twv7bf4m \
--discovery-token-ca-cert-hash sha256:f63c5786cea2be46c999f4b5c595abd0aa24896c3b37616c347df318d7406c00 \
--control-plane
...
[check-etcd] Checking that the etcd cluster is healthy
error execution phase check-etcd: etcd cluster is not healthy: Failed to dial endpoint https://65.21.128.36:2379 with maintenance client: context deadline exceeded
To see the stack trace of this error execute with --v=5 or higher

我用 kubeadm reset 运行相同的(在 --v=5 之后),但它在记录这些时卡住了:

Failed to get etcd status for https://123.123.123.123:2379: Failed to dial endpoint https://123.123.123.123:2379 with maintenance client: context deadline exceeded

123.123.123.123 是我尝试返回集群的节点的 IP 地址。

在其他 master 之一上运行 kubectl get nodes 只会列出剩余的 2 个 master。我正确删除了有问题的节点:

kubectl get nodes
kubectl drain <node-name>
kubectl drain <node-name> --ignore-daemonsets --delete-local-data
kubectl delete node <node-name>

有什么想法吗?发送。

解决方法

仔细查看您收到的错误消息:

Failed to get etcd status for https://123.123.123.123:2379: failed to dial endpoint https://123.123.123.123:2379 with maintenance client: context deadline exceeded

这是一个很常见的问题,与 etcd 集群相关,有详细记录。与以下线程进行比较:

具体来说,这与 etcd 法定人数的损失有关。您可以按照here所述进行检查。

分步说明解决方案in this comment

这里的记录是在剩余的 etcd 之一上运行的命令 豆荚:

找到要移除的成员的id

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert
/etc/kubernetes/pki/etcd/server.crt --key
/etc/kubernetes/pki/etcd/server.key member list
5a4945140f0b39d9,started,sbg2-k8s001,https://192.168.208.12:2380,https://192.168.208.12:2379
740381e3c57ef823,gra3-k8s001,https://192.168.208.13:2380,https://192.168.208.13:2379
77a8fbb530b10f4a,rbx4-k8s001,https://192.168.208.14:2380,https://192.168.208.14:2379

我想删除 740381e3c57ef823

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert
/etc/kubernetes/pki/etcd/server.crt --key
/etc/kubernetes/pki/etcd/server.key member remove 740381e3c57ef823
Member 740381e3c57ef823 removed from cluster a2c90ef66bb95cc9

检查

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert
/etc/kubernetes/pki/etcd/server.crt --key
/etc/kubernetes/pki/etcd/server.key member list
5a4945140f0b39d9,https://192.168.208.12:2379
77a8fbb530b10f4a,https://192.168.208.14:2379

现在我可以加入我的新主人了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。