Skip to main content
logoIstio DistroVersion: Next

Install a Tetrate Istio distribution using helm

Helm is the best way to deploy a Tetrate Istio distribution in a standard, automatable manner. Helm manages upgrades and installation cleanly.

For quick experiments, you could install using istioctl.

Before you begin

You need a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. Istio has a number of platform and networking/application requirements.

You also need the helm tool (version 3.6 or later) to install using this method.

Run following command ro get obtain a list of TAGs, corresponding to Tetrate's supported Istio versions and builds.

curl -s https://containers.istio.tetratelabs.com/v2/proxyv2/tags/list | jq

Choose and define the TAG (for example, 1.18.2-tetrate-v0) and VERSION (for example, 1.18.2) that matches the version and build you wish to install:

export TAG=1.18.2-tetrate-v0
export VERSION=1.18.2

Installation Steps

  1. Add the Tetrate Helm Repo

    Add Tetrate's Helm repo, and verify you can see the Tetrate Istio distribution releases:

    helm repo add tetratelabs https://tetratelabs.github.io/helm-charts/
    helm repo update tetratelabs

    helm search repo tetratelabs
  2. Determine the Install Version

    Tetrate provide support for a number of Istio releases.

    Installing the latest version

    To install the latest version, omit this step, and omit the --version $VERSION flag from the helm commands below.

    You can list the available releases as follows:

    helm search repo tetratelabs/base --versions

    Set $VERSION to your target version, such as 1.18.2:

    export VERSION=1.18.2
  3. Install the Istio Control Plane

    Create the istio-system namespace, and install Tetrate's Istio base and istiod charts. These contains the CRDs (custom resource definitions) required for the Istio install, and the istiod service:

    kubectl create namespace istio-system
    helm install istio-base tetratelabs/base -n istio-system \
    --set global.tag=${TAG} \
    --set global.hub="containers.istio.tetratelabs.com" \
    --version ${VERSION}

    helm install istiod tetratelabs/istiod -n istio-system \
    --set global.tag=${TAG} \
    --set global.hub="containers.istio.tetratelabs.com" \
    --version ${VERSION}

    After a few seconds, verify that the istio-base and istiod releases are installed and that the istiod pod is running:

    helm ls -n istio-system
    kubectl get pods -n istio-system
  4. Install Istio Gateway

    Finally, install Istio Gateway into the istio-ingress namespace. Verify that the istio-ingressgateway pod is running and the istio-ingress release is installed:

    kubectl create namespace istio-ingress

    helm install istio-ingress tetratelabs/istio-ingress -n istio-ingress \
    --set global.tag=${TAG} \
    --set global.hub="containers.istio.tetratelabs.com" \
    --version ${VERSION}

    sleep 5

    helm ls -n istio-ingress
    kubectl get pods -n istio-ingress

Upgrade the Installation

When you need to upgrade the version, the steps are similar to the install command.

Query the installed version:

helm ls -n istio-system ; helm ls -n istio-ingress

List available versions:

helm repo update tetratelabs
helm search repo tetratelabs/base --versions

To upgrade to the latest release:

helm upgrade istio-base tetratelabs/base -n istio-system --reuse-values
helm upgrade istiod tetratelabs/istiod -n istio-system --reuse-values
helm upgrade istio-ingress tetratelabs/istio-ingress -n istio-ingress --reuse-values

To upgrade to an intermediate release:

Set $VERSION to the target release version, e.g. 1.18.2

helm upgrade istio-base tetratelabs/base -n istio-system --version ${VERSION} --reuse-values
helm upgrade istiod tetratelabs/istiod -n istio-system --version ${VERSION} --reuse-values
helm upgrade istio-ingress tetratelabs/istio-ingress -n istio-ingress --version ${VERSION} --reuse-values

Uninstall a Tetrate Istio distribution

Before removing a Tetrate Istio distribution deployment, all the applications and gateways should be off-boarded.

Use helm uninstall for each chart:

helm uninstall istio-ingress -n istio-ingress
kubectl delete namespace istio-ingress

helm uninstall istiod --namespace istio-system
helm uninstall istio-base --namespace istio-system
kubectl delete namespace istio-system

Next Steps

Once you have installed and validated your Tetrate Istio distribution install, you can proceed to the Istio good practices guide.