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.
- Using Istioctl, a command-line utility provided by Istio. It is a user-friendly command-line tool for installing and managing Istio.
- 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.
- Basics of automation using Ansible | Automate any task
- Automation of Java installation – using Ansible
- Automation of Tomcat installation – using Ansible
- 10 frequently used ansible modules with example
- Jenkins Pipeline as code – High level information
- Jenkins pipeline script to build Java application and push artifacts into repository
- Jenkins pipeline script to build & deploy application on web server
- What is End-to-End Monitoring of any web application, and Why do we need it?
- What is “Monitoring” in DevOps? Why do we need to Monitor App/DB servers, Transactions etc.?
- DevOps Engineer or Software Developer Engineer which is better for you?- Let’s discuss
- How To Be A Good DevOps Engineer?