将 master 节点服务器从 k8s 集群中移除并重新加入
2024-08-21 03:04:23
背景
1 台 master 加入集群后发现忘了修改主机名,而在 k8s 集群中修改节点主机名非常麻烦,不如将 master 退出集群改名并重新加入集群(前提是用的是高可用集群)。
操作步骤
ssh 登录另外一台 master 节点将要改名的 master 节点移出集群。
kubectl drain blog-k8s-n0
kubectl delete node blog-k8s-n0
登录已退出集群的 master 服务器重置 kubelet 配置并重新加入集群。
kubeadm reset
kubeadm join k8s-api:6443 --token ****** \
--discovery-token-ca-cert-hash ****** \
--control-plane --certificate-key ****** \
--v=5
加入失败,错误信息如下:
I0109 21:26:48.440711 3893 etcd.go:107] etcd endpoints read from pods: https://10.0.1.81:2379,https://10.0.1.32:2379,https://10.0.1.33:2379
I0109 21:26:48.455921 3893 etcd.go:166] etcd endpoints read from etcd: https://10.0.1.81:2379,https://10.0.1.32:2379,https://10.0.1.33:2379
I0109 21:26:48.455975 3893 etcd.go:125] update etcd endpoints: https://10.0.1.81:2379,https://10.0.1.32:2379,https://10.0.1.33:2379
I0109 21:27:08.469938 3893 etcd.go:388] Failed to get etcd status for https://10.0.1.81:2379: failed to dial endpoint https://10.0.1.81:2379 with maintenance client: context deadline exceeded
failed to dial endpoint https://10.0.1.81:2379 with maintenance client: context deadline exceeded
etcd cluster is not healthy
从错误信息看 etcd 集群不知道 10.0.1.81 已经退出 k8s 集群,etcd 集群中还保存着 10.0.1.81 的信息,所以在加入时连接 10.0.1.81 失败。
登录其中一台正常的 master ,进入 etcd 容器:
docker exec -it $(docker ps -f name=etcd_etcd -q) /bin/sh
查看 etcd 集群的成员列表,果然其中还有那台已经退出集群的服务器 blog-k8s-n0
$ 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
12637f5ec2bd02b8, started, blog-k8s-n0, https://10.0.1.81:2380, https://10.0.1.81:2379, false
17d58f8d29164d23, started, k8s-master1, https://10.0.1.32:2380, https://10.0.1.32:2379, false
19441808830db070, started, k8s-master2, https://10.0.1.33:2380, https://10.0.1.33:2379, false
在容器中将这台服务器从 etcd 集群中移除
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 12637f5ec2bd02b8
移除之后之前退出集群的服务器就能成功加入集群。
最新文章
- iOS开发阶段技能总结
- AngularJS入门心得1——directive和controller如何通信
- div中的内容垂直居中的五种方法
- 1085. Perfect Sequence (25)
- javaweb学习总结(四十四)——监听器(Listener)学习
- (转载)在Delphi中利用MSDASC来配置数据库链接
- nginx配置记录
- VSTO之旅系列(二):创建Excel解决方案
- 关于springmvc 方法注解拦截器的解决方案,多用于方法的鉴权
- 关于foo的一个面试题
- C语言博客作业—一二维数组
- Hibernate学习(七)———— hibernate中查询方式详解
- windows server 2008 远程连接
- Java EE 8 来了
- image 标签src
- powershell上传证书
- 【vue】项目编译报错‘npm ERR! **@**dev: `webpack-dev-server --inline --progress --config ’’
- 计蒜客 30999 - Sum - [找规律+线性筛][2018ICPC南京网络预赛J题]
- NO.2:自学tensorflow之路------BP神经网络编程
- shell ln
热门文章
- win10子系统ubuntu内的nginx启动问题
- [BOI2008] Elect - 背包dp
- PP: Multi-Horizon Time Series Forecasting with Temporal Attention Learning
- PHP不使用第三个变量,如何实现两个变量值互换(变量值自定)
- DataGrid 的DataSource重新加载数据
- Linux安装Tomcat,解决不能访问Manager App
- Oracle 中的 Incarnation 到底是个什么?实验操作篇
- ❀❀ selenium 学习网站 ★★★★★
- 解决 IDEA 无法提示导入 java.util.Date 的问题
- 什么是kafka,怎么使用? (2) - 内含zookeeper等