在 CentOS 上卸载 Kubernetes(k8s),通常分为 清理集群组件 和 清理环境 两步。下面按 kubeadm 安装方式 给出最常用、最干净的卸载流程(适用于大多数生产/测试环境)。
kubeadm reset
执行后会提示:
[reset] WARNING: Changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted.
确认即可。
如果是 多 master 集群,建议先在 worker 节点执行
kubeadm reset,再在 master 执行。
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
ipvsadm --clear # 如果启用了 ipvs
yum remove -y kubeadm kubelet kubectl
或(如果是 rpm 安装)
rpm -qa | grep kube
rpm -e <包名>
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
systemctl stop kubelet
systemctl disable kubelet
rm -f /etc/systemd/system/kubelet.service
rm -f /etc/systemd/system/kubelet.service.d/*
systemctl daemon-reload
yum remove -y docker docker-ce docker-ce-cli
rm -rf /var/lib/docker
yum remove -y containerd.io
rm -rf /var/lib/containerd
ip link delete cni0
ip link delete flannel.1
ip link delete kube-ipvs0
需要手动清理:
如果你不确定安装方式,可以告诉我:
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 |
如果你愿意,可以告诉我:
我可以给你 定制化的卸载方案 ✅