Istio 1.4.3 to 1.5.6 upgrade using istioctl and Istio operator Istio 1.4.3 to 1.5.6 upgrade using istioctl and Istio operator kubernetes kubernetes

Istio 1.4.3 to 1.5.6 upgrade using istioctl and Istio operator


There shouldn't be any problem with that, I have tried that on my test cluster and everything worked just fine.

I had a problem with upgrading immediately from 1.4.3 to 1.5.6, so with below steps you're first upgrading from 1.4.3 to 1.5.0, then from 1.5.0 to 1.5.6

Take a look at below steps to follow.


1.Follow istio documentation and install istioctl 1.4, 1.5 and 1.5.6 with:

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.4.0 sh -curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.0 sh -curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.6 sh -

2.Add the istioctl 1.4 to your path

cd istio-1.4.0export PATH=$PWD/bin:$PATH

3.Install istio 1.4

istioctl manifest apply --set profile=demo

4.Check if everything works correct.

kubectl get pod -n istio-systemkubectl get svc -n istio-systemistioctl version

5.Add the istioctl 1.5 to your path

cd istio-1.5.0export PATH=$PWD/bin:$PATH

6.Install istio operator for future upgrade.

istioctl operator init

7.Prepare IstioOperator.yaml

nano IstioOperator.yaml

apiVersion: install.istio.io/v1alpha1kind: IstioOperatormetadata:  namespace: istio-system  name: example-istiocontrolplanespec:  profile: demo  tag: 1.5.0

8.Before the upgrade use below commands

kubectl -n istio-system delete service/istio-galley deployment.apps/istio-galleykubectl delete validatingwebhookconfiguration.admissionregistration.k8s.io/istio-galley

9.Upgrade from 1.4 to 1.5 with istioctl upgrade and prepared IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

10.After the upgrade use below commands

kubectl -n istio-system delete deployment istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetrykubectl -n istio-system delete service istio-citadel istio-policy istio-sidecar-injector istio-telemetrykubectl -n istio-system delete horizontalpodautoscaler.autoscaling/istio-pilot horizontalpodautoscaler.autoscaling/istio-telemetrykubectl -n istio-system delete pdb istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetrykubectl -n istio-system delete deployment istiocorednskubectl -n istio-system delete service istiocoredns

11.Check if everything works correct.

kubectl get pod -n istio-systemkubectl get svc -n istio-systemistioctl version

12.Change istio IstioOperator.yaml tag value

nano IstioOperator.yaml

apiVersion: install.istio.io/v1alpha1kind: IstioOperatormetadata:  namespace: istio-system  name: example-istiocontrolplanespec:  profile: demo  tag: 1.5.6    <---

13.Upgrade from 1.5 to 1.5.6 with istioctl upgrade and prepared IstioOperator.yaml

istioctl upgrade -f IstioOperator.yaml 

14.Add the istioctl 1.5.6 to your path

cd istio-1.5.6export PATH=$PWD/bin:$PATH

15.I have deployed a bookinfo app to check if everything works correct.

kubectl label namespace default istio-injection=enabledkubectl apply -f samples/bookinfo/platform/kube/bookinfo.yamlkubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

16.Results

curl -v xx.xx.xxx.xxx/productpage | grep HTTPHTTP/1.1 200 OKistioctl versionclient version: 1.5.6control plane version: 1.5.6data plane version: 1.5.6 (9 proxies)

Let me know if have any more questions.