温馨提示×

CentOS卸载K8s怎么操作

小樊
44
2026-07-21 08:50:35
栏目: 智能运维

CentOS 上卸载 Kubernetes(k8s),通常分为 清理集群组件清理环境 两步。下面按 kubeadm 安装方式 给出最常用、最干净的卸载流程(适用于大多数生产/测试环境)。


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

1️⃣ 在 Master 节点执行(重置集群)

kubeadm reset

执行后会提示:

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

确认即可。

如果是 多 master 集群,建议先在 worker 节点执行 kubeadm reset,再在 master 执行。


2️⃣ 清理 iptables / IPVS 规则

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

ipvsadm --clear   # 如果启用了 ipvs

3️⃣ 卸载 kubeadm / kubelet / kubectl

yum remove -y kubeadm kubelet kubectl

或(如果是 rpm 安装)

rpm -qa | grep kube
rpm -e <包名>

4️⃣ 删除 Kubernetes 相关目录

rm -rf /etc/kubernetes
rm -rf /var/lib/etcd
rm -rf /var/lib/kubelet
rm -rf /root/.kube
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/cni
rm -rf /run/flannel

5️⃣ 停止并删除 kubelet 服务

systemctl stop kubelet
systemctl disable kubelet
rm -f /etc/systemd/system/kubelet.service
rm -f /etc/systemd/system/kubelet.service.d/*
systemctl daemon-reload

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

如果用的是 Docker

yum remove -y docker docker-ce docker-ce-cli
rm -rf /var/lib/docker

如果用的是 containerd

yum remove -y containerd.io
rm -rf /var/lib/containerd

7️⃣ 清理网络接口(如有残留)

ip link delete cni0
ip link delete flannel.1
ip link delete kube-ipvs0

二、如果是二进制方式安装的 K8s(较少见)

需要手动清理:

  • systemd 服务文件
  • 二进制文件(/usr/local/bin/kube*)
  • 证书目录
  • etcd 数据目录

如果你不确定安装方式,可以告诉我:

which kubeadm
kubectl version --client

三、一键清理脚本(慎用 ⚠️)

适合测试环境:

kubeadm reset -f
systemctl stop kubelet
yum remove -y kubeadm kubelet kubectl
rm -rf /etc/kubernetes /var/lib/etcd /var/lib/kubelet /root/.kube
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

四、卸载后检查

ps -ef | grep kube
ip a
iptables -L

五、常见场景建议

场景 建议
测试环境 直接 reset + 删除目录
生产环境 先驱逐 Pod,再逐步下线
重装 k8s reset 后直接重新 init
多节点集群 worker 先 leave,再 master reset

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

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ k8s 版本
  • ✅ 单节点还是多节点
  • ✅ 是否使用 Docker / containerd

我可以给你 定制化的卸载方案

0