Icon Installation with Helm

Quick start instructions for the setup and configuration of Istio using Helm. This is the recommended install method for installing Istio to your production environment as it offers rich customization to the Istio control plane and the sidecars for the Istio data plane.

Prerequisites

  1. Download the Istio release.

  2. Kubernetes platform setup:

  3. Check the Requirements for Pods and Services on Pods and Services.

  4. Install the Helm client.

  5. Istio by default uses LoadBalancer service object types. Some platforms do not support LoadBalancer service objects. For platforms lacking LoadBalancer support, install Istio with NodePort support instead with the flags --set gateways.istio-ingressgateway.type=NodePort --set gateways.istio-egressgateway.type=NodePort appended to the end of the Helm operation.

Installation steps

  1. If using a Helm version prior to 2.10.0, install Istio’s Custom Resource Definitions via kubectl apply, and wait a few seconds for the CRDs to be committed in the kube-apiserver:

    $ kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml

    If you are enabling certmanager, you also need to install its CRDs as well and wait a few seconds for the CRDs to be committed in the kube-apiserver:

    $ kubectl apply -f install/kubernetes/helm/istio/charts/certmanager/templates/crds.yaml
  2. Choose one of the following two mutually exclusive options described below.

Option 1: Install with Helm via helm template

  1. Render Istio’s core components to a Kubernetes manifest called istio.yaml:

    $ helm template install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml
  2. Install the components via the manifest:

    $ kubectl create namespace istio-system
    $ kubectl apply -f $HOME/istio.yaml

Option 2: Install with Helm and Tiller via helm install

This option allows Helm and Tiller to manage the lifecycle of Istio.

  1. If a service account has not already been installed for Tiller, install one:

    $ kubectl apply -f install/kubernetes/helm/helm-service-account.yaml
  2. Install Tiller on your cluster with the service account:

    $ helm init --service-account tiller
  3. Install Istio:

    $ helm install install/kubernetes/helm/istio --name istio --namespace istio-system

Uninstall

  • For option 1, uninstall using kubectl:

    $ kubectl delete -f $HOME/istio.yaml
  • For option 2, uninstall using Helm:

    $ helm delete --purge istio

    If your Helm version is less than 2.9.0, then you need to manually cleanup extra job resource before redeploy new version of Istio chart:

    $ kubectl -n istio-system delete job --all
  • If desired, delete the CRDs:

    $ kubectl delete -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system

See also

Describes the options available when installing Istio using the included Helm chart.

Install minimal Istio using Helm.

Instructions for installing the Istio sidecar in application pods automatically using the sidecar injector webhook or manually using istioctl CLI.

Demonstrates how to upgrade the Istio control plane and data plane independently.

Instructions to setup a Google Kubernetes Engine cluster for Istio.

Instructions to setup the Istio service mesh in a Kubernetes cluster.