K8S集群删除节点

删掉节点

注意:以下操作都是在master下操作。

:先将节点设置为维护模式(k8snode2是节点名称)

kubectl drain k8snode02 --delete-local-data --force --ignore-daemonsets node/k8snode02 

:删除节点

kubectl delete node k8snode02

:确认是否已经删除

kubectl get nodes

:生成永久Token(node加入的时候会用到)

kubeadm token create --ttl 0 --print-join-command
`kubeadm join 192.168.233.3:6443 --token rpi151.qx3660ytx2ixq8jk     --discovery-token-ca-cert-hash sha256:5cf4e801c903257b50523af245f2af16a88e78dc00be3f2acc154491ad4f32a4`#这是生成的Token,node加入时使用,此``是起到注释作用,无其他用途。

:查看Token确认

kubeadm token list

node重新加入

注意:以下操作在node下操作

:停掉kubelet

systemctl stop kubelet

:删除之前的相关文件

rm -rf /etc/kubernetes/*

:加入集群

kubeadm join 192.168.233.3:6443 --token rpi151.qx3660ytx2ixq8jk     --discovery-token-ca-cert-hash sha256:5cf4e801c903257b50523af245f2af16a88e78dc00be3f2acc154491ad4f32a4

注意:如果你没有另创建Token,也许会报类似以下错:
error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists [ERROR FileAvailable--etc-kubernetes-bootstrap-kubelet.conf]: /etc/kubernetes/bootstrap-kubelet.conf already exists [ERROR Port-10250]: Port 10250 is in use [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists [preflight] If you know what you are doing, you can make a check non-fatal with--ignore-preflight-errors=... ``

所以建议建立一个永久的,当然如果考虑到安全那么就需要每一次加入之前重新创建一个临时的Token.

解决了一个报错,这不又来了一个报错,如以下报错代码:
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Unauthorized

如遇到此报错也不要急,接着在node上敲两行代码即可,如下操作:

kubeadm reset 
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

操作完后再次执行加入集群命令即可。

你可能感兴趣的:(K8S集群删除节点)