如何御载k8s、ingress、calilo、kubesphere
一、Master 节点:卸载 KubeSphere(优先删)
方式 1:yaml 安装 KubeSphere(最常见)
# 1. 卸载ks-installer核心组件 kubectl delete -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml kubectl delete -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/cluster-configuration.yaml # 2. 删除kubesphere所有命名空间资源 kubectl delete ns kubesphere-monitoring-system kubesphere-devops-system kubesphere-logging-system kubesphere-system kubesphere-controls-system # 3. 强制清理残留CRD(删不干净必执行) kubectl get crd | grep kubesphere | awk '{print $1}' | xargs kubectl delete crd
方式 2:kubekey (kk) 一键安装 KubeSphere+k8s
# 进入kk目录执行删除集群(会连带清理k8s资源,跳过后续资源清理步骤)
./kk delete cluster
二、Master 节点:卸载 ingress-nginx
Helm 安装(推荐)
helm list -n ingress-nginx helm uninstall ingress-nginx -n ingress-nginx kubectl delete ns ingress-nginx # 删除ingress crd kubectl get crd | grep ingress | awk '{print $1}' | xargs kubectl delete crd
yaml 文件安装
kubectl delete -f ingress-nginx.yaml
kubectl delete ns ingress-nginx
三、Master 节点:卸载 Calico 网络插件
yaml 部署 calico
# 删除calico全部资源 kubectl delete -f calico.yaml # 删除calico CRD kubectl get crd | grep calico | awk '{print $1}' | xargs kubectl delete crd # 删除calico命名空间 kubectl delete ns calico-system tigera-operator
Helm 部署 calico
helm uninstall calico -n calico-system kubectl delete ns calico-system tigera-operator kubectl get crd | grep calico | xargs kubectl delete crd
四、Master 节点:清空集群全部资源(彻底释放)
# 删除所有pod、svc、deploy、statefulset、pvc kubectl delete --all pods --all-namespaces --force --grace-period=0 kubectl delete --all deployments,statefulsets,daemonsets,services,pvc,pv --all-namespaces # 驱逐并删除所有worker节点 kubectl get nodes # 替换节点名执行(所有worker) kubectl drain worker-01 --delete-local-data --force --ignore-daemonsets kubectl delete node worker-01
五、所有节点(Master+Worker)执行:kubeadm 重置集群
1. 停止 kubelet 服务
sudo systemctl stop kubelet
sudo systemctl disable kubelet
2. kubeadm 强制重置
sudo kubeadm reset -f --cri-socket /run/containerd/containerd.sock # 若使用docker运行时 # sudo kubeadm reset -f --cri-socket /var/run/dockershim.sock
六、所有节点:深度清理系统残留(关键,否则重装报错)
1. 删除 k8s 核心目录
sudo rm -rf /etc/kubernetes sudo rm -rf /var/lib/kubelet sudo rm -rf /var/lib/etcd sudo rm -rf /var/lib/cni sudo rm -rf /etc/cni/net.d rm -rf ~/.kube sudo rm -rf /var/log/pods /var/log/containers
2. 清理容器运行时(containerd)
# 删除所有容器 sudo crictl rm -fa # 删除所有镜像 sudo crictl rmi -a # 清空containerd数据 sudo systemctl stop containerd sudo rm -rf /var/lib/containerd/* sudo systemctl start containerd # ========== Docker环境替换下方命令 ========== # sudo docker rm -f $(docker ps -aq) # sudo docker rmi -f $(docker images -aq) # sudo docker system prune -a --volumes -f
3. 清空 iptables/ipvs 网络规则(calico 遗留大量规则)
sudo iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X sudo ip6tables -F && ip6tables -t nat -F && ip6tables -t mangle -F && ip6tables -X sudo ipvsadm -C 2>/dev/null || true
4. 删除 calico 虚拟网卡(cni0、tunl0、calix-xxx)
# 批量删除k8s虚拟网卡 sudo ip link delete cni0 || true sudo ip link delete tunl0 || true sudo ip link delete flannel.1 || true # 查看残留网卡:ip link
七、所有节点:彻底卸载 kubeadm/kubelet/kubectl 软件包
CentOS/RHEL 系 (yum/dnf)
sudo dnf remove -y kubelet kubeadm kubectl kubernetes-cni cri-tools sudo dnf autoremove -y # 可选:删除kubernetes yum源 sudo rm -f /etc/yum.repos.d/kubernetes.repo
Ubuntu/Debian 系 (apt)
sudo apt purge -y kubelet kubeadm kubectl kubernetes-cni cri-tools sudo apt autoremove -y # 可选删除apt源 sudo rm -f /etc/apt/sources.list.d/kubernetes.list
八、收尾验证(确认卸载干净)
# 1. 无kube命令 kubeadm version kubectl version # 2. 无k8s目录 ls /etc/kubernetes ls /var/lib/kubelet # 3. 无calico/ingress/kubesphere网卡与iptables ip link sudo iptables -L
一键清理脚本(所有节点复制执行)
#!/bin/bash set -e systemctl stop kubelet systemctl disable kubelet kubeadm reset -f --cri-socket /run/containerd/containerd.sock # 清理目录 rm -rf /etc/kubernetes /var/lib/kubelet /var/lib/etcd /var/lib/cni /etc/cni/net.d ~/.kube /var/log/pods /var/log/containers # 清理容器 crictl rm -fa crictl rmi -a systemctl stop containerd rm -rf /var/lib/containerd/* systemctl start containerd # 清理网络 iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X ip6tables -F && ip6tables -t nat -F && ip6tables -t mangle -F && ip6tables -X ipvsadm -C 2>/dev/null || true ip link delete cni0 || true ip link delete tunl0 || true # 卸载包 if command -v dnf;then dnf remove -y kubelet kubeadm kubectl kubernetes-cni cri-tools && dnf autoremove -y elif command -v apt;then apt purge -y kubelet kubeadm kubectl kubernetes-cni cri-tools && apt autoremove -y fi echo "全部清理完成"

浙公网安备 33010602011771号