Skip to content

Commit ca51f51

Browse files
committed
asm: clarify installation and upgrade docs based on feedback
1 parent ce0103f commit ca51f51

File tree

2 files changed

+45
-10
lines changed

2 files changed

+45
-10
lines changed

articles/aks/istio-deploy-addon.md

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,23 @@ export LOCATION=<location>
2929

3030
The add-on requires Azure CLI version 2.57.0 or later installed. You can run `az --version` to verify version. To install or upgrade, see [Install Azure CLI][azure-cli-install].
3131

32-
## Install Istio add-on at the time of cluster creation
32+
## Query available Istio add-on revisions
33+
You can use the command below to find information about which Istio add-on revisions are available in a region and their compatibility with AKS cluster versions:
34+
35+
```azurecli-interactive
36+
az aks mesh get-revisions --location <location> -o table
37+
```
38+
39+
40+
## Install Istio add-on
41+
### Revision selection
42+
If you enable the add-on without specifiying a revision, a default supported revision will be installed for you
43+
44+
If you wish to select a revision instead:
45+
1. Use the `get-revisions` command in the [previous step](#query-available-istio-add-on-revisions) to check which revisions are available for different AKS cluster versions in a region.
46+
1. Based on the available revisions, you can include a `--revision asm-X-Y` flag in in the enable command you use for mesh installation
47+
48+
### Install mesh during cluster creation
3349

3450
To install the Istio add-on when creating the cluster, use the `--enable-azure-service-mesh` or`--enable-asm` parameter.
3551

@@ -42,7 +58,7 @@ az aks create \
4258
--enable-asm
4359
```
4460

45-
## Install Istio add-on for existing cluster
61+
### Install mesh for existing cluster
4662

4763
The following example enables Istio add-on for an existing AKS cluster:
4864

@@ -86,23 +102,42 @@ istiod-asm-1-18-74f7f7c46c-xfdtl 1/1 Running 0 2m
86102

87103
## Enable sidecar injection
88104

89-
To automatically install sidecar to any new pods, annotate your namespaces:
105+
To automatically install sidecar to any new pods, annotate your namespaces with the revision label corresponding to the control plane revision currently installed. If you are unsure which revision is installed, use:
106+
```bash
107+
az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query 'serviceMeshProfile.istio.revisions'
108+
```
90109

110+
Apply the revision label:
91111
```bash
92-
kubectl label namespace default istio.io/rev=asm-1-18
112+
kubectl label namespace default istio.io/rev=asm-X-Y
93113
```
94114

95115
> [!IMPORTANT]
96-
> The default `istio-injection=enabled` labeling doesn't work. Explicit versioning (`istio.io/rev=asm-1-18`) is required.
116+
> The default `istio-injection=enabled` labeling doesn't work. Explicit versioning (ex: `istio.io/rev=asm-1-18`) is required.
117+
118+
For manual injection of sidecar using `istioctl kube-inject`, you need to specify extra parameters for `istioNamespace` (`-i`) and `revision` (`-r`). For example:
119+
120+
```bash
121+
kubectl apply -f <(istioctl kube-inject -f sample.yaml -i aks-istio-system -r asm-X-Y) -n foo
122+
```
97123

124+
## Trigger sidecar injection
125+
You can either deploy the sample application provided for testing, or trigger sidecar injection for existing workloads.
98126

99-
For manual injection of sidecar using `istioctl kube-inject`, you need to specify extra parameters for `istioNamespace` (`-i`) and `revision` (`-r`). Example:
127+
### Existing applications
128+
If you have existing applications to be added to the mesh, ensure their namespaces are labelled as in the previous step, and then restart their deployments to trigger sidecar injection:
129+
```bash
130+
kubectl rollout restart -n <namespace> <deployment name>
131+
```
100132

133+
Verify that sidecar injection succeeded by looking for the `istio-proxy` container in the describe output, ex:
101134
```bash
102-
kubectl apply -f <(istioctl kube-inject -f sample.yaml -i aks-istio-system -r asm-1-18) -n foo
135+
kubectl describe pod -n namespace <pod name>
103136
```
104137

105-
## Deploy sample application
138+
The `istio-proxy` container is the Envoy sidecar. Your application is now part of the data plane.
139+
140+
### Deploy sample application
106141

107142
Use `kubectl apply` to deploy the sample application on the cluster:
108143

@@ -150,7 +185,7 @@ reviews ClusterIP 10.0.73.95 <none> 9080/TCP 86s
150185
kubectl get pods
151186
```
152187

153-
Confirm that all the pods have status of `Running`.
188+
Confirm that all the pods have status of `Running` with a second READY container.
154189

155190
```
156191
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

articles/aks/istio-upgrade.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ The following example illustrates how to upgrade from revision `asm-1-18` to `as
3232
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):
3333
3434
```bash
35-
az aks mesh upgrade start --resource-group $RESOURCE_GROUP --name $CLUSTER --revision asm-1-18
35+
az aks mesh upgrade start --resource-group $RESOURCE_GROUP --name $CLUSTER --revision asm-1-19
3636
```
3737
3838
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.

0 commit comments

Comments
 (0)