10. 清理集群

清理 Node 节点

停相关进程:

  1. $ sudo systemctl stop kubelet kube-proxy kube-nginx
  2. $ sudo systemctl disable kubelet kube-proxy kube-nginx

停容器进程:

  1. $ crictl ps -q | xargs crictl stop
  2. $ killall -9 containerd-shim-runc-v1 pause

停 containerd 服务:

  1. $ systemctl stop containerd && systemctl disable containerd

清理文件:

  1. $ source /opt/k8s/bin/environment.sh
  2. $ # umount k8s 挂载的目录
  3. $ mount |grep -E 'kubelet|cni|containerd' | awk '{print $3}'|xargs umount
  4. $ # 删除 kubelet 目录
  5. $ sudo rm -rf ${K8S_DIR}/kubelet
  6. $ # 删除 docker 目录
  7. $ sudo rm -rf ${DOCKER_DIR}
  8. $ # 删除 containerd 目录
  9. $ sudo rm -rf ${CONTAINERD_DIR}
  10. $ # 删除 systemd unit 文件
  11. $ sudo rm -rf /etc/systemd/system/{kubelet,kube-proxy,containerd,kube-nginx}.service
  12. $ # 删除程序文件
  13. $ sudo rm -rf /opt/k8s/bin/*
  14. $ # 删除证书文件
  15. $ sudo rm -rf /etc/flanneld/cert /etc/kubernetes/cert
  16. $

清理 kube-proxy 和 calico 创建的 iptables:

  1. $ sudo iptables -F && sudo iptables -X && sudo iptables -F -t nat && sudo iptables -X -t nat
  2. $

清理 Master 节点

停相关进程:

  1. $ sudo systemctl stop kube-apiserver kube-controller-manager kube-scheduler
  2. $

清理文件:

  1. $ # 删除 systemd unit 文件
  2. $ sudo rm -rf /etc/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service
  3. $ # 删除程序文件
  4. $ sudo rm -rf /opt/k8s/bin/{kube-apiserver,kube-controller-manager,kube-scheduler}
  5. $ # 删除证书文件
  6. $ sudo rm -rf /etc/flanneld/cert /etc/kubernetes/cert
  7. $

清理 etcd 集群

停相关进程:

  1. $ sudo systemctl stop etcd
  2. $

清理文件:

  1. $ source /opt/k8s/bin/environment.sh
  2. $ # 删除 etcd 的工作目录和数据目录
  3. $ sudo rm -rf ${ETCD_DATA_DIR} ${ETCD_WAL_DIR}
  4. $ # 删除 systemd unit 文件
  5. $ sudo rm -rf /etc/systemd/system/etcd.service
  6. $ # 删除程序文件
  7. $ sudo rm -rf /opt/k8s/bin/etcd
  8. $ # 删除 x509 证书文件
  9. $ sudo rm -rf /etc/etcd/cert/*
  10. $