Cloud Native 6 min read

Step-by-Step Guide to Deploying Istio on a Kubernetes Cluster

This tutorial walks through checking a Kubernetes cluster, creating a namespace with Istio sidecar injection, deploying the Bookinfo sample application, applying Istio gateway resources, and verifying services and endpoints using kubectl commands.

Practical DevOps Architecture
Practical DevOps Architecture
Practical DevOps Architecture
Step-by-Step Guide to Deploying Istio on a Kubernetes Cluster

First, verify the health of the Kubernetes cluster: kubectl get nodes Typical output shows the master and worker nodes in a Ready state, for example:

master   Ready   control-plane,master   66d   v1.20.0
node1    Ready   <none>               66d   v1.20.0
node2    Ready   <none>               66d   v1.20.0

Next, create a dedicated namespace for the Bookinfo demo and enable automatic Istio sidecar injection:

kubectl create ns bookinfo
kubectl label namespace bookinfo istio-injection=enable

After the namespace is ready, navigate to the Istio installation directory and inspect the sample files:

cd /usr/local/istio/
ll

The samples/bookinfo directory contains the manifest files needed for deployment.

Enter the sample directory and list its contents:

cd samples/bookinfo/
ll

Key files include bookinfo.yaml, various service and deployment manifests, and a cleanup.sh script.

Deploy the Bookinfo application by applying the main manifest: kubectl apply -f bookinfo.yaml -n bookinfo The command creates services, service accounts, and deployments for details, ratings, reviews, and the product page, confirming each creation with messages such as:

service/details created
deployment.apps/details-v1 created

... (similar messages for other components) ...

After deployment, verify the pods in the bookinfo namespace: kubectl get pod -n bookinfo Then, create the Istio Ingress gateway for the application:

kubectl apply -f networking/bookinfo-gateway.yaml -n bookinfo

This creates the gateway and virtual service resources:

gateway.networking.istio.io/bookinfo-gateway created
virtualservice.networking.istio.io/bookinfo created

Finally, check the service endpoints to confirm that each microservice is reachable: kubectl get svc -n bookinfo Typical output lists the endpoints for details, productpage, ratings, and reviews with their cluster IPs and ports.

These steps complete the deployment of Istio on a Kubernetes cluster and expose the Bookinfo sample through an Ingress gateway.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

CLICloud NativeDeploymentDevOps
Practical DevOps Architecture
Written by

Practical DevOps Architecture

Hands‑on DevOps operations using Docker, K8s, Jenkins, and Ansible—empowering ops professionals to grow together through sharing, discussion, knowledge consolidation, and continuous improvement.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.