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
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 tetratelabsDetermine the Install Version
Tetrate provide support for a number of Istio releases.
Installing the latest versionTo 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
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-systemInstall 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.