Skip to content
ICATraffic ManagementSingle nodeMedium

Route requests by header to a service version

Scenario ica-trf-002 · about 8 minutes · 8 points · 4 grader checks

Define service subsets and send requests of one user to v2 while everybody else stays on v1.

  • virtualservice
  • destinationrule
  • subsets
  • header-routing
  • traffic-management

What you will practise

  • Define subsets in a DestinationRule
  • Match HTTP headers in a VirtualService
  • Order routes so the default route comes last

Start this lab

With the CLI installed and signed in, this command provisions a single node cluster on your Mac, applies the scenario setup and prints the task below.

goldenkube start ica-trf-002

Task

The task text exactly as the CLI shows it. Solve it on the cluster, then run goldenkube submit.

Istio is installed. Namespace "hello" (in the mesh) runs the Service "helloworld" (port 5000) with two Deployments, helloworld-v1 and helloworld-v2, whose pods carry the labels version=v1 and version=v2. 1. Create a DestinationRule "helloworld" in "hello" with the subsets "v1" and "v2", selected by the label "version". 2. Create a VirtualService "helloworld" in "hello" for the host "helloworld" so that requests with the HTTP header "end-user: jason" go to subset v2 and all other requests go to subset v1. The Deployment "curl" in "hello" can be used to test.

Requirements and details

Certification
ICA · Istio Certified Associate
Domain
Traffic Management
Difficulty
Medium
Cluster topology
Single node
Cluster features
None beyond the base cluster
Recommended time
8 minutes
Points
8
Grader checks
4
Kubernetes version
1.35
Minimum CLI version
0.1.0
Scenario version
1
Published

Grading runs locally: 4 state checks read your cluster when you submit; the scenario passes when every check passes. Hints, the reference solution and the check definitions are available only inside the CLI, not on this page.

ICATraffic ManagementEasy

Expose a service through the ingress gateway

Publish an in-mesh HTTP service on a host name through the Istio ingress gateway with a Gateway and a VirtualService.

Single node · ~7 min · 7 points

  • gateway
  • virtualservice
  • ingress
  • traffic-management

goldenkube start ica-trf-001

ICATraffic ManagementEasy

Shift 20 percent of traffic to a new version

Split traffic between two versions of a service with weighted routes.

Single node · ~7 min · 6 points

  • traffic-shifting
  • weights
  • virtualservice
  • destinationrule
  • traffic-management

goldenkube start ica-trf-003

ICATraffic ManagementMedium

Lock down egress and register one external host

Switch the mesh to registry-only outbound traffic and allow exactly one external host with a ServiceEntry.

Single node · ~9 min · 9 points

  • egress
  • serviceentry
  • outbound-traffic-policy
  • meshconfig
  • traffic-management

goldenkube start ica-trf-004

ICATraffic ManagementMedium

Timeouts, retries and circuit breaking

Make a slow backend fail fast with a timeout and retries, and protect it with a connection pool and outlier detection.

Single node · ~10 min · 10 points

  • resilience
  • timeout
  • retries
  • circuit-breaking
  • outlier-detection
  • traffic-management

goldenkube start ica-trf-005

Independent community project, not affiliated with or endorsed by CNCF or The Linux Foundation. Lab results are practice feedback, not an exam score.