Istio pilot version mismatch. How to upgrade it?

10/5/2020

I have upgraded istio from 1.6.0 to 1.6.8. Everything went without problems. Verification with kubectl get pods -n default -l istio.io/rev={revision} returns that all pods are running by using 1.6.8, but istioctl version returns

client version: 1.6.8
istiod version: 1.6.8
pilot version: 1.6.0
data plane version: 1.6.8 (12 proxies)

Which indicates that pilot is still running on old version. I'm not able to find any information how to upgrade it without reinstalling whole istio.

-- Tokeiito
istio
kubernetes

1 Answer

10/6/2020

There is clean 1.6.0 install

istioctl version
client version: 1.6.8
control plane version: 1.6.0
data plane version: 1.6.0 (3 proxies)

There is 1.6.8 after canary install

istioctl version
client version: 1.6.8
pilot version: 1.6.0
istiod version: 1.6.8
data plane version: 1.6.8 (2 proxies), 1.6.0 (7 proxies)

Why does this happen? Because there are 2 versions working, original and canary.

As mentioned here

It was separated from control plane version into 2 parts: pilot version and istiod version.

Btw, it is istio-ingressgateway which uses 1.6.0 in data plane version. It seems intended to update ingress-gateway


I'm not able to find any information how to upgrade it without reinstalling whole istio.

If I understand correct you're not able to upgrade it with this version, the main issue here is that there is no option to delete old control plane, that's already covered in the 1.7 version.

The same thing happened in this tutorial


Workaround for this would be to install version higher than 1.7, then if you check documentation there are steps to Uninstall old control plane and Uninstall canary control plane.


Additional resources:

-- Jakub
Source: StackOverflow