Using extensions
Linkerd extensions are components which can be added to a Linkerd installation to enable additional functionality. By default, the following extensions are available:
- viz: Metrics and visibility features
- jaeger: Distributed tracing
- multicluster: Cross-cluster routing
But other extensions are also possible. Read on for more!
Installing extensions
Before installing any extensions, make sure that you have already installed Linkerd and validated your cluster with linkerd check
.
Then, you can install the extension with the extension’s install
command. For example, to install the viz
extension, you can use:
linkerd viz install | kubectl apply -f -
For built-in extensions, such as viz
, jaeger
, and multicluster
, that’s all you need to do. Of course, these extensions can also be installed by with Helm by installing that extension’s Helm chart.
Installing third-party extensions
Third-party extensions are also possible, with one additional step: you must download the extension’s CLI and put it in your path. This will allow you to invoke the extension CLI through the Linkerd CLI: any invocation of linkerd foo
will automatically invoke the linkerd-foo
binary, if it is found on your path.
For example, Buoyant Cloud is a free, hosted metrics dashboard for Linkerd that can be installed alongside the viz
extension, but doesn’t require it. To install this extension, run:
## optional
curl -sL buoyant.cloud/install | sh
linkerd buoyant install | kubectl apply -f - # hosted metrics dashboard
Once the extension is installed, run linkerd check
to ensure Linkerd and all installed extensions are healthy or run linkerd foo check
to perform health checks for that extension only.
Listing extensions
Every extension creates a Kubernetes namespace with the linkerd.io/extension
label. Thus, you can list all extensions installed on your cluster by running:
kubectl get ns -l linkerd.io/extension
Upgrading extensions
Unless otherwise stated, extensions do not persist any configuration in the cluster. To upgrade an extension, run the install again with a newer version of the extension CLI or with a different set of configuration flags.
Uninstalling extensions
All extensions have an uninstall
command that should be used to gracefully clean up all resources owned by an extension. For example, to uninstall the foo extension, run:
linkerd foo uninstall | kubectl delete -f -