温馨提示×

centos k8s怎么卸载干净

小樊
33
2026-08-04 21:35:40
栏目: 智能运维

卸载 CentOS 上的 Kubernetes(k8s) 要分情况,下面给你一套**从“能删干净”到“最彻底”**的完整流程,适用于 kubeadm 安装 的常见场景(最常用)。


一、先确认你的 k8s 是怎么装的

最常见的是:

  • kubeadm 安装(90% 情况)
  • ❌ 二进制 / Rancher / k3s / kind(下面也会简单说明)

先确认:

which kubeadm
kubectl version

二、标准卸载流程(kubeadm 安装)

1️⃣ 重置 k8s 集群(最重要)

所有节点(master + worker) 执行:

kubeadm reset -f

说明:

  • 会停掉 kubelet
  • 删除 iptables / ipvs 规则
  • 删除 /etc/kubernetes

2️⃣ 停止并禁用 kubelet

systemctl stop kubelet
systemctl disable kubelet

3️⃣ 卸载 k8s 相关软件包

yum remove -y kubeadm kubectl kubelet kubernetes-cni

如果还有残留:

rpm -qa | grep kube

4️⃣ 删除配置和数据目录(非常关键)

rm -rf /etc/kubernetes
rm -rf /var/lib/kubelet
rm -rf /var/lib/etcd
rm -rf /var/lib/cni
rm -rf /etc/cni
rm -rf ~/.kube

5️⃣ 清理网络规则

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

如果你是 ipvs:

ipvsadm --clear

6️⃣ 删除 k8s 网卡(如果有)

ip link delete cni0
ip link delete flannel.1
ip link delete vxlan.calico

(没有就忽略)


7️⃣ 卸载容器运行时(Docker / containerd)

Docker

systemctl stop docker
yum remove -y docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker

containerd

systemctl stop containerd
yum remove -y containerd
rm -rf /var/lib/containerd

三、彻底清理(可选但推荐)

清理 yum 源

rm -f /etc/yum.repos.d/kubernetes.repo

清理网络接口 & 路由

ip route flush table all
ip rule flush

四、验证是否卸载干净

ps -ef | grep kube
iptables -L -n
ip link
df -h

五、如果是 k3s / Rancher / 二进制

k3s

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

Rancher

docker rm -f $(docker ps -aq)
rm -rf /var/lib/rancher

二进制

  • 手动删除 systemd 服务
  • 删除 /opt/k8s 等目录

六、常见坑提醒 ⚠️

问题 说明
重装失败 没删 /etc/kubernetes
Pod 网络异常 没清 iptables
etcd 冲突 没删 /var/lib/etcd
重启后还有 k8s kubelet 没 disable

七、一句话总结 ✅

kubeadm reset → 删目录 → 清 iptables → 卸载容器运行时


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

  • ✅ CentOS 7 还是 8 / Stream?
  • ✅ 单节点还是多节点?
  • ✅ 是否要 重装

我可以直接给你一条命令版重装方案

0