Icon Minimal Istio Installation

Quick start instructions for the minimal setup and configuration of Istio using Helm. This minimal install provides traffic management features of Istio.

Prerequisites

Refer to the prerequisites described in the Quick Start guide.

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
  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 \
      --set security.enabled=false \
      --set ingress.enabled=false \
      --set gateways.istio-ingressgateway.enabled=false \
      --set gateways.istio-egressgateway.enabled=false \
      --set galley.enabled=false \
      --set sidecarInjectorWebhook.enabled=false \
      --set mixer.enabled=false \
      --set prometheus.enabled=false \
      --set global.proxy.envoyStatsd.enabled=false \
      --set pilot.sidecar=false > $HOME/istio-minimal.yaml
  2. Install the Pilot component via the manifest:

    $ kubectl create namespace istio-system
    $ kubectl apply -f $HOME/istio-minimal.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-minimal --namespace istio-system \
      --set security.enabled=false \
      --set ingress.enabled=false \
      --set gateways.istio-ingressgateway.enabled=false \
      --set gateways.istio-egressgateway.enabled=false \
      --set galley.enabled=false \
      --set sidecarInjectorWebhook.enabled=false \
      --set mixer.enabled=false \
      --set prometheus.enabled=false \
      --set global.proxy.envoyStatsd.enabled=false \
      --set pilot.sidecar=false
  4. Ensure the istio-pilot-* Kubernetes pod is deployed and its container is up and running:

$ kubectl get pods -n istio-system
NAME                                     READY     STATUS    RESTARTS   AGE
istio-pilot-58c65f74bc-2f5xn             1/1       Running   0          1m

Uninstall

  • For option 1, uninstall using kubectl:

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

    $ helm delete --purge istio-minimal

    If your Helm version is less than 2.10.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 Istio with the included Helm chart.

Instructions to download the Istio release.

Example multicluster GKE install of Istio.

Instructions to setup a Google Kubernetes Engine cluster for Istio.

Example multicluster between IBM Cloud Kubernetes Service & IBM Cloud Private.