跳到主要内容

快速卸载

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. 常见问题处理

  1. K3S 卸载失败:执行 rm -rf /var/lib/rancher/k3s 后,重新执行卸载脚本。
  2. 命名空间删除卡住:执行 kubectl delete ns csghub --force --grace-period=0 强制删除。
  3. 残留文件无法删除:确认文件无进程占用,执行lsof | grep 文件名 查找占用进程,结束后再删除。

6. 注意事项

  • 卸载操作不可逆,如有必要务必提前备份数据库、配置文件等重要数据。
  • 若仅需重新部署 CSGHub,无需卸载 K3s,只需执行 Helm 卸载和命名空间删除即可。
  • root 权限执行所有命令,避免权限不足导致卸载不彻底。