要完全无残留地卸载 Kubernetes(k8s)集群从 Ubuntu 或类似基于 Debian 的系统中,可以遵循以下步骤。请注意,在操作前请确保备份所有重要数据,并仔细检查命令以适应您当前的环境。
使用 kubeadm 工具来清理集群:
sudo kubeadm reset --force
sudo rm -rf /etc/systemd/system/kubelet.service.d
sudo systemctl daemon-reload
对于 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
sudo rm -rf /var/lib/{kubelet,kube-proxy,kube-apiserver,kube-scheduler,kube-controller-manager}
sudo rm -rf /etc/kubernetes
sudo rm -rf ~/.kube
根据您使用的 CNI 插件执行相应的清理操作,通常包括删除配置文件和任何网络接口或路由规则。
sudo reboot
如果在卸载过程中遇到端口占用问题(如错误信息中提到的 6443、10251 和 10252),确认没有遗留进程占用这些端口,如有则手动杀掉对应进程。
lsof -i :6443
lsof -i :10250
lsof -i :10251
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 及其依赖项。然而,请注意,根据您的具体安装和配置,可能还存在其他特定于环境的清理工作需要完成。