Istio Installation in Kubernetes

Istio Installation in Kubernetes – A Simple Practical Guide

Last Updated on May 14, 2024 by cscontents

Introduction

Istio is an open-source service mesh tool that helps in managing, connecting, and securing microservices. Istio is an implementation of the service mesh concept. It was developed by Google, IBM, and Lyft and is now part of the Cloud Native Computing Foundation (CNCF).

In this article we will see istio installation using istioctl.

Deploying/Installing Istio

Istio typically functions within a container orchestration platform like Kubernetes. Kubernetes provides the necessary infrastructure and functionalities for Istio to manage your microservices effectively.

Installation

Istio can be installed in two ways.

  1. Using Istioctl, a command-line utility provided by Istio. It is a user-friendly command-line tool for installing and managing Istio.
  2. Using Helm charts.

Istio installation using Istioctl

Before installing Istio we need to ensure we have supported Kubernetes versions (1.26, 1.27, 1.28, 1.29). Follow the below steps to install Istio using Istioctl.

Step 1: Download Istio

Run the below command to download and extract the latest release of the Istioctl client. In our case, the version is 1.21.0

curl -L https://istio.io/downloadIstio | sh -

If you want other versions of Istio, please check this URL – https://github.com/istio/istio/releases

You can run the below command (with parameters) to download a specific version of Istio.

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.20.4 TARGET_ARCH=x86_64 sh -

You can use the “TARGET_ARCH” value as per your machine architecture.

Once you run any of the above download commands, it will give output like below and it has instructions as to what needs to be done next.

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   101  100   101    0     0    483      0 --:--:-- --:--:-- --:--:--   483
100  4899  100  4899    0     0  17372      0 --:--:-- --:--:-- --:--:-- 17372

Downloading istio-1.21.0 from https://github.com/istio/istio/releases/download/1.21.0/istio-1.21.0-linux-amd64.tar.gz ...

Istio 1.21.0 Download Complete!

Istio has been successfully downloaded into the istio-1.21.0 folder on your system.

Next Steps:
See https://istio.io/latest/docs/setup/install/ to add Istio to your Kubernetes cluster.

To configure the istioctl client tool for your workstation,
add the /home/ubuntu/temp/istio-1.21.0/bin directory to your environment path variable with:
         export PATH="$PATH:/home/ubuntu/temp/istio-1.21.0/bin"

Begin the Istio pre-installation check by running:
         istioctl x precheck

Need more information? Visit https://istio.io/latest/docs/setup/install/

The above output, it is showing what command needs to be run to add Istioctl in the PATH variable.

You can run the above command that is showing the output or run the below commands.

cd istio-1.21.0/

Next, we will add the Istioctl into the PATH variable.

export PATH=$PWD/bin:$PATH
Step 2: Install Istio

In Step 1 we downloaded the Istioctl binary files and added it in the PATH variable. In this step, we will install Istio using the Istioctl client.

Important points to be noted:

  • Istio comes with some built-in configuration profiles that can be used during installation of Istio. Below are the built-in configuration profiles.
    • default
    • demo
    • minimal
    • remote
    • empty
    • preview
    • ambient (currently in Alpha phase)

Below is a table that shows the core components of Istio that will be installed for various profiles.

default demo minimal remote empty preview ambient
Core components
istio-egressgateway Yes
istio-ingressgateway Yes Yes Yes
istiod Yes Yes Yes Yes Yes
CNI Yes
Ztunnel Yes

For more information, you can check this URL – https://istio.io/latest/docs/setup/additional-setup/config-profiles/

In our case, we will use the “demo” configuration profile. Now, execute the below command to install Istio.

istioctl install --set profile=demo -y

The above command will install Istio.

Moving forward if we want to deploy any microservice in the K8s cluster, in that case, we must label the namespace (in which pods will be deployed) with “istio-injection=enabled”.

Istio installation using Helm

In this guide, we are not adding details for “Istio installation using Helm”. Please refer to the official documents for the same.

Official doc Istio installation using Helm – https://istio.io/latest/docs/setup/install/helm/

 

Thank you.

 

If you are interested in learning DevOps, please have a look at the below articles, which will help you greatly.