kuberneteskubernetes-ingressazure-aksistioistio-sidecar

How to rollback Istio to the old control plane, instead of completing the canary upgrade?


We were doing a test on Canary upgrade of our Istio setup from 1.7.3 to 1.8.6 version.

So we installed canary version 1-8-6 for the istio controlplane and we mapped one namespace to the upgraded version. We tested the application and we were getting 200 response.

Everything was working as expected till this point. So in order to try a rollback, we just went to the document but the steps are not clear enough regarding the rollback.

enter image description here

What is the method to reinstall the gateway here? We used istioctl with overlay and default profile for v1.7.3 installation. So, how to reinstall the gatway?

After uninstalling the canary version, the ingress gateway pods got removed and our application got down with a 500 error.

So would like to clear about the exact process to rollback from canary version to previous installed version. But due to some issues, we want to rollback to previous version.


Solution

  • You should not do

    istioctl x uninstall --revision=canary
    

    if you successfully upgraded. This command should only be used if you decided to stop upgrading in the middle of the process, and want to go back.

    To downgrade to a lower version of Istio you should use istioctl upgrade. Steps are identical to actual upgrade procedure, you just have to use istioctl binary corresponding to a lower version.
    You can find more in the docs.


    If you still want to go with istioctl x uninstall, and to answer your question:

    reinstall the gateway(s) for the previous revision manually

    means install your gateways the same way you did when deploying Istio for the first time. If you used the default configuration, and did not create any custom gateways, you can just use yaml files that come with the installation files of lower version.