How to completely uninstall kubernetes

I installed kubernetes cluster using kubeadm following this guide. After some period of time, I decided to reinstall K8s but run into troubles with removing all related files and not finding any docs on official site how to remove cluster installed via kubeadm. Did somebody meet the same problems and know the proper way of removing all files and dependencies? Thank you in advance.

For more information, I removed kubeadm, kubectl and kubelet using apt-get purge/remove but when I started installing the cluster again I got next errors:

[preflight] Some fatal errors occurred: Port 6443 is in use Port 10251 is in use Port 10252 is in use /etc/kubernetes/manifests is not empty /var/lib/kubelet is not empty Port 2379 is in use /var/lib/etcd is not empty 
1

7 Answers

In my "Ubuntu 16.04", I use next steps to completely remove and clean Kubernetes (installed with "apt-get"):

kubeadm reset sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube* sudo apt-get autoremove sudo rm -rf ~/.kube 

And restart the computer.

3

use kubeadm reset command. this will un-configure the kubernetes cluster.

3

If you are clearing the cluster so that you can start again, then, in addition to what @rib47 said, I also do the following to ensure my systems are in a state ready for kubeadm init again:

kubeadm reset -f rm -rf /etc/cni /etc/kubernetes /var/lib/dockershim /var/lib/etcd /var/lib/kubelet /var/run/kubernetes ~/.kube/* iptables -F && iptables -X iptables -t nat -F && iptables -t nat -X iptables -t raw -F && iptables -t raw -X iptables -t mangle -F && iptables -t mangle -X systemctl restart docker 

You then need to re-install docker.io, kubeadm, kubectl, and kubelet to make sure they are at the latest versions for your distribution before you re-initialize the cluster.

EDIT: Discovered that calico adds firewall rules to the raw table so that needs clearing out as well.

kubeadm reset /*On Debian base Operating systems you can use the following command.*/ # on debian base sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube* /*On CentOs distribution systems you can use the following command.*/ #on centos base sudo yum remove kubeadm kubectl kubelet kubernetes-cni kube* # on debian base sudo apt-get autoremove #on centos base sudo yum autoremove /For all/ sudo rm -rf ~/.kube 
2

The guide you linked now has a Tear Down section:

Talking to the master with the appropriate credentials, run:

kubectl drain <node name> --delete-local-data --force --ignore-daemonsets kubectl delete node <node name> 

Then, on the node being removed, reset all kubeadm installed state:

kubeadm reset 
1

I use the following scripts to completely uninstall an existing Kubernetes cluster and its running docker containers

sudo kubeadm reset sudo apt purge kubectl kubeadm kubelet kubernetes-cni -y sudo apt autoremove sudo rm -fr /etc/kubernetes/; sudo rm -fr ~/.kube/; sudo rm -fr /var/lib/etcd; sudo rm -rf /var/lib/cni/ sudo systemctl daemon-reload sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X # remove all running docker containers docker rm -f `docker ps -a | grep "k8s_" | awk '{print $1}'` 

If wanting to make it easily repeatable, it would make sense to make this into a script. This is assuming you are using a Debian based OS:

#!/bin/sh # Kube Admin Reset kubeadm reset # Remove all packages related to Kubernetes apt remove -y kubeadm kubectl kubelet kubernetes-cni apt purge -y kube* # Remove docker containers/ images ( optional if using docker) docker image prune -a systemctl restart docker apt purge -y docker-engine docker docker.io docker-ce docker-ce-cli containerd containerd.io runc --allow-change-held-packages # Remove parts apt autoremove -y # Remove all folder associated to kubernetes, etcd, and docker rm -rf ~/.kube rm -rf /etc/cni /etc/kubernetes /var/lib/dockershim /var/lib/etcd /var/lib/kubelet /var/lib/etcd2/ /var/run/kubernetes ~/.kube/* rm -rf /var/lib/docker /etc/docker /var/run/docker.sock rm -f /etc/apparmor.d/docker /etc/systemd/system/etcd* # Delete docker group (optional) groupdel docker # Clear the iptables iptables -F && iptables -X iptables -t nat -F && iptables -t nat -X iptables -t raw -F && iptables -t raw -X iptables -t mangle -F && iptables -t mangle -X 

NOTE:

This will destroy everything related to Kubernetes, etcd, and docker on the Node/server this command is run against!

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like