Install with Helm

    The Helm charts used in this guide are the same underlying charts used when installing Istio via or the Operator.

    This feature is currently considered .

    Prior to Istio 1.9.0, installations using the Helm charts required hub and tag arguments: and --set global.tag="1.8.2". As of Istio 1.9.0 these are no longer required.

    1. Download the Istio release.

    2. Perform any necessary .

    3. Check the Requirements for Pods and Services.

    Helm 2 is not supported for installing Istio.

    The commands in this guide use the Helm charts that are included in the Istio release package located at manifests/charts.

    Change directory to the root of the release package and then follow the instructions below.

    1. Create a namespace istio-system for Istio components:

    2. Install the Istio base chart which contains cluster-wide resources used by the Istio control plane:

      1. $ helm install istio-base manifests/charts/base -n istio-system
    3. Install the Istio discovery chart which deploys the istiod service:

      1. $ helm install istiod manifests/charts/istio-control/istio-discovery \
    4. (Optional) Install the Istio ingress gateway chart which contains the ingress gateway components:

      1. $ helm install istio-ingress manifests/charts/gateways/istio-ingress \
      2. -n istio-system
    5. (Optional) Install the Istio egress gateway chart which contains the egress gateway components:

    Ensure all Kubernetes pods in istio-system namespace are deployed and have a STATUS of Running:

    1. $ kubectl get pods -n istio-system

    You can provide override settings specific to any Istio Helm chart used above and follow the Helm upgrade workflow to customize your Istio mesh installation. The available configurable options can be found by inspecting the top level values.yaml file associated with the Helm charts located at manifests/charts inside the Istio release package specific to your version.

    Note that the Istio Helm chart values are under active development and considered experimental. Upgrading to newer versions of Istio can involve migrating your override values to follow the new API.

    For customizations that are supported via both and Helm values, using ProxyConfig is recommended because it provides schema validation while unstructured Helm values do not.

    Before upgrading Istio in your cluster, we recommend creating a backup of your custom configurations, and restoring it from backup if necessary:

      1. $ kubectl apply -f "$HOME"/istio_resource_backup.yaml

      If you’re migrating from a version of Istio installed using istioctl or Operator to Helm (Istio 1.5 or earlier), you need to delete your current Istio control plane resources and re-install Istio using Helm as described above. When deleting your current Istio installation, you must not remove the Istio Custom Resource Definitions (CRDs) as that can lead to loss of your custom Istio resources.

      It is highly recommended to take a backup of your Istio resources using steps described above before deleting current Istio installation in your cluster.

      You can follow steps mentioned in the Istioctl uninstall guide or depending upon your installation method.

      You can uninstall Istio and its components by uninstalling the charts installed above.

      1. List all the Istio charts installed in istio-system namespace:

      2. (Optional) Delete Istio ingress/egress chart:

        1. $ helm delete istio-egress -n istio-system
        2. $ helm delete istio-ingress -n istio-system
      3. Delete Istio discovery chart:

        1. $ helm delete istiod -n istio-system
      4. Delete Istio base chart:

        By design, deleting a chart via Helm doesn’t delete the installed Custom Resource Definitions (CRDs) installed via the chart.

        1. $ helm delete istio-base -n istio-system
      5. Delete the istio-system namespace:

      1. $ kubectl get crd | grep --color=never 'istio.io' | awk '{print $1}' \