k8s集群master节点的删除和重新加入

一、剔除master1节点

1)删除master1节点

3台master下掉一个,剩下2个master运行基本也没问题。坚持个一两天问题不大。

bash 复制代码
kubectl drain paas-m-k8s-master-1 --delete-local-data --force --ignore-daemonsets
kubectl delete node paas-m-k8s-master-1

2)清理etcd数据

a.进入etcd容器

bash 复制代码
kubectl -n kube-system exec -it etcd-paas-m-k8s-master-2 -- /bin/sh

b.查看member list

bash 复制代码
etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member list

c.剔除已删除的master1

bash 复制代码
etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member remove 7eab7c23b19f6778

二、master1重新加入

1)重置下master1

bash 复制代码
kubeadm reset

2)配置一个对域名apiserver.cluster.local的解析

修改 /etc/hosts

bash 复制代码
正常的master的ip apiserver.cluster.local

3)在master2上生成join命令

bash 复制代码
kubeadm init phase upload-certs --upload-certs
kubeadm token create --print-join-command

4)master1加入集群

bash 复制代码
kubeadm join apiserver.cluster.local:6443 \
--token yubedv.0rg185no5jgqwn07 \
--discovery-token-ca-cert-hash sha256:be87c7200420224f1f8d439a5f058de7be88282eec1fc833b346b38c62ddf482 \
--control-plane --certificate-key 23d8e27402b4f982d9ec894c37b1a3271c9f27bef2e653ca471426cc57025324

三、问题修复

1)域名解析不到apiserver.cluster.local

解决:

直接在/ets/hosts里配上

bash 复制代码
正常的master的ip apiserver.cluster.local

2)kubelet的端口占用

解决:

kubeadm join时会启动kubelet

bash 复制代码
使用kubeadm reset 重置配置

3)etcd目录不为空

解决:

删除即可。

bash 复制代码
rm -rf /var/lib/etcd

4)etcd健康检查失败

查看:

bash 复制代码
etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member list

解决:

删除即可

bash 复制代码
etcdctl --endpoints=127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key member remove 7eab7c23b19f6778
相关推荐
探索云原生2 小时前
终于搞懂 Kueue:5 个核心对象一次讲透
linux·docker·ai·云原生·kubernetes
众人皆醒我独醉2 小时前
etcd,其实不是你以为的"数据库"——Kubernetes 大脑的六个反直觉真相
面试·kubernetes
月落星还在3 小时前
Spring MVC 与 Spring Boot:从“手动挡”到“自动驾驶”的进化论,兼谈前后端分离的哲学
spring boot·spring·云原生·mvc
蜀道山老天师4 小时前
从零读懂 K8s:核心概念、集群架构与工作原理
容器·架构·kubernetes
静待雨落6 小时前
Docker 高频命令
docker·容器
Database_Cool_6 小时前
数据库性能不够用,升级到什么方案好?阿里云 PolarDB(云原生数据库领导者,兼容 MySQL/PostgreSQL/Oracle)平滑升级与百倍弹性
数据库·阿里云·云原生
霸道流氓气质6 小时前
微服务架构核心概念业务示例
微服务·云原生·架构
ai_coder_ai7 小时前
编写自动化脚本,在自己后端服务中使用云原生Baas服务进行数据库相关操作
数据库·云原生·自动化
OsDepK8 小时前
Windows快速部署Docker
运维·docker·容器
AOwhisky8 小时前
Python 学习笔记(第六期)——函数:定义、参数传递与作用域
笔记·python·学习·云原生·运维开发·函数·参数传递