本节介绍如何卸载 KubeSphere。当前集群中运行的 Kubernetes 将不会被卸载。

警告
  • 虽然此操作不会卸载 Kubernetes,如果当前集群中运行的业务使用了 KubeSphere 提供的功能,此操作仍然可能导致业务中断。

  • 此操作不能撤销,请谨慎执行此操作。

前提条件

为避免数据丢失,请提前备份所有重要数据。

卸载扩展组件

  1. 登录任意集群节点,执行以下命令查看集群中已安装的扩展组件。

    kubectl get installplan
  2. 卸载指定扩展组件或所有扩展组件。

    • 卸载指定扩展组件。

      kubectl delete installplan {InstallPlan Name}
      说明

      可根据第一步的命令获取扩展组件的 InstallPlan Name

      如果显示如下信息,表明该扩展组件卸载成功。

      installplan.kubesphere.io "{InstallPlan Name}" deleted
    • 卸载全部扩展组件。

      kubectl delete installplan --all

      输出信息应如下所示:

      installplan.kubesphere.io "devops" deleted
      installplan.kubesphere.io "dmp" deleted
      installplan.kubesphere.io "gatekeeper" deleted
      installplan.kubesphere.io "gateway" deleted
      installplan.kubesphere.io "kubefed" deleted
      installplan.kubesphere.io "metrics-server" deleted
      installplan.kubesphere.io "network" deleted
      installplan.kubesphere.io "openpitrix" deleted
      installplan.kubesphere.io "opensearch" deleted
      installplan.kubesphere.io "springcloud" deleted
      installplan.kubesphere.io "storage-utils" deleted
      installplan.kubesphere.io "tower" deleted
      installplan.kubesphere.io "vector" deleted
      installplan.kubesphere.io "whizard-alerting" deleted
      installplan.kubesphere.io "whizard-auditing" deleted
      installplan.kubesphere.io "whizard-events" deleted
      installplan.kubesphere.io "whizard-logging" deleted
      installplan.kubesphere.io "whizard-monitoring" deleted
      installplan.kubesphere.io "whizard-notification" deleted
      installplan.kubesphere.io "whizard-telemetry" deleted
      installplan.kubesphere.io "whizard-telemetry-ruler" deleted

      再次执行以下命令,如果显示 No resources found,表明所有扩展组件都已卸载。

      kubectl get installplan

移除成员集群(若有)

  1. 登录 host 集群任意节点,执行以下命令查看纳管的成员集群。

    kubectl get cluster
  2. 卸载指定的成员集群。

    kubectl delete cluster <cluster-name>
  3. 清理多集群配置数据。

    登录被移除的成员集群节点,执行以下命令清理集群中的多集群配置数据:

    for ns in $(kubectl get ns --field-selector status.phase!=Terminating -o jsonpath='{.items[*].metadata.name}'); do kubectl label ns $ns kubesphere.io/workspace- && kubectl patch ns $ns --type merge -p '{"metadata":{"ownerReferences":[]}}'; done

卸载 ks-core

卸载 ks-core 之前,请确保集群中的扩展组件都已被卸载,即执行 kubectl get installplan 命令后显示 No resources found。

  1. 执行以下命令卸载 ks-core。

    helm del -n kubesphere-system ks-core
  2. 执行以下命令,如果返回结果为空(如下所示),表明 KubeSphere 卸载成功。

    root@xxx:~# helm list -n kubesphere-system
    NAME    NAMESPACE               REVISION        UPDATED                                 STATUS          CHART           APP VERSION

至此,KubeSphere 已完成卸载。

说明
  • 卸载完成后,KubeSphere 及扩展组件创建的 namespace(项目)及 PVC(持久卷声明)不会被自动清理。如果需要,您可以手动进行清理;

  • KubeSphere 及扩展组件创建和使用的 CRD 不会被自动清理,且无其他影响。如无特别需求,建议保留,避免触发级联删除造成未知后果。