Clarify gateway canary upgrade (#12570)

* Clarify gateway canary upgrade

Signed-off-by: Faseela K <faseela.k@est.tech>

* Apply suggestions from code review

Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>

* Update index.md

---------

Signed-off-by: Faseela K <faseela.k@est.tech>
Co-authored-by: Eric Van Norman <ericvn@us.ibm.com>
This commit is contained in:
Faseela K 2023-02-02 17:27:50 +01:00 committed by GitHub
parent 4e69089d6f
commit ad9acda712
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 6 deletions

View File

@ -76,8 +76,8 @@ istio-sidecar-injector-canary 2 114s
## Data plane ## Data plane
Unlike istiod, Istio gateways do not run revision-specific instances, but are instead in-place upgraded to use the new control plane revision. Refer to [Gateway Canary Upgrade](/docs/setup/additional-setup/gateway/#canary-upgrade-advanced) to understand how to run revision specific instances of Istio gateway.
You can verify that the `istio-ingress` gateway is using the `canary` revision by running the following command: In this example, since we use the `default` Istio profile, Istio gateways do not run revision-specific instances, but are instead in-place upgraded to use the new control plane revision. You can verify that the `istio-ingress` gateway is using the `canary` revision by running the following command:
{{< text bash >}} {{< text bash >}}
$ istioctl proxy-status | grep "$(kubectl -n istio-system get pod -l app=istio-ingressgateway -o jsonpath='{.items..metadata.name}')" | awk '{print $10}' $ istioctl proxy-status | grep "$(kubectl -n istio-system get pod -l app=istio-ingressgateway -o jsonpath='{.items..metadata.name}')" | awk '{print $10}'

View File

@ -33,8 +33,8 @@ _verify_lines snip_canary_upgrade_recommended_3 "
+ canary + canary
" "
snip_canary_upgrade_recommended_4 snip_canary_upgrade_recommended_6
_rewrite_helm_repo snip_canary_upgrade_recommended_5 _rewrite_helm_repo snip_canary_upgrade_recommended_7
_rewrite_helm_repo helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags="{prod-stable}" --set revision=1-9-5 -n istio-system | kubectl delete -f - _rewrite_helm_repo helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags="{prod-stable}" --set revision=1-9-5 -n istio-system | kubectl delete -f -
_rewrite_helm_repo helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags="{prod-canary}" --set revision=1-10-0 -n istio-system | kubectl delete -f - _rewrite_helm_repo helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags="{prod-canary}" --set revision=1-10-0 -n istio-system | kubectl delete -f -

View File

@ -66,7 +66,26 @@ primary and canary installations.
istiod-canary-9cc9fd96f-jpc7n 1/1 Running 0 34m canary istiod-canary-9cc9fd96f-jpc7n 1/1 Running 0 34m canary
{{< /text >}} {{< /text >}}
1. Follow the steps [here](/docs/setup/upgrade/canary/) to test or migrate 1. If you are using [Istio gateways](/docs/setup/additional-setup/gateway/#deploying-a-gateway), install a canary revision of the Gateway chart by setting the revision value:
{{< text bash >}}
$ helm install istio-ingress-canary istio/gateway \
--set revision=canary \
-n istio-ingress
{{< /text >}}
1. Verify that you have two versions of `istio-ingress gateway` installed in your cluster:
{{< text bash >}}
$ kubectl get pods -L istio.io/rev -n istio-ingress
NAME READY STATUS RESTARTS AGE REV
istio-ingress-754f55f7f6-6zg8n 1/1 Running 0 5m22s default
istio-ingress-canary-5d649bd644-4m8lp 1/1 Running 0 3m24s canary
{{< /text >}}
See [Upgarding Gateways](/docs/setup/additional-setup/gateway/#canary-upgrade-advanced) for in-depth documentation on gateway canary upgrade.
1. Follow the steps [here](/docs/setup/upgrade/canary/#data-plane) to test or migrate
existing workloads to use the canary control plane. existing workloads to use the canary control plane.
1. Once you have verified and migrated your workloads to use the canary control 1. Once you have verified and migrated your workloads to use the canary control

View File

@ -53,10 +53,26 @@ kubectl get pods -l app=istiod -L istio.io/rev -n istio-system
ENDSNIP ENDSNIP
snip_canary_upgrade_recommended_4() { snip_canary_upgrade_recommended_4() {
helm delete istiod -n istio-system helm install istio-ingress-canary istio/gateway \
--set revision=canary \
-n istio-ingress
} }
snip_canary_upgrade_recommended_5() { snip_canary_upgrade_recommended_5() {
kubectl get pods -L istio.io/rev -n istio-ingress
}
! read -r -d '' snip_canary_upgrade_recommended_5_out <<\ENDSNIP
NAME READY STATUS RESTARTS AGE REV
istio-ingress-754f55f7f6-6zg8n 1/1 Running 0 5m22s default
istio-ingress-canary-5d649bd644-4m8lp 1/1 Running 0 3m24s canary
ENDSNIP
snip_canary_upgrade_recommended_6() {
helm delete istiod -n istio-system
}
snip_canary_upgrade_recommended_7() {
helm upgrade istio-base istio/base --set defaultRevision=canary -n istio-system --skip-crds helm upgrade istio-base istio/base --set defaultRevision=canary -n istio-system --skip-crds
} }