The commands on this page use the environment variables and migration script
from the upgrade preparation step.
It is important that you perform each step of this process in the
specified order.
Identify if the Istio add-on is in use
There are two possible paths for migration depending on if either the ingress
gateway or sidecar injection feature of the Istio add-on is in use within your
cluster.
Earlier in the preparation step, you
already identified if the Istio add-on is configured. You can run the
following command to verify that the istio-system namespace exists:
echo$INGRESS_NAMESPACE
Run the following command to determine if the sidecar injection feature of
the Istio add-on is in use within your cluster:
kubectlgetns-listio-injection=enabled
If any namespace, other than knative-serving is listed, it indicates that
sidecar injection of the Istio add-on is in use.
For example, if the command only lists the knative-serving namespace, then
you have not configured and do not use sidecar injection of the
Istio add-on.
Results:
One or both used - One or both of the Istio add-on features are in
use within your cluster:
Istio add-on ingress service istio-ingressgateway is used.
Not used - Neither the ingress gateway nor the sidecar injection of the
Istio add-on are configure for use within your cluster. In other words,
your installation uses the "bundled version of Istio".
If you identified earlier that neither the ingress gateway nor the
sidecar injection of the "Istio add-on" were used in your cluster, then
your installation actually used the "bundled version of Istio". You can now
proceed to install
Cloud Service Mesh with the in-cluster control plane.
Rollback
If you need to rollback the changes that you made through the steps above, you
can use the migration script to re-enable the "Istio add-on":
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Uninstall the Istio add-on\n\nThese steps are specific to installations of the\n[Istio on GKE](/istio/docs/istio-on-gke/overview), also referred\nto as the \"*Istio add-on*\".\n| **Important:** If you installed the bundled version of Istio that is included by default with the \"*GKE add-on* \", you must instead follow the steps in [migrate the bundled Istio to Cloud Service Mesh](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/uninstall-istio-addon).\n\nBefore you begin\n----------------\n\n- You must first review and ensure that you meet the\n [requirements for upgrading](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade).\n\n- The commands on this page use the environment variables and migration script\n from the [upgrade preparation step](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/prepare).\n\n- It is important that you perform each step of this process in the\n [specified order](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade#upgrading).\n\nIdentify if the *Istio add-on* is in use\n----------------------------------------\n\nThere are two possible paths for migration depending on if either the ingress\ngateway or sidecar injection feature of the *Istio add-on* is in use within your\ncluster.\n\n1. Earlier in the [preparation step](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/prepare#istioaddon), you\n already identified if the *Istio add-on* is configured. You can run the\n following command to verify that the `istio-system` namespace exists:\n\n echo $INGRESS_NAMESPACE\n\n2. Run the following command to determine if the sidecar injection feature of\n the *Istio add-on* is in use within your cluster:\n\n kubectl get ns -l istio-injection=enabled\n\n If any namespace, other than `knative-serving` is listed, it indicates that\n sidecar injection of the *Istio add-on* is in use.\n\n For example, if the command only lists the `knative-serving` namespace, then\n you have not configured and do not use sidecar injection of the\n *Istio add-on*.\n\nResults:\n\n- **One or both used** - One or both of the *Istio add-on* features are in\n use within your cluster:\n\n - *Istio add-on* ingress service `istio-ingressgateway` is used.\n - *Istio add-on* sidecar injection is used.\n\n Next steps: After you follow the instruction in the next section to\n [uninstall the *Istio add-on*](#uninstall), you must proceed to the\n [Cloud Service Mesh with the managed control plane](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/install-mesh-mcp)\n guide.\n- **Not used** - Neither the ingress gateway nor the sidecar injection of the\n *Istio add-on* are configure for use within your cluster. In other words,\n your installation uses the \"bundled version of Istio\".\n\n Next steps: After you follow the instruction in the next section to\n [uninstall the unused *Istio add-on*](#uninstall), you can proceed to the\n [Cloud Service Mesh with the in-cluster control plane](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/install-configure-mesh)\n guide.\n\nUninstall the Istio add-on\n--------------------------\n\nIn this section, the [migration script](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/prepare) is used to\nuninstall the \"*Istio add-on*\".\n\n1. Run the following command to start the migration script:\n\n ./migration-addon.sh --command uninstall-istio-addon\n\n2. Verify that the `istio-system` namespace has been deleted:\n\n kubectl get ns istio-system --ignore-not-found\n\nWhat's next\n-----------\n\nDepending on the ingress gateway configuration that you identified above,\ncontinue to the corresponding installation guide:\n\n- If you [identified earlier](#iduse) that one or both of the \"*Istio add-on* \"\n features were configured and used within your cluster, you must proceed to the\n [Cloud Service Mesh with the managed control plane](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/install-mesh-mcp)\n guide.\n\n- If you [identified earlier](#iduse) that neither the ingress gateway nor the\n sidecar injection of the \"Istio add-on\" were used in your cluster, then\n your installation actually used the \"bundled version of Istio\". You can now\n proceed to install\n [Cloud Service Mesh with the in-cluster control plane](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/install-configure-mesh).\n\nRollback\n--------\n\nIf you need to rollback the changes that you made through the steps above, you\ncan use the migration script to re-enable the \"*Istio add-on*\":\n\n1. Run the following command:\n\n ./migration-addon.sh --command rollback-uninstall-istio-addon\n\n2. To continue rolling back your changes to your installation's original state,\n [rollback the Knative serving \"GKE add-on\"](/kubernetes-engine/enterprise/knative-serving/docs/install/on-gcp/upgrade/uninstall-addon#rollbackgkeaddon)."]]