Uninstall Pluggable Components from KubeSphere 3.2.x

After you enable the pluggable components of KubeSphere, you can also uninstall them by performing the following steps. Please back up any necessary data before you uninstall these components.

Note

The methods of uninstalling certain pluggable components on KubeSphere 3.2.x are different from the methods on KubeSphere v3.0.0. For more information about the uninstallation methods on KubeSphere v3.0.0, see Uninstall Pluggable Components from KubeSphere.

Prerequisites

You have to change the value of the field enabled from true to false in ks-installer of the CRD ClusterConfiguration before you uninstall any pluggable components except Service Topology and Pod IP Pools.

Use either of the following methods to change the value of the field enabled:

  • Run the following command to edit ks-installer:

    kubectl -n kubesphere-system edit clusterconfiguration ks-installer
    
  • Log in to the KubeSphere web console as admin, click Platform in the upper-left corner and select Cluster Management, and then go to CRDs to search for ClusterConfiguration. For more information, see Enable Pluggable Components.

Note

After the value is changed, you need to wait until the updating process is complete before you continue with any further operations.

Uninstall KubeSphere App Store

Change the value of openpitrix.store.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

Uninstall KubeSphere DevOps

  1. To uninstall DevOps:

    helm uninstall -n kubesphere-devops-system devops
    kubectl patch -n kubesphere-system cc ks-installer --type=json -p='[{"op": "remove", "path": "/status/devops"}]'
    kubectl patch -n kubesphere-system cc ks-installer --type=json -p='[{"op": "replace", "path": "/spec/devops/enabled", "value": false}]'
    
  2. To delete DevOps resources:

    # Remove all resources related with DevOps
    for devops_crd in $(kubectl get crd -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep "devops.kubesphere.io"); do
        for ns in $(kubectl get ns -ojsonpath='{.items..metadata.name}'); do
            for devops_res in $(kubectl get $devops_crd -n $ns -oname); do
                kubectl patch $devops_res -n $ns -p '{"metadata":{"finalizers":[]}}' --type=merge
            done
        done
    done
    # Remove all DevOps CRDs
    kubectl get crd -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep "devops.kubesphere.io" | xargs -I crd_name kubectl delete crd crd_name
    # Remove DevOps namespace
    kubectl delete namespace kubesphere-devops-system
    

Uninstall KubeSphere Logging

  1. Change the value of logging.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. To disable only log collection:

    kubectl delete inputs.logging.kubesphere.io -n kubesphere-logging-system tail
    

    Note

    After running this command, you can still view the container recent logs provided by Kubernetes by default. However, the container history logs will be cleared and you cannot browse them any more.
  3. To uninstall Logging system including Elasticsearch:

    kubectl delete crd fluentbitconfigs.logging.kubesphere.io
    kubectl delete crd fluentbits.logging.kubesphere.io
    kubectl delete crd inputs.logging.kubesphere.io
    kubectl delete crd outputs.logging.kubesphere.io
    kubectl delete crd parsers.logging.kubesphere.io
    kubectl delete deployments.apps -n kubesphere-logging-system fluentbit-operator
    helm uninstall elasticsearch-logging --namespace kubesphere-logging-system
    

    Warning

    This operation may cause anomalies in Auditing, Events, and Service Mesh.
  4. Run the following command:

    kubectl delete deployment logsidecar-injector-deploy -n kubesphere-logging-system
    kubectl delete ns kubesphere-logging-system
    

Uninstall KubeSphere Events

  1. Change the value of events.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. Run the following command:

    helm delete ks-events -n kubesphere-logging-system
    

Uninstall KubeSphere Alerting

  1. Change the value of alerting.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. Run the following command:

    kubectl -n kubesphere-monitoring-system delete thanosruler kubesphere
    

    Note

    Notification is installed in KubeSphere 3.2.1 by default, so you do not need to uninstall it.

Uninstall KubeSphere Auditing

  1. Change the value of auditing.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. Run the following commands:

    helm uninstall kube-auditing -n kubesphere-logging-system
    kubectl delete crd rules.auditing.kubesphere.io
    kubectl delete crd webhooks.auditing.kubesphere.io
    

Uninstall KubeSphere Service Mesh

  1. Change the value of servicemesh.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. Run the following commands:

    curl -L https://istio.io/downloadIstio | sh -
    istioctl x uninstall --purge
    
    kubectl -n istio-system delete kiali kiali
    helm -n istio-system delete kiali-operator
    
    kubectl -n istio-system delete jaeger jaeger
    helm -n istio-system delete jaeger-operator
    

Uninstall Network Policies

For the component NetworkPolicy, disabling it does not require uninstalling the component as its controller is now inside ks-controller-manager. If you want to remove it from the KubeSphere console, change the value of network.networkpolicy.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

Uninstall Metrics Server

  1. Change the value of metrics_server.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. Run the following commands:

    kubectl delete apiservice v1beta1.metrics.k8s.io
    kubectl -n kube-system delete service metrics-server
    kubectl -n kube-system delete deployment metrics-server
    

Uninstall Service Topology

  1. Change the value of network.topology.type from weave-scope to none in ks-installer of the CRD ClusterConfiguration.

  2. Run the following command:

    kubectl delete ns weave
    

Uninstall Pod IP Pools

Change the value of network.ippool.type from calico to none in ks-installer of the CRD ClusterConfiguration.

Uninstall KubeEdge

  1. Change the value of kubeedge.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. Run the following commands:

    helm uninstall kubeedge -n kubeedge
    kubectl delete ns kubeedge
    

    Note

    After the uninstallation, you will not be able to add edge nodes to your cluster.

Receive the latest news, articles and updates from KubeSphere


Thanks for the feedback. If you have a specific question about how to use KubeSphere, ask it on Slack. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.