Uninstall

Learn how to uninstall the sample applications from the site, or the entire Istio deployment.

Removing sample applications

If you have followed any of the guides on this site, you may have installed Bookinfo, curl or httpbin pods into your cluster. You can remove these by using kubectl delete on the manifests that were used to install them:

$ kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml
$ kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo-versions.yaml
$ kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/curl/curl.yaml
$ kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/httpbin/httpbin.yaml
⚠️
If you created any extra routes or policies during your examples, these may not be automatically removed. Follow the “clean up” instructions on each page.

Remove waypoints

Removing Istio will remove any waypoint proxies that are running in your cluster, but will not remove labels that you set in order to enable them.

Remove labels

The labels that were used to configure waypoints are not removed when Istio is removed. You can remove them from any namespace or workload that they were added to:

$ kubectl label namespace default istio.io/use-waypoint-
$ kubectl label namespace default istio.io/use-waypoint-namespace-

Remove waypoint deployments

The istioctl waypoint command can be used to remove a sinple waypoint, all waypoints in a certain namespace, or all waypoints in the cluster. To remove all waypoints:

$ istioctl waypoint delete --all

Reconfigure workloads not to use the ambient data plane

Workloads that have been added to the ambient mesh are not reconfigured for regular Kubernetes networking when Istio is removed. The labels used to configure the data plane mode must be removed first. You can remove them from any namespace that they were added to:

$ kubectl label namespace default istio.io/dataplane-mode-

Removing Istio

Installed from quickstart

You can use kubectl to remove the resources that were created by the quickstart script:

$ kubectl delete -f https://get.ambientmesh.io/yamls/default.yaml
The quickstart script detects your environment, and may have installed a different configuration. To determine which manifest to use, re-run or manually review the installation script.

You can then remove the Istio system nanespace:

$ kubectl delete namespace istio-system

Installed with Helm

The charts that you installed can be removed, in reverse order.

Confirm the charts you have installed:

$ helm ls -n istio-system
NAME      	NAMESPACE   	REVISION	UPDATED                              	STATUS  	CHART         	APP VERSION
istio-base	istio-system	1       	2024-11-15 13:05:03.287088 +1300 NZDT	deployed	base-1.24.0   	1.24.0     
istio-cni 	istio-system	1       	2024-11-15 13:07:06.250804 +1300 NZDT	deployed	cni-1.24.0    	1.24.0     
istiod    	istio-system	1       	2024-11-15 13:06:54.492701 +1300 NZDT	deployed	istiod-1.24.0 	1.24.0     
ztunnel   	istio-system	1       	2024-11-15 13:07:13.187632 +1300 NZDT	deployed	ztunnel-1.24.0	1.24.0     

Remove the application:

$ helm delete ztunnel -n istio-system
$ helm delete istio-cni -n istio-system
$ helm delete istiod -n istio-system
$ helm delete istio-base -n istio-system

The Istio CRDs are not removed when the Helm chart is deleted. To remove them:

$ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl delete

You can them remove the Istio system namespace:

$ kubectl delete namespace istio-system

Remove the Gateway API CRDs

If you no longer require the Gateway API CRDs, you can remove them:

$ kubectl delete -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml