快速卸载
1. 卸载说明
本文档用于完全卸载通过 quick_install.sh 脚本部署的 CSGHub 应用、K3s 集群及相关依赖组件,适用于需要彻底清理环境、重新部署的场景。
重要警告:卸载操作不可逆,会删除所有 CSGHub 数据(数据库、模型、配置等)、K3s 集群资源及相关存储文件,请务必提前备份重要数据后再执行。
2. 前置准备
确认当前部署状态(验证待卸载资源):
# 查看 CSGHub Helm 部署状态
helm list -n csghub
# 查看 K3s 运行状态
systemctl status k3s(Server 节点)
systemctl status k3s-agent(Agent 节点)
# 查看残留 Pod/命名空间
kubectl get pods -A | grep -E "csghub|nfs|nvdp"
kubectl get ns | grep -E "csghub|nfs-provisioner|nvdp"
3. 开始卸载
3.1 卸载 CSGHub 应用及相关组件
先卸载 CSGHub Helm 应用,再清理相关命名空间和残留资源,避免资源占用。
# 1. 卸载 CSGHub Helm Release(核心操作)
helm uninstall csghub -n csghub
# 2. 删除 CSGHub 相关命名空间(彻底清理该命名空间下所有资源)
kubectl delete ns csghub --ignore-not-found
# 3. 清理 CSGHub 依赖的命名空间(NFS、GPU 插件相关)
kubectl delete ns nfs-provisioner --ignore-not-found
kubectl delete ns nvdp --ignore-not-found
# 4. 清理 CSGHub 相关 CRD(避免残留影响后续部署)
kubectl delete crd -l app.kubernetes.io/name=csghub --ignore-not-found
3.2 卸载 K3s 集群
仅当需要彻底删除 K3s 集群时执行,卸载后集群所有资源(Pod、Service、存储等)将全部删除。
# 卸载 K3s Server 节点(单节点部署默认此操作)
/usr/local/bin/k3s-uninstall.sh
# 若为 Agent 节点,执行以下命令卸载
/usr/local/bin/k3s-agent-uninstall.sh
3.3 清理残留数据和依赖文件
删除 K3s、CSGHub、Helm 相关的残留目录和文件,确保环境彻底干净。
# 1. 删除 K3s 数据目录(核心数据,包含集群配置、存储数据)
rm -rf /var/lib/rancher /etc/rancher
# 2. 删除 CSGHub 残留目录
rm -rf /opt/csghub
# 3. 删除 kubeconfig 和 Helm 配置目录
rm -rf ~/.kube ~/.helm
# 4. 删除 Helm 仓库缓存(可选,若需保留其他 Helm 仓库可跳过)
rm -rf /root/.cache/helm
# 5. 删除卸载日志和登录信息文件(部署脚本生成)
rm -rf quick-install.log login.txt
3.4 清理 NFS 相关残留
删除 NFS 共享目录和服务,避免占用磁盘资源。
# 停止 NFS 服务
systemctl stop nfs-kernel-server(Ubuntu/Debian)
systemctl stop nfs(CentOS/Alpine)
# 禁用 NFS 服务开机自启
systemctl disable nfs-kernel-server(Ubuntu/Debian)
systemctl disable nfs(CentOS/Alpine)
# 删除 NFS 共享目录
rm -rf /data/sharedir
# 删除 NFS 配置文件
sed -i "\|/data/sharedir|d" /etc/exports 2>/dev/null || true
exportfs -rav
3.5 清理 NVIDIA GPU 相关组件(若启用了 GPU 支持)
卸载 NVIDIA 容器工具包和相关依赖,适用于不再使用 GPU 功能的场景。
# Ubuntu/Debian 系统
apt-get remove -y nvidia-container-toolkit nvidia-container-runtime libnvidia-container-tools libnvidia-container1
rm -rf /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
rm -rf /etc/apt/sources.list.d/nvidia-container-toolkit.list
apt-get update
# CentOS/RHEL 系统
dnf remove -y nvidia-container-toolkit nvidia-container-runtime libnvidia-container-tools libnvidia-container1
rm -rf /etc/yum.repos.d/nvidia-container-toolkit.repo
dnf makecache
4. 卸载验证
执行以下命令,无相关输出即表示卸载完成、环境清理干净。
# 验证 Helm 部署是否残留
helm list -A | grep csghub
# 验证 K3s 是否卸载干净
systemctl status k3s || echo "K3s 已卸载"
ls /usr/local/bin/k3s || echo "K3s 二进制文件已删除"
# 验证相关命名空间是否残留
kubectl get ns | grep -E "csghub|nfs|nvdp"
# 验证残留目录是否删除
ls /var/lib/rancher || echo "K3s 数据目录已删除"
ls ~/.kube || echo "kubeconfig 已删除"
5. 常见问题处理
- K3S 卸载失败:执行
rm -rf /var/lib/rancher/k3s后,重新执行卸载脚本。 - 命名空间删除卡住:执行
kubectl delete ns csghub --force --grace-period=0强制删除。 - 残留文件无法删除:确认文件无进程占用,执行
lsof | grep 文件名查找占用进程,结束后再删除。
6. 注意事项
- 卸载操作不可逆,如有必要务必提前备份数据库、配置文件等重要数据。
- 若仅需重新部署 CSGHub,无需卸载 K3s,只需执行 Helm 卸载和命名空间删除即可。
- root 权限执行所有命令,避免权限 不足导致卸载不彻底。