如何完全卸载库伯内特

我在这个 向导之后使用 Kubeadm安装了 kubernetes 集群。过了一段时间,我决定重新安装 K8,但是在删除所有相关文件时遇到了麻烦,而且在官方网站上找不到任何文档说明如何通过 kubeadm 删除安装的集群。 是否有人遇到了相同的问题,并且知道删除所有文件和依赖项的正确方法?先谢谢你。

为了获得更多信息,我使用 apt-get purge/remove删除了 KubeadmKubectl忽必烈,但是当我再次开始安装集群时,我得到了下一个错误:

[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
255247 次浏览

使用 kubeadm reset命令。这将取消对 kubernetes 集群的配置。

在我的“ Ubuntu 16.04”中,我使用下面的步骤来完全删除和清理 Kubernetes (使用“ apt-get”安装) :

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

还有电脑 重新开始

您现在链接的指南有一个 拆掉部分:

用适当的凭证与主人交谈,运行:

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

然后,在被删除的节点上,重置所有 kubeadm 安装状态:

kubeadm reset
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

如果您正在清理集群以便重新启动,那么,除了@rib47所说的内容之外,我还要执行以下操作以确保我的系统处于可以再次启动 kubeadm init的状态:

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

然后,在重新初始化集群之前,需要重新安装 docker.iokubeadmkubectlkubelet,以确保它们处于发行版的最新版本。

编辑: 发现印花布添加防火墙规则到 raw表,以便需要清除以及。

我使用以下脚本完全卸载现有的 Kubernetes 集群及其运行的 docker 容器

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}'`

如果希望使其易于重复,那么将其编写成一个脚本是有意义的。这是假设您使用的是基于 Debian 的操作系统:

#!/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

注意:

这将破坏与此命令所针对的节点/服务器上的 Kubernetes、 etcd 和 docker 相关的 一切都很强大