liveBook · Manning

Istio

As explained in Platform Engineering on Kubernetes

Istio is an open-source service mesh platform that manages and secures communication between services and provides traffic-routing and observability features.

Istio provides fine-grained traffic management for Kubernetes canary releases, letting teams route requests by percentage, headers, or mirrored copies. section 8.3.4

Use Istio with Argo Rollouts to:

  • Route a precise percentage of traffic to a canary instead of approximating weights through pod counts. section 8.3.4
  • Target canaries with specific request headers for feature testing. section 8.3.4
  • Mirror production requests to a canary while ignoring its responses, reducing risk during validation. section 8.3.4

Mirror traffic during a canary rollout

Configure an Argo Rollout with stable and canary services, an Istio Virtual Service, a 25% canary scale, and a 35% mirror route for GET requests. Pause for ten minutes, then remove the mirror route. section 8.3.4

Listing 8.29 Using Istio for advanced (weight-based) traffic split
apiVersion: argoproj.io/v1alpha1
kind: Rollout
spec:
 ...
 strategy:
   canary:
     canaryService: notifications-service-canary
     stableService: notifications-service-stable
     trafficRouting:
       managedRoutes:
         - name: mirror-route
       istio:
         virtualService:
           name: notifications-service-vsvc
     steps:
       - setCanaryScale:
           weight: 25
     - setMirrorRoute:
         name: mirror-route
         percentage: 35
         match:
           - method:
               exact: GET
             path:
               prefix: /
     - pause:
         duration: 10m
     - setMirrorRoute:
         name: "mirror-route" # removes mirror based traffic route

Inspect the Rollout manifest that configures Istio traffic routing, request matching, mirroring, pausing, and route removal. section 8.3.4

How Platform Engineering on Kubernetes covers it

How deep it goes
Explains percentage, header, and mirrored routing, but defers detailed Istio Virtual Service configuration.
Examples
Demonstrates 35% traffic mirroring to a 25%-scaled canary for matching GET requests.
What it assumes
Assumes a Kubernetes cluster, Argo Rollouts, and knowledge of Istio Virtual Services.
What you can do after
Apply it via Argo Rollouts to test canaries with weighted, header-based, or mirrored production traffic.
How it connects
Connects advanced traffic routing with Argo Rollouts, Knative Serving, and Gateway API.

Also explained in

Compare how 3 books explain Istio →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Platform Engineering on Kubernetes. The section links point to the parts of the book it draws on.