批量清理docker容器和镜像,彻底卸载k8s

 

# 使用 docker kill 强制终止容器
docker kill etcd1

#停止及删除所有容器
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)

#停止及删除所有镜像
docker rmi $(docker images -q)

  

彻底清理卸载 kubeadm、kubectl、kubelet

#Debian / Ubuntu
sudo apt-get purge kubeadm kubectl kubelet kubernetes-cni kube*   
sudo apt-get autoremove

//apt-get remove 会删除软件包而保留软件的配置文件
//apt-get purge 会同时清除软件包和软件的配置文件

#CentOS / RHEL / Fedora
sudo yum remove -y kubeadm kubectl kubelet kubernetes-cni kube*   
sudo yum autoremove -y

//autoremove:当使用yum install命令安装一枚软件包时,yum会将该软件包连同其所有依赖包一并安装到本机。
//          但当我们使用yum remove命令卸载一枚已安装软件包时,yum默认只会移除你所指定的那枚软件包,并不会移除该包的相关依赖包。
//          自从Fedora 18之后,可以使用yum autoremove命令来干净卸载软件包。

#Systemd服务
systemctl stop kubelet
systemctl disable kubelet
#配置清理
rm -rf /etc/systemd/system/kubelet.service
rm -rf /etc/systemd/system/kube*

#手动清理kubernetes配置
sudo rm -rf ~/.kube
sudo rm -rf /etc/kubernetes/
sudo rm -rf /var/lib/kube*

  

Kubernetes 的残留配置清理

1. 检查是否有残留的 kubelet 进程或配置


	# 检查是否有 kubelet 相关进程
	ps aux | grep -E "(kubelet|kube-proxy)"

	# 检查是否有 kubelet 服务
	systemctl list-unit-files | grep -i kube
	systemctl status kubelet 2>/dev/null

	# 检查 kubelet 配置文件
	ls -la /etc/kubernetes/
	ls -la /var/lib/kubelet/


2. 清理 Kubernetes 的 Docker 容器

	# 查看容器是否有 k8s 标签
	docker inspect xx | grep -i kubernetes


3. 完全清理 Kubernetes 残留配置

	# 1. 停止所有可能的 Kubernetes 相关服务
	systemctl stop kubelet kube-proxy flanneld etcd 2>/dev/null

	# 2. 删除所有 Kubernetes 管理的容器(危险!备份重要数据!)
	docker ps -a --filter "label=io.kubernetes.pod.name" --format "{{.ID}}" | xargs -r docker rm -f

	# 3. 清理 cni 网络配置
	rm -rf /etc/cni/net.d/*
	rm -rf /opt/cni/bin/*

	# 4. 清理 kubelet 数据目录
	rm -rf /var/lib/kubelet/*
	rm -rf /var/lib/etcd/*

	# 5. 清理 iptables 规则(Kubernetes 创建的)
	iptables -L 
	iptables -F
	iptables -t nat -F
	iptables -t mangle -F
	iptables -X
	iptables -t nat -X
	iptables -t mangle -X

	# 6. 重启 Docker
	systemctl restart docker

  

posted @ 2025-12-25 13:53  Peter.Jones  阅读(42)  评论(0)    收藏  举报