0
0
Kubernetesdevops~30 mins

Traffic management with Istio in Kubernetes - Mini Project: Build & Apply

Choose your learning style9 modes available
Traffic management with Istio
📖 Scenario: You are working as a DevOps engineer managing microservices in a Kubernetes cluster. Your team uses Istio to control traffic flow between services. You need to set up a simple traffic routing rule to split traffic between two versions of a service.
🎯 Goal: Learn how to create an Istio VirtualService resource to route 80% of traffic to version v1 of a service and 20% to version v2.
📋 What You'll Learn
Create a Kubernetes YAML manifest for an Istio VirtualService
Define routing rules with weighted traffic split
Apply the manifest to the cluster
Verify the routing configuration
💡 Why This Matters
🌍 Real World
Istio traffic management is used in microservices environments to control how requests are routed between different versions of services. This helps with gradual rollouts, A/B testing, and canary deployments.
💼 Career
DevOps engineers and SREs use Istio to manage service traffic safely and efficiently in Kubernetes clusters, improving deployment strategies and system reliability.
Progress0 / 4 steps
1
Create the base VirtualService YAML
Create a YAML manifest named virtualservice.yaml with a VirtualService resource for the host myservice.example.com. Include the apiVersion as networking.istio.io/v1beta1 and kind as VirtualService. Add metadata with name: myservice. Define an empty spec section for now.
Kubernetes
Need a hint?

Start with the basic structure of an Istio VirtualService YAML manifest.

2
Add hosts and HTTP route placeholders
In the spec section of virtualservice.yaml, add a hosts list containing myservice.example.com. Then add an empty http list to prepare for routing rules.
Kubernetes
Need a hint?

The hosts field is a list of service hostnames. The http field will hold routing rules.

3
Define weighted routing rules for versions v1 and v2
Inside the http list, add one item with a route list. Define two destinations: one with host: myservice.example.com and subset: v1 with weight: 80, and another with host: myservice.example.com and subset: v2 with weight: 20.
Kubernetes
Need a hint?

Use the route key with a list of destination entries, each specifying host, subset, and weight.

4
Apply the VirtualService and verify routing
Run the command kubectl apply -f virtualservice.yaml to apply the routing rules. Then run kubectl get virtualservice myservice -o yaml to display the applied configuration.
Kubernetes
Need a hint?

Use kubectl apply to update the cluster and kubectl get to verify the resource.