如何完全卸载kubernetes

Kir*_*bun 29 uninstall kubernetes kubeadm

我按照本指南使用kubeadm安装了kubernetes集群.经过一段时间后,我决定重新安装K8但遇到麻烦,删除所有相关文件,而不是在官方网站上找到任何文件如何删除通过kubeadm安装的集群.有人遇到了同样的问题并知道删除所有文件和依赖项的正确方法吗?先感谢您.

有关更多信息,我删除了kubeadm,kubectlkubelet,apt-get purge/remove但是当我再次开始安装集群时,我遇到了下一个错误:

[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
Run Code Online (Sandbox Code Playgroud)

Rib*_*b47 68

在我的"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
Run Code Online (Sandbox Code Playgroud)

然后重新启动计算机.


sfg*_*ups 36

使用kubeadm reset命令.这将取消配置kubernetes集群.

  • 谢谢,但我正在寻找完全卸载 kubeadm 和所有相关依赖项来解决我的根本问题 -- /sf/ask/3130205571/ ) 在重新安装之前一切正常很好,我能够看到日志。所以,我考虑在第二次安装后从我的机器上完全删除 K8s,因为我认为一些错误的安装依赖项留下并在下次安装后出现相同的问题。 (2认同)

Fin*_*inn 14

如果想让它易于重复,将其制作成脚本是有意义的。假设您使用的是基于 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
Run Code Online (Sandbox Code Playgroud)

笔记:

这将破坏与运行此命令的节点/服务器上的 Kubernetes、etcd 和 docker 相关的所有内容!


Ami*_*hra 13

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
Run Code Online (Sandbox Code Playgroud)


Ant*_*nyK 13

如果您正在清除集群以便重新启动,那么除了@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
Run Code Online (Sandbox Code Playgroud)

然后docker.io,在重新初始化集群之前,您需要重新安装、kubeadmkubectlkubelet并确保它们是您的发行版的最新版本。

编辑:发现 calico 将防火墙规则添加到raw表中,因此也需要清除。


Mat*_*hew 8

您链接的指南现在有一个“ 拆解”部分:

使用适当的凭证与主控器对话,运行:

kubectl drain <node name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node name>
Run Code Online (Sandbox Code Playgroud)

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

kubeadm reset
Run Code Online (Sandbox Code Playgroud)


小智 8

我使用以下脚本完全卸载现有的 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}'`
Run Code Online (Sandbox Code Playgroud)