How to do a canary upgrade of existing istio customised setup? How to do a canary upgrade of existing istio customised setup? kubernetes kubernetes

How to do a canary upgrade of existing istio customised setup?


  1. No. You should go through changelog and upgrade notes. See what's new, what's changed, depracted etc. Adjust your configs accordingly.

  2. In theory - yes, in practice - no. See above. That's why you should always check upgarde notes/changelog and plan accordingly. There is always a slim chance something will go wrong.

  3. It should, but again, be prepared that something may break (One more time - go through changelog/upgrade notes, this is important).

  4. No.

  5. You can find all namespaces with Istio injection enabled with:

kubectl get namespaces -l=istio-injection=enabled

Istio upgrade process should only modify namespaces with injection enabled (and istio-system namespace).

  1. If your old control plane does not have a revision label, you have to uninstall it using its original installation options (old yaml file)
istioctl x uninstall -f /path/to/old/config.yaml

If it does have revision label:

istioctl x uninstall --revision <revision>
  1. You can just uninstall new control plane with
istioctl x uninstall revision=1-8

This will revert to the old control plane, assuming you have not yet uninstalled it. However, you will have to reinstall gateways for the old version manually, as the uninstall command does not revert them automatically.


I would strongly recommend creating a temporary test environment. Recreating existing cluster on test env. Performing upgrade there, and adjusting the process to meet your needs.
This way you will avoid catastrofic failures on your production environment.