温馨提示×

centos部署k8s如何卸载

小樊
38
2026-07-21 08:16:31
栏目: 智能运维

CentOS 上卸载 Kubernetes(k8s),通常分为 单节点(如 kubeadm 安装)手动部署集群 两种情况。下面以 最常用、最标准的 kubeadm 方式 为主进行说明,并补充 kubectl / kubelet / kubeadm 完全清理 的方法。


一、使用 kubeadm 安装的 Kubernetes 卸载(推荐)

1️⃣ 重置 kubeadm(关键步骤)

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

sudo kubeadm reset

会清理 iptables、CNI、证书、etcd 数据等

如提示需要强制:

sudo kubeadm reset --force

2️⃣ 清理 iptables 规则

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

3️⃣ 卸载 kubelet / kubeadm / kubectl

sudo yum remove -y kubelet kubeadm kubectl

或(如果是 rpm 安装):

sudo rpm -e kubelet kubeadm kubectl

4️⃣ 删除 Kubernetes 相关目录

sudo rm -rf \
  /etc/kubernetes \
  /var/lib/kubelet \
  /var/lib/etcd \
  /var/lib/cni \
  /etc/cni \
  /opt/cni \
  $HOME/.kube

5️⃣ 停止并禁用 kubelet

sudo systemctl stop kubelet
sudo systemctl disable kubelet

6️⃣ 卸载 CNI 网络插件(如有)

例如 Calico / Flannel:

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

二、如果是 Docker + Kubernetes

卸载 Docker(可选)

sudo yum remove -y docker \
  docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-engine

清理数据(⚠️ 会删除所有容器和镜像):

sudo rm -rf /var/lib/docker

三、如果是 containerd

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

四、确认是否完全卸载

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

应看不到:

  • kubelet
  • kube-apiserver
  • cni0 / flannel

五、常见错误 & 解决

❌ kubeadm reset 卡住

sudo systemctl stop kubelet
sudo kubeadm reset --force

❌ 端口仍被占用

sudo netstat -tunlp | grep 6443

六、总结(最精简卸载流程)

kubeadm reset
yum remove -y kubelet kubeadm kubectl
rm -rf /etc/kubernetes /var/lib/kubelet /var/lib/etcd
iptables -F

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

  • CentOS 版本(7 / 8 / Stream)
  • 安装方式(kubeadm / rancher / 二进制)
  • 是否要重装 k8s

我可以给你 完全定制化的卸载 + 重装方案

0