Uninstall Pluggable Components

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.3.0 are different from the methods on KubeSphere v3.3.0. For more information about the uninstallation methods on KubeSphere v3.3.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:

    1. 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:

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

    1. # Remove all resources related with DevOps
    2. for devops_crd in $(kubectl get crd -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep "devops.kubesphere.io"); do
    3. for ns in $(kubectl get ns -ojsonpath='{.items..metadata.name}'); do
    4. for devops_res in $(kubectl get $devops_crd -n $ns -oname); do
    5. kubectl patch $devops_res -n $ns -p '{"metadata":{"finalizers":[]}}' --type=merge
    6. done
    7. done
    8. done
    9. # Remove all DevOps CRDs
    10. kubectl get crd -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep "devops.kubesphere.io" | xargs -I crd_name kubectl delete crd crd_name
    11. # Remove DevOps namespace
    12. 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:

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

    Note

    After running this command, you can still view the container’s 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 the Logging system, including Elasticsearch:

    1. kubectl delete crd fluentbitconfigs.logging.kubesphere.io
    2. kubectl delete crd fluentbits.logging.kubesphere.io
    3. kubectl delete crd inputs.logging.kubesphere.io
    4. kubectl delete crd outputs.logging.kubesphere.io
    5. kubectl delete crd parsers.logging.kubesphere.io
    6. kubectl delete deployments.apps -n kubesphere-logging-system fluentbit-operator
    7. 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:

    1. kubectl delete deployment logsidecar-injector-deploy -n kubesphere-logging-system
    2. 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:

    1. 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:

    1. kubectl -n kubesphere-monitoring-system delete thanosruler kubesphere

    Note

    Notification is installed in KubeSphere 3.3.0 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:

    1. helm uninstall kube-auditing -n kubesphere-logging-system
    2. kubectl delete crd rules.auditing.kubesphere.io
    3. 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:

    1. curl -L https://istio.io/downloadIstio | sh -
    2. istioctl x uninstall --purge
    3. kubectl -n istio-system delete kiali kiali
    4. helm -n istio-system delete kiali-operator
    5. kubectl -n istio-system delete jaeger jaeger
    6. 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:

    1. kubectl delete apiservice v1beta1.metrics.k8s.io
    2. kubectl -n kube-system delete service metrics-server
    3. 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:

    1. 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 and edgeruntime.enabled from true to false in ks-installer of the CRD ClusterConfiguration.

  2. Run the following commands:

    1. helm uninstall kubeedge -n kubeedge
    2. kubectl delete ns kubeedge

    Note

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