Uninstall
Uninstall your sidecar service mesh.
Single cluster
Helm
If you manually deployed a sidecar service mesh with Helm:
Uninstall the Helm release for
istiod. Note that your release name might be different.helm uninstall -n istio-system istiod-glooOptional: Uninstall the Istio CNI.
helm uninstall -n kube-system istio-cniUninstall the Istio CRDs.
helm uninstall -n istio-system istio-baseDelete the Istio namespace.
kubectl delete namespace istio-system
Gloo Operator
If you installed a sidecar service mesh with the Gloo Operator:
Delete the ServiceMeshController resource.
kubectl delete ServiceMeshController managed-istioOptional: Uninstall the Gloo Operator.
helm uninstall -n gloo-mesh gloo-operatorDelete the Istio namespace.
kubectl delete namespace istio-systemDelete the Istio CRDs.
kubectl get crds | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd
Multicluster
Helm
If you manually deployed a multicluster sidecar mesh with Helm:
Save the names and kubeconfig contexts of each cluster. This guide uses two clusters as an example. To add more clusters to the multicluster setup, include them in the arrays.
export cluster1=<cluster1_name> export context1=<cluster1_context> export cluster2=<cluster2_name> export context2=<cluster2_context>Delete the
east-westgateway.kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context1} kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context2}List the remote peering gateways for other clusters in your setup.
kubectl get gateways -n istio-eastwest --context ${context1} kubectl get gateways -n istio-eastwest --context ${context2}Delete the
istio-remote-peergateway for each linked cluster.kubectl delete gateway -n istio-eastwest --context ${context1} istio-remote-peer-${cluster2} kubectl delete gateway -n istio-eastwest --context ${context2} istio-remote-peer-${cluster1}Uninstall the Helm releases for ztunnel, CNI, istiod, and the CRDs.
for context in ${context1} ${context2}; do helm uninstall -n istio-system ztunnel --kube-context $context helm uninstall -n istio-system istio-cni --kube-context $context helm uninstall -n istio-system istiod --kube-context $context helm uninstall -n istio-system istio-base --kube-context $context doneDelete the
ca-certssecret.kubectl delete secret cacerts -n istio-system --context ${context1} kubectl delete secret cacerts -n istio-system --context ${context2}Delete the Istio namespaces.
kubectl delete namespace istio-system --context ${context1} kubectl delete namespace istio-eastwest --context ${context1} kubectl delete namespace istio-system --context ${context2} kubectl delete namespace istio-eastwest --context ${context2}
Gloo Operator
If you installed a multicluster sidecar mesh with the Gloo Operator:
Save the names and kubeconfig contexts of each cluster. This guide uses two clusters as an example. To add more clusters to the multicluster setup, include them in the arrays.
export cluster1=<cluster1_name> export context1=<cluster1_context> export cluster2=<cluster2_name> export context2=<cluster2_context>Delete the
east-westgateway.kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context1} kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context2}List the remote peering gateways for other clusters in your setup.
kubectl get gateways -n istio-eastwest --context ${context1} kubectl get gateways -n istio-eastwest --context ${context2}Example output for a remote peer gateway for one linked cluster:
NAME CLASS ADDRESS PROGRAMMED AGE istio-remote-peer-cluster2 istio-remote <address> True 16mDelete the
istio-remote-peergateway for each linked cluster.kubectl delete gateway -n istio-eastwest --context ${context1} istio-remote-peer-${cluster2} kubectl delete gateway -n istio-eastwest --context ${context2} istio-remote-peer-${cluster1}Delete the ServiceMeshController resource and
gloo-extensions-configconfigmap.kubectl delete ServiceMeshController managed-istio --context ${context1} kubectl delete cm gloo-extensions-config -n gloo-mesh --context ${context1} kubectl delete ServiceMeshController managed-istio --context ${context2} kubectl delete cm gloo-extensions-config -n gloo-mesh --context ${context2}Optional: Uninstall the Gloo Operator.
helm uninstall -n gloo-mesh gloo-operator --kube-context ${context1} helm uninstall -n gloo-mesh gloo-operator --kube-context ${context2}Delete the
ca-certssecret.kubectl delete secret cacerts -n istio-system --context ${context1} kubectl delete secret cacerts -n istio-system --context ${context2}Delete the Istio namespaces.
kubectl delete namespace istio-system --context ${context1} kubectl delete namespace istio-eastwest --context ${context1} kubectl delete namespace istio-system --context ${context2} kubectl delete namespace istio-eastwest --context ${context2}Delete the Istio CRDs.
kubectl get crds --context ${context1} | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd --context ${context1} kubectl get crds --context ${context2} | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd --context ${context2}