Uninstalling Linkerd

Removing Linkerd from a Kubernetes cluster requires a few steps: removing any data plane proxies, removing all the extensions and then removing the core control plane.

Removing Linkerd data plane proxies

To remove the Linkerd data plane proxies, you should remove any Linkerd proxy injection annotations and roll the deployments. When Kubernetes recreates the pods, they will not have the Linkerd data plane attached.

Removing extensions

To remove any extension, call its uninstall subcommand and pipe it to kubectl delete -f -. For the bundled extensions that means:

# To remove Linkerd Viz
linkerd viz uninstall | kubectl delete -f -

# To remove Linkerd Jaeger
linkerd jaeger uninstall | kubectl delete -f -

# To remove Linkerd Multicluster
linkerd multicluster uninstall | kubectl delete -f -

Removing the control plane

To remove the control plane, run:

linkerd uninstall | kubectl delete -f -

The linkerd uninstall command outputs the manifest for all of the Kubernetes resources necessary for the control plane, including namespaces, service accounts, CRDs, and more; kubectl delete then deletes those resources.

This command can also be used to remove control planes that have been partially installed. Note that kubectl delete will complain about any resources that it was asked to delete that hadn’t been created, but these errors can be safely ignored.