本节介绍如何卸载 Kubernetes 和 KubeSphere。

说明

本节介绍的 Kubernetes 卸载方式仅适用于 Kubernetes 通过 KubeKey 安装的场景。如果您的 Kubernetes 不是通过 KubeKey 安装,请参阅 Kubernetes 官方文档卸载 Kubernetes。

警告
  • 此操作将导致 KubeSphere 集群业务中断,并且无法撤销,请谨慎执行此操作。

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

若 KubeSphere 为在线安装

若 KubeSphere 为在线安装,请按照以下步骤卸载 Kubernetes 和 KubeSphere。

准备工作

您需要获取安装配置文件 config-sample.yaml 并将其传输到用于执行本节操作的集群节点。

注意

如果您无法获取安装配置文件 config-sample.yaml,您需要参阅在线安装 KubeSphere 重新创建 config-sample.yaml 文件。重新创建该文件时,请务必确保文件中的集群信息与集群的当前实际情况一致。否则,卸载过程可能会出现错误。

操作步骤

  1. 如果您访问 GitHub/Googleapis 受限,请登录任意集群节点,执行以下命令设置下载区域:

    export KKZONE=cn
  2. 执行以下命令下载 KubeKey 最新版本:

    curl -sfL https://get-kk.kubesphere.io | sh -

    下载完成后当前目录下将生成 KubeKey 二进制文件 kk

  3. 执行以下命令为 KubeKey 二进制文件 kk 添加执行权限:

    sudo chmod +x kk
  4. 将安装配置文件 config-sample.yaml 传输到当前目录。

  5. 执行以下命令开始卸载 KubeSphere:

     ./kk delete cluster -f config-sample.yaml

    如果显示如下信息,则表明卸载成功:

    Pipeline[DeleteClusterPipeline] execute successful

若 KubeSphere 为离线安装

若 KubeSphere 使用 Web Installer 离线安装,请按照以下步骤卸载 Kubernetes 和 KubeSphere。

说明

不支持单独卸载 Kubesphere。

方法一:初始化

在 Web Installer 页面点击初始化按钮卸载 Kubernetes 和 KubeSphere。

初始化任务完成后,会重新回到开始安装页面。

方法二:执行卸载命令

登录部署节点,进入离线包目录,获取节点信息和安装配置文件,用于后续执行 kk 命令。

cd offline
注意

后续步骤必须在离线包解压后的目录(如 offline)中执行,否则会导致操作失败。

一、获取节点信息: kkv4-inventory.yaml

  1. 获取节点信息文件。

    cp kubekey/runtime/kubekey.kubesphere.io/v1/inventories/default/default.yaml kkv4-inventory.yaml

    节点信息示例如下:

    apiVersion: kubekey.kubesphere.io/v1
    kind: Inventory
    metadata:
      name: default
      namespace: default
    spec:
      groups:
        etcd:
          hosts:
          - scan-cqxbav3
          vars: null
        image_registry:
          hosts: []
          vars: null
        k8s_cluster:
          groups:
          - kube_control_plane
          - kube_worker
          hosts: null
          vars: null
        kube_control_plane:
          hosts:
          - scan-cqxbav3
          vars: null
        kube_worker:
          hosts:
          - scan-cqxbav3
          vars: null
        nfs:
          hosts: []
          vars: null
      hosts:
        scan-cqxbav3:
          connector:
            host: 172.16.0.4
            password: ""
            port: "22"
            user: root
          internal_ipv4: 172.16.0.4
          kubernetes:
            custom_labels: {}
      vars: null
    status: {}

二、获取安装配置文件: kkv4-config.json

  1. 安装 jq

    在 Ubuntu 操作系统上,执行以下安装命令:

    sudo apt install jq

    如果部署节点使用其他操作系统,请将 apt 替换为操作系统对应的软件包管理工具。

  2. 获取安装集群时的配置文件 kkv4-config.json

    cd schema/config.json | jq '{spec: .["kubernetes.json"]}' > kkv4-config.json

    配置信息示例:

    {
      "spec": {
        "kubernetes": {
          "cluster_name": "cluster-01",
          "kube_version": "v1.33.3",
          "control_plane_endpoint": {
            "host": "lb.kubesphere.local",
            "port": 6443,
            "type": "local"
          }
        },
        "cri": {
          "container_manager": "containerd"
        },
        "cni": {
          "type": "calico",
          "max_pods": 110,
          "service_cidr": "10.233.0.0/18",
          "pod_cidr": "10.233.64.0/18",
          "ipv4_mask_size": 24,
          "ipv6_mask_size": 64
        },
        "image_registry": {
          "auth": {
            "registry": "dockerhub.kubekey.local",
            "username": "admin",
            "password": "Harbor12345",
            "insecure": true
          }
        },
        "storage_class": {
          "local": {
            "enabled": true,
            "default": true,
            "path": "/var/openebs/local"
          }
        }
      }
    }

三、卸载 Kubernetes 和 KubeSphere

  1. 使用 kkv4-inventory.yamlkkv4-config.json 执行卸载命令。

    ./kk delete cluster -i kkv4-inventory.yaml -c kkv4-config.json --workdir=$(pwd)/operator

    如果显示如下信息,则表明卸载成功。

    回显示例:

    [Playbook default/delete-cluster-5vfjw] finish. total: 36,success: 31,ignored: 5,failed: 0
  2. 命令成功执行后,Web Installer 页面并不会显示集群已卸载。继续执行以下命令以使 Web Installer 页面恢复到开始安装页面:

    rm -rf kubekey/runtime/kubekey.kubesphere.io/v1/playbooks/