温馨提示×

Debian如何卸载K8s集群

小樊
52
2026-08-01 12:37:47
栏目: 智能运维

在 Debian 系统上卸载 Kubernetes(K8s)集群,通常取决于你是如何安装 K8s 的(kubeadm、k3s、microk8s、二进制等)。下面以最常见、最标准的 kubeadm 安装方式为主,给出完整、安全的卸载步骤。


一、如果是用 kubeadm 安装的集群(最常见)

1️⃣ 清空集群(在 Master 节点执行)

kubectl delete node --all

如果还能连上集群,这一步可避免节点残留


2️⃣ 重置 kubeadm(每个节点都要执行)

sudo kubeadm reset

执行完成后会提示:

[reset] WARNING: Changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted.

✅ 推荐加 -f 强制清理:

sudo kubeadm reset -f

3️⃣ 清理 iptables / IPVS 规则

sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -X

如果启用了 IPVS:

sudo ipvsadm --clear

4️⃣ 卸载 Kubernetes 软件包(Debian)

sudo apt remove -y kubeadm kubectl kubelet
sudo apt autoremove -y

5️⃣ 删除 Kubernetes 目录

sudo rm -rf \
  /etc/kubernetes \
  /var/lib/etcd \
  /var/lib/kubelet \
  /var/lib/cni \
  /etc/cni \
  /opt/cni

6️⃣ 删除 CNI 网络配置(如有)

sudo rm -rf /etc/cni/net.d
sudo ip link delete cni0
sudo ip link delete flannel.1

7️⃣ 删除 Docker / containerd(可选)

如果不再需要容器运行时:

Docker

sudo apt remove -y docker.io docker-ce
sudo rm -rf /var/lib/docker

containerd

sudo apt remove -y containerd
sudo rm -rf /var/lib/containerd

二、如果是 k3s(轻量 K8s)

sudo /usr/local/bin/k3s-uninstall.sh

如果是 agent 节点:

sudo /usr/local/bin/k3s-agent-uninstall.sh

三、如果是 microk8s

sudo snap remove microk8s

四、验证是否已完全卸载

ps aux | grep kube
ip a
sudo iptables -L

确认:

  • 无 kubelet / apiserver 进程
  • 无 cni0 / flannel 网卡
  • iptables 规则清空

五、常见问题

❓ 卸载后还能看到 k8s 容器?

docker ps -a
docker rm -f $(docker ps -aq)

或 containerd:

crictl rm --all

❓ 虚拟机 / 云服务器建议

最干净方式:直接销毁节点重装系统
✅ 适合生产环境回滚


六、总结(推荐顺序)

kubeadm reset -f
apt remove kubeadm kubectl kubelet
rm -rf /etc/kubernetes /var/lib/kubelet
iptables -F

如果你愿意,可以告诉我:

  • ✅ 单节点还是多节点?
  • ✅ kubeadm / k3s / 其他?
  • ✅ Debian 版本(11 / 12)?

我可以给你精确到命令级别的卸载方案

0