You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/aks/istio-upgrade.md
+112-4Lines changed: 112 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,12 +12,119 @@ This article addresses upgrade experiences for Istio-based service mesh add-on f
12
12
13
13
## How Istio components are upgraded
14
14
15
-
**Minor version:** Currently the Istio add-on only has minor version 1.17 available. Minor version upgrade experiences are planned for when newer versions of Istio (1.18) are introduced.
15
+
### Minor version upgrade
16
16
17
-
**Patch version:**
17
+
Istio add-on allows upgrading the minor version using [canary upgrade process][istio-canary-upstream]. When an upgrade is initiated, the control plane of the new (canary) revision is deployed alongside the old (stable) revision's control plane. You can then manually roll over data plane workloads while using monitoring tools to track the health of workloads during this process. If you don't observe any issues with the health of your workloads, you can complete the upgrade so that only the new revision remains on the cluster. Else, you can roll back to the previous revision of Istio.
18
+
19
+
If the cluster is currently using a supported minor version of Istio, upgrades are only allowed one minor version at a time. If the cluster is using an unsupported version of Istio, you must upgrade to the lowest supported minor version of Istio for that Kubernetes version. After that, upgrades can again be done one minor version at a time.
20
+
21
+
The following example illustrates how to upgrade from revision `asm-1-17` to `asm-1-18`. The steps are the same for all minor upgrades.
22
+
23
+
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:
24
+
25
+
```bash
26
+
az aks mesh get-upgrades --resource-group $RESOURCE_GROUP --name $CLUSTER
27
+
```
28
+
29
+
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.
30
+
31
+
1. Initiate a canary upgrade from revision `asm-1-17` to `asm-1-18` using [az aks mesh upgrade start](/cli/azure/aks/mesh#az-aks-mesh-upgrade-start):
32
+
33
+
```bash
34
+
az aks mesh upgrade start --resource-group $RESOURCE_GROUP --name $CLUSTER --revision asm-1-18
35
+
```
36
+
37
+
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.
38
+
39
+
1. Verify control plane pods corresponding to both `asm-1-17` and `asm-1-18` exist:
1. Check your monitoring tools and dashboards to determine whether your workloads are all running in a healthy state after the restart. Based on the outcome, you have two options:
94
+
95
+
* **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. This will remove the previous revision's control plane and leave behind the new revision's control plane on the cluster. Run the following command to complete the canary upgrade:
96
+
97
+
```bash
98
+
az aks mesh upgrade complete --resource-group $RESOURCE_GROUP --name $CLUSTER
99
+
```
100
+
101
+
***Rollback the canary upgrade**: In case you observe any issues with the health of your workloads, you can roll back to the previous revision of Istio:
* Roll back the control plane to the previous revision:
116
+
117
+
```
118
+
az aks mesh upgrade rollback --resource-group $RESOURCE_GROUP --name $CLUSTER
119
+
```
120
+
121
+
> [!NOTE]
122
+
> Manually relabeling namespaces when moving them to a new revision can be tedious and error-prone. [Revision tags](https://istio.io/latest/docs/setup/upgrade/canary/#stable-revision-labels) solve this problem. Revision tags are stable identifiers that point to revisions and can be used to avoid relabeling namespaces. Rather than relabeling the namespace, a mesh operator can simply change the tag to point to a new revision. All namespaces labeled with that tag will be updated at the same time. However, note that you still need to restart the workloads to make sure the correct version of `istio-proxy` sidecars are injected.
123
+
124
+
### Patch version upgrade
18
125
19
126
* Istio add-on patch version availability information is published in [AKS weekly release notes][aks-release-notes].
20
-
* Patches are rolled out automatically for istiod and ingress pods as part of these AKS weekly releases.
127
+
* Patches are rolled out automatically for istiod and ingress pods as part of these AKS weekly releases, which respect the `default` [planned maintenance window](./planned-maintenance.md) set up for the cluster.
21
128
* User needs to initiate patches to Istio proxy in their workloads by restarting the pods for reinjection:
22
129
* Check the version of the Istio proxy intended for new or restarted pods. This version is the same as the version of the istiod and Istio ingress pods after they were patched:
23
130
@@ -66,4 +173,5 @@ This article addresses upgrade experiences for Istio-based service mesh add-on f
0 commit comments