Skip to content

Commit bfe315b

Browse files
Merge pull request #278325 from german1608/patch-2
Update istio-upgrade.md
2 parents ffb6c0d + 96b6b8c commit bfe315b

File tree

1 file changed

+32
-27
lines changed

1 file changed

+32
-27
lines changed

articles/aks/istio-upgrade.md

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ ms.service: azure-kubernetes-service
66
ms.date: 05/04/2023
77
ms.author: shasb
88
author: shashankbarsin
9+
ms.custom: devx-track-azurecli
910
---
1011

1112
# Upgrade Istio-based service mesh add-on for Azure Kubernetes Service
@@ -20,27 +21,27 @@ Istio add-on allows upgrading the minor revision using [canary upgrade process][
2021

2122
If the cluster is currently using a supported minor revision of Istio, upgrades are only allowed one minor revision at a time. If the cluster is using an unsupported revision of Istio, you must upgrade to the lowest supported minor revision of Istio for that Kubernetes version. After that, upgrades can again be done one minor revision at a time.
2223

23-
The following example illustrates how to upgrade from revision `asm-1-18` to `asm-1-19`. The steps are the same for all minor upgrades.
24+
The following example illustrates how to upgrade from revision `asm-1-20` to `asm-1-21`. The steps are the same for all minor upgrades.
2425

2526
1. Use the [az aks mesh get-upgrades](/cli/azure/aks/mesh#az-aks-mesh-get-upgrades) command to check which revisions are available for the cluster as upgrade targets:
2627

27-
```bash
28+
```azurecli-interactive
2829
az aks mesh get-upgrades --resource-group $RESOURCE_GROUP --name $CLUSTER
2930
```
3031
3132
If you expect to see a newer revision not returned by this command, you may need to upgrade your AKS cluster first so that it's compatible with the newest revision.
3233
3334
1. If you've set up [mesh configuration][meshconfig] for the existing mesh revision on your cluster, you need to create a separate ConfigMap corresponding to the new revision in the `aks-istio-system` namespace **before initiating the canary upgrade** in the next step. This configuration is applicable the moment the new revision's control plane is deployed on cluster. More details can be found [here][meshconfig-canary-upgrade].
3435
35-
1. Initiate a canary upgrade from revision `asm-1-18` to `asm-1-19` using [az aks mesh upgrade start](/cli/azure/aks/mesh#az-aks-mesh-upgrade-start):
36+
1. Initiate a canary upgrade from revision `asm-1-20` to `asm-1-21` using [az aks mesh upgrade start](/cli/azure/aks/mesh/upgrade#az-aks-mesh-upgrade-start):
3637
37-
```bash
38-
az aks mesh upgrade start --resource-group $RESOURCE_GROUP --name $CLUSTER --revision asm-1-19
38+
```azurecli-interactive
39+
az aks mesh upgrade start --resource-group $RESOURCE_GROUP --name $CLUSTER --revision asm-1-21
3940
```
4041
41-
A canary upgrade means the 1.18 control plane is deployed alongside the 1.17 control plane. They continue to coexist until you either complete or roll back the upgrade.
42+
A canary upgrade means the 1.20 control plane is deployed alongside the 1.21 control plane. They continue to coexist until you either complete or roll back the upgrade.
4243
43-
1. Verify control plane pods corresponding to both `asm-1-18` and `asm-1-19` exist:
44+
1. Verify control plane pods corresponding to both `asm-1-20` and `asm-1-21` exist:
4445
4546
* Verify `istiod` pods:
4647
@@ -52,10 +53,10 @@ The following example illustrates how to upgrade from revision `asm-1-18` to `as
5253
5354
```
5455
NAME READY STATUS RESTARTS AGE
55-
istiod-asm-1-18-55fccf84c8-dbzlt 1/1 Running 0 58m
56-
istiod-asm-1-18-55fccf84c8-fg8zh 1/1 Running 0 58m
57-
istiod-asm-1-19-f85f46bf5-7rwg4 1/1 Running 0 51m
58-
istiod-asm-1-19-f85f46bf5-8p9qx 1/1 Running 0 51m
56+
istiod-asm-1-20-55fccf84c8-dbzlt 1/1 Running 0 58m
57+
istiod-asm-1-20-55fccf84c8-fg8zh 1/1 Running 0 58m
58+
istiod-asm-1-21-f85f46bf5-7rwg4 1/1 Running 0 51m
59+
istiod-asm-1-21-f85f46bf5-8p9qx 1/1 Running 0 51m
5960
```
6061
6162
* If ingress is enabled, verify ingress pods:
@@ -68,22 +69,22 @@ The following example illustrates how to upgrade from revision `asm-1-18` to `as
6869
6970
```
7071
NAME READY STATUS RESTARTS AGE
71-
aks-istio-ingressgateway-external-asm-1-18-58f889f99d-qkvq2 1/1 Running 0 59m
72-
aks-istio-ingressgateway-external-asm-1-18-58f889f99d-vhtd5 1/1 Running 0 58m
73-
aks-istio-ingressgateway-external-asm-1-19-7466f77bb9-ft9c8 1/1 Running 0 51m
74-
aks-istio-ingressgateway-external-asm-1-19-7466f77bb9-wcb6s 1/1 Running 0 51m
75-
aks-istio-ingressgateway-internal-asm-1-18-579c5d8d4b-4cc2l 1/1 Running 0 58m
76-
aks-istio-ingressgateway-internal-asm-1-18-579c5d8d4b-jjc7m 1/1 Running 0 59m
77-
aks-istio-ingressgateway-internal-asm-1-19-757d9b5545-g89s4 1/1 Running 0 51m
78-
aks-istio-ingressgateway-internal-asm-1-19-757d9b5545-krq9w 1/1 Running 0 51m
72+
aks-istio-ingressgateway-external-asm-1-20-58f889f99d-qkvq2 1/1 Running 0 59m
73+
aks-istio-ingressgateway-external-asm-1-20-58f889f99d-vhtd5 1/1 Running 0 58m
74+
aks-istio-ingressgateway-external-asm-1-21-7466f77bb9-ft9c8 1/1 Running 0 51m
75+
aks-istio-ingressgateway-external-asm-1-21-7466f77bb9-wcb6s 1/1 Running 0 51m
76+
aks-istio-ingressgateway-internal-asm-1-20-579c5d8d4b-4cc2l 1/1 Running 0 58m
77+
aks-istio-ingressgateway-internal-asm-1-20-579c5d8d4b-jjc7m 1/1 Running 0 59m
78+
aks-istio-ingressgateway-internal-asm-1-21-757d9b5545-g89s4 1/1 Running 0 51m
79+
aks-istio-ingressgateway-internal-asm-1-21-757d9b5545-krq9w 1/1 Running 0 51m
7980
```
8081
8182
Observe that ingress gateway pods of both revisions are deployed side-by-side. However, the service and its IP remain immutable.
8283
8384
1. Relabel the namespace so that any new pods get the Istio sidecar associated with the new revision and its control plane:
8485
8586
```bash
86-
kubectl label namespace default istio.io/rev=asm-1-19 --overwrite
87+
kubectl label namespace default istio.io/rev=asm-1-21 --overwrite
8788
```
8889
8990
Relabeling doesn't affect your workloads until they're restarted.
@@ -98,7 +99,7 @@ The following example illustrates how to upgrade from revision `asm-1-18` to `as
9899
99100
* **Complete the canary upgrade**: If you're satisfied that the workloads are all running in a healthy state as expected, you can complete the canary upgrade. Completion of the upgrade removes the previous revision's control plane and leaves behind the new revision's control plane on the cluster. Run the following command to complete the canary upgrade:
100101
101-
```bash
102+
```azurecli-interactive
102103
az aks mesh upgrade complete --resource-group $RESOURCE_GROUP --name $CLUSTER
103104
```
104105
@@ -107,7 +108,7 @@ The following example illustrates how to upgrade from revision `asm-1-18` to `as
107108
* Relabel the namespace to the previous revision:
108109
109110
```bash
110-
kubectl label namespace default istio.io/rev=asm-1-18 --overwrite
111+
kubectl label namespace default istio.io/rev=asm-1-20 --overwrite
111112
```
112113
113114
* Roll back the workloads to use the sidecar corresponding to the previous Istio revision by restarting these workloads again:
@@ -118,7 +119,7 @@ The following example illustrates how to upgrade from revision `asm-1-18` to `as
118119
119120
* Roll back the control plane to the previous revision:
120121
121-
```
122+
```azurecli-interactive
122123
az aks mesh upgrade rollback --resource-group $RESOURCE_GROUP --name $CLUSTER
123124
```
124125
@@ -147,8 +148,8 @@ Thus, during the canary upgrade, when two revisions exist simultaneously on the
147148
Example output:
148149
149150
```bash
150-
"image": "mcr.microsoft.com/oss/istio/proxyv2:1.18.2-distroless",
151-
"image": "mcr.microsoft.com/oss/istio/proxyv2:1.18.2-distroless"
151+
"image": "mcr.microsoft.com/oss/istio/proxyv2:1.20.6-distroless",
152+
"image": "mcr.microsoft.com/oss/istio/proxyv2:1.20.6-distroless"
152153
```
153154
154155
* Check the Istio proxy image version for all pods in a namespace:
@@ -162,7 +163,7 @@ Thus, during the canary upgrade, when two revisions exist simultaneously on the
162163
Example output:
163164
164165
```bash
165-
productpage-v1-979d4d9fc-p4764: docker.io/istio/examples-bookinfo-productpage-v1:1.18.0, mcr.microsoft.com/oss/istio/proxyv2:1.18.1-distroless
166+
productpage-v1-979d4d9fc-p4764: docker.io/istio/examples-bookinfo-productpage-v1:1.20.0, mcr.microsoft.com/oss/istio/proxyv2:1.20.6-distroless
166167
```
167168
168169
* To trigger reinjection, restart the workloads. For example:
@@ -182,11 +183,15 @@ Thus, during the canary upgrade, when two revisions exist simultaneously on the
182183
Example output:
183184
184185
```bash
185-
productpage-v1-979d4d9fc-p4764: docker.io/istio/examples-bookinfo-productpage-v1:1.18.0, mcr.microsoft.com/oss/istio/proxyv2:1.18.2-distroless
186+
productpage-v1-979d4d9fc-p4764: docker.io/istio/examples-bookinfo-productpage-v1:1.20.0, mcr.microsoft.com/oss/istio/proxyv2:1.20.7-distroless
186187
```
187188
189+
> [!NOTE]
190+
> In case of any issues encountered during upgrades, refer to [article on troubleshooting mesh revision upgrades][upgrade-istio-service-mesh-tsg]
191+
188192
[aks-release-notes]: https://github.com/Azure/AKS/releases
189193
[istio-canary-upstream]: https://istio.io/latest/docs/setup/upgrade/canary/
190194
[meshconfig]: ./istio-meshconfig.md
191195
[meshconfig-canary-upgrade]: ./istio-meshconfig.md#mesh-configuration-and-upgrades
196+
[upgrade-istio-service-mesh-tsg]: /troubleshoot/azure/azure-kubernetes/extensions/istio-add-on-minor-revision-upgrade
192197

0 commit comments

Comments
 (0)