要完全无残留地卸载 Kubernetes(k8s)集群从 Ubuntu 或类似基于 Debian 的系统中,可以遵循以下步骤。请注意,在操作前请确保备份所有重要数据,并仔细检查命令以适应您当前的环境。

1、停止并清理所有运行中的 Kubernetes 组件和服务:

使用 kubeadm 工具来清理集群:

sudo kubeadm reset --force

2、删除所有 Kubernetes 相关的 systemd 单元文件:

sudo rm -rf /etc/systemd/system/kubelet.service.d
sudo systemctl daemon-reload

3、卸载安装包kubelet kubeadm kubectl

yum remove -y kubelet kubeadm kubectl

3、停止并移除容器运行时(如 Docker 或 containerd)相关的服务:

对于 Docker:

sudo systemctl stop docker && sudo systemctl disable docker
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io

对于 containerd (在较新版本的 Kubernetes 中可能被使用):

sudo systemctl stop containerd && sudo systemctl disable containerd
sudo apt-get purge -y containerd containerd.io

4、删除 Kubernetes 相关的配置和数据目录:

sudo rm -rf /var/lib/{kubelet,kube-proxy,kube-apiserver,kube-scheduler,kube-controller-manager}
sudo rm -rf /etc/kubernetes
sudo rm -rf ~/.kube

5、清理网络配置(如 Flannel、Calico 等 CNI 插件):

根据您使用的 CNI 插件执行相应的清理操作,通常包括删除配置文件和任何网络接口或路由规则。

6、重启系统以确保所有更改生效:

sudo reboot

7、检查端口占用情况并释放相关端口:

如果在卸载过程中遇到端口占用问题(如错误信息中提到的 6443、10251 和 10252),确认没有遗留进程占用这些端口,如有则手动杀掉对应进程。

lsof -i :6443
lsof -i :10250
lsof -i :10251

8、检查相关进程

kube相关、etcd相关、k8s相关、containerd相关、以及dockerd相关进程

ps -ef | grep kube*
ps -ef | grep etcd*
ps -ef | grep k8s*
ps -ef | grep containerd*
ps -ef | grep dockerd*

通过以上步骤,应该可以从系统中彻底卸载 Kubernetes 及其依赖项。然而,请注意,根据您的具体安装和配置,可能还存在其他特定于环境的清理工作需要完成。

Logo

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

更多推荐