这篇文章主要介绍“kubernetes高可用集群升级的etcd错误怎么解决”,在日常操作中,相信很多人在kubernetes高可用集群升级的etcd错误怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”kubernetes高可用集群升级的etcd错误怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
使用kubeadm创建的kubernetes高可用集群升级时出现etcd访问错误,手工删除etcd中的错误节点信息后升级成功。
正常情况kubernetes升级使用下面的命令来完成:
sudo kubeadm upgrade plan
然后按照提示操作即可。
但这一次,出线了错误:
etcd.go:480] Failed to get etcd status
经检查,是etcd的第一个节点(kubenetes的master之一)无法访问。
删除该节点:
kubectl delete node podc01
然后问题仍然存在。经查,被删除节点的etcd服务地址仍然在集群中,而且不可访问,升级无法完成。
根据网上的kubeadm说明,使用kubeadm reset将会自动删除etcd的节点信息。
但是,kubeadm reset后,经查,被删除节点的etcd服务地址仍然在集群中,而且不可访问,升级无法完成。
查看并手动删除 etcd node信息:
alias etcdv3="ETCDCTL_API=3 etcdctl --endpoints=https://[10.1.1.202]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key"
因为etcd的命令较长,先用个别名简化一下。
将上面的10.1.1.202改为自己的可用master节点IP地址。
更多etcd使用指南,可参考:
Kubernetes的etcd多节点扩容实战技巧
Kubernetes探秘-etcd节点和实例扩容
Kubernetes的etcd数据查看和迁移
Kubernetes探秘—etcd状态数据及其备份
然后,运行:
#查看etcd集群的成员: etcdv3 member list #删除etcd集群的不可访问的成员: etcdv3 member remove XXXXXXXXXX #再次查看etcd集群的成员: etcdv3 member list
然后,再来运行Kubernetes升级命令:
#检查升级状态。 sudo kubeadm upgrade plan #直接升级到Kubernetes 1.18.1版本。 #!可能需要将镜像预先部署到所有节点上。 sudo kubeadm upgrade apply v1.18.2
升级成功。
到此,关于“kubernetes高可用集群升级的etcd错误怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。