Difficulty: Intermediate
Estimated Time: 20 minutes

In this scenario you will learn how to use Istio to control and manage traffic within your infrastructure.

You will learn how to use the following Istio objects:

  • Ingress and Gateway

  • Virtual Service

  • Destination Rule

  • Egress and Service Entry

Traffic Shaping Microservices Connections

Step 1 of 9

Step 1 - BookInfo Sample Application

In this scenario, we'll use the Istio BookInfo sample application. The application is composed of four microservices:

  • The productpage microservice is the homepage, populated using the details and reviews microservices.
  • The details microservice contains the book information.
  • The reviews microservice contains the book reviews. It uses the Rating microservice for the star rating.
  • The ratings microservice contains the book rating for a book review.

The deployment included three versions of the reviews microservice to showcase different behaviour and routing:

  • Version v1 doesn’t call the Rating service.
  • Version v2 calls the Rating service and displays each rating as 1 to 5 black stars.
  • Version v3 calls the Rating service and presents each rating as 1 to 5 red stars.

The services communicate over HTTP using DNS for service discovery. An overview of the architecture is shown below.

BookInfo Architecture

The application doesn't understand anything about Istio, Kubernetes or metrics. It could be deployed onto any system.

Deploy Bookinfo

Istio is already running on the Kubernetes cluster. Deploy the sample Bookinfo application before continuing.

kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)

The application definition is available on Github

After deploying, all the pods should be running.

kubectl get pods

When the Pods are starting, you may see initiation steps happening as the container is created. This is configuring the Envoy sidecar for handling the traffic management and authentication for the application within the Istio service mesh.