Upgrade

    This will upgrade your local CLI to the latest version. You will want to followthese instructions for anywhere that uses the linkerd CLI.

    To upgrade the CLI locally, run:

    Alternatively, you can download the CLI directly via theLinkerd releases page.

    Verify the CLI is installed and running correctly with:

    Which should display:

    1. Client version: stable-2.0.0
    2. Server version: v18.8.1

    It is expected that the Client and Server versions won’t match at this point inthe process. Nothing has been changed on the cluster, only the local CLI hasbeen updated.

    • Until you upgrade the control plane, most CLI commands will not work.

    To upgrade the control plane in your environment, run the following command.This will cause a rolling deploy of the control plane components that havechanged.

    1. linkerd install | kubectl apply -f -

    The output will be:

    Check to make sure everything is healthy by running:

    1. linkerd check

    This will run through a set of checks against your control plane and make surethat it is operating correctly.

    To verify the Linkerd control plane version, run:

    Which should display:

    1. Server version: stable-2.0.0

    Notes

    • You will lose the historical data from Prometheus. If you would like to havethat data persisted through an upgrade, take a look at thepersistence documentation

    For each of your meshed services, you will want to take your YAML resourcedefinitions and pass them through linkerd inject. This will update the podspec to have the latest version of the sidecar container. Byusing kubectl apply, Kubernetes will do a rolling deploy of your service andupdate the running pods to the latest version.

    To do this with the example application, emojivoto, you can run:

    Check to make sure everything is healthy by running:

    1. linkerd check --proxy

    This will run through a set of checks against both your control plane and dataplane to verify that it is operating correctly.

    You can make sure that you’ve fully upgraded all the data plane by running:

    1. kubectl get po --all-namespaces -o yaml \
    2. | grep linkerd.io/proxy-version

    The output will look something like:

    1. linkerd.io/proxy-version: stable-2.0.0