在搭建集群过程中,有时候会遇到一个节点处于ready状态,另一个节点处于notready状态,需要把node节点从集群中删除后再次加入。

node节点删除

如果需要在k8s集群中删除节点,首先需要在master节点上删除该节点的相关数据,再删除该节点,接着在该节点上进行reset操作,接着删除相关文件。

1. 在master上查看所有node节点

[root@master ~]# kubectl get node
NAME     STATUS     ROLES    AGE   VERSION
master   Ready      master   23h   v1.17.4
node01   Ready      <none>   23h   v1.17.4
node02   NotReady   <none>   23h   v1.17.4

可以看到node2处于NotReady状态,我们把node2删除重新加入集群。

2. 在主节点上删除node2节点

# 在主节点上驱逐该node节点上的Pod
kubectl drain node02 --delete-local-data --force --ignore-daemonsets

# 在主节点上删除该node节点
kubectl delete node node02

3. 在node02节点上清空集群信息

# 重置k8s
kubeadm reset

# 删除残留的文件
rm -rf /etc/kubernetes/*

# 清除iptables或者ipvs的配置
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
ipvsadm --clear

如果删除的是master节点,还需要删除用户目录下的.kube文件

rm -rf ~/.kube

最后重启设备。

添加node节点

# node节点上删除之前的证书
rm -f /opt/kubernetes/ssl/kubelet*
# 重启kubelet 
systemctl restart kubelet

# 在主节点上生成一个证书
kubeadm token create --print-join-command
kubeadm token create --print-join-command --ttl=0   # 此命令可以生成一个永久性的token

在node节点上执行token命令

kubeadm join 192.168.2.104:6443 --token f5pth3.fm2oupz828pl70s4  --discovery-token-ca-cert-hash sha256:5fd5bfbef1ed2d48b872cd95beb99a7a470582d28cc499ba577b8bbd9c2e7735 

在主节点上查看node检查是否添加成功

kubectl get nodes
Logo

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

更多推荐