这个错误说明有节点掉线下,需要重新加入到集群。

-----k8s节点重置方法-----
实现思路:
正常主节点重新生成token,删除另外2个异常节点,让异常节点用新的token重启加入集群。

操作过程:
(操作服务器:正常主节点)
# 根据节点名称,删除有问题的节点
kubectl delete nodes node1 node2

# 查看VIP,查得主节点的VIP,节点加入集群里用VIP
ip addr|grep 100.8

# 打包正常配置备用
cd /etc/kubernetes && tar -czvf k8sConf.tar.gz admin.conf pki/ca.crt pki/ca.key pki/sa.key pki/sa.pub pki/front-proxy-ca.crt pki/front-proxy-ca.key pki/etcd/ca.crt pki/etcd/ca.key

# 保存配置文件到本地
sz k8sConf.tar.gz

# 重新生成token,并记录新的token信息(kubeadm join masterIp:6443 -- token ...)
kubeadm token create --print-join-command

(操作服务器:异常节点node1)
# 重置异常节点
## 重置节点
kubeadm reset

## 删除IPTABLES配置
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

## 删除配置
rm -rf $HOME/.kube/config

## 上传刚刚下载的正常配置文件(k8sConf.tar.gz)
rz

## 解压配置文件到“/etc/kubernetes”目录
tar -xzvf k8sConf.tar.gz

# 将node1服务器加入集群
kubeadm join masterIp:6443 -- token ...(生成的新token内容) --control-plane

# 加入集群执行完后,查看结果,node1上的etcd\apiserver是否处于Running状态
kubectl get pod -n kube-system -o wide

# 查看节点信息,观察node1节点是否处于Ready状态,以及是否为master角色
kubectl get nodes -o wide

# 参照node1服务器的处理方法,重置node2节点
# 主要步骤
1、查看删除结果并等待删除完成,即node2Name节点消失
kubectl get node -n kube-system -o wide
kubectl get pod -n kube-system -o wide
2、重置节点
kubeadm reset
3、处理iptable
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
4、删除配置
rm -rf $HOME/.kube/config
5、上传刚刚下载的正常配置文件(k8sConf.tar.gz)
rz
6、解压配置文件到“/etc/kubernetes”目录
tar -xzvf k8sConf.tar.gz
7、将node2服务器加入集群
kubeadm join masterIp:6443 -- token ...(生成的新token内容) --control-plane
8、加入集群执行完后,查看结果
kubectl get pod -n kube-system -o wide
9、查看节点信息
kubectl get nodes -o wide

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐