Configure Traffic Routing Using Istio

Lab Steps

lock
Logging in to the Amazon Web Services Console
lock
Connecting to the CloudAcademy Web based IDE
lock
Deploy V1 and V2 Web Applications
lock
Deploy and Test 50/50 Traffic Routing Policy
lock
Deploy and Test 80/20 Traffic Routing Policy

The hands-on lab is part of these learning paths

DevSecOps - Build and Release Secure Software Faster
course-steps
8
certification
1
lab-steps
12
description
3
Kubernetes Tools
course-steps
4
certification
1
lab-steps
5

Ready for the real environment experience?

DifficultyIntermediate
Time Limit1h 15m
Students57
Ratings
5/5
starstarstarstarstar

Description

Istio is an open source, multi-cloud service mesh, capable of performing intelligent traffic management. Istio's traffic routing rules let you easily control the flow of traffic and API calls to and from deployed cluster resources.

In this Lab scenario, you'll learn how to use Istio to perform traffic routing to a pair of sample web applications, V1 and V2, deployed into a Kubernetes cluster. You'll first setup a traffic routing policy to balance traffic evenly (50/50) across both versions. You'll test and confirm that the traffic is indeed evenly split before later updating the traffic routing policy to use a 80/20 split.

Lab Objectives

Upon completion of this Lab, you will be able to:

  • Use Istio to perform traffic routing across a pair of versioned sample web applications 
  • Configure and deploy the following Istio custom resources:
    • DestinationRule - the baseline deployment version of the webapp
    • Gateway - uses a Kustomize overlay to change the baseline deployment settings
    • VirtualService - uses a Kustomize overlay to change the baseline deployment settings
  • Test, report, and validate the Istio service mesh based traffic routing using the curl command and your workstations browser

You should:

  • Be comfortable with basic Linux command line administration
  • Be comfortable with basic Kubernetes and Container based concepts

Lab Environment

This Lab will start with the following AWS resources provisioned automatically for you:

  • 2 x EC2 instances - each assigned a public IP address:
    • ide.cloudacademy.platform.instance - provides a web-based IDE with integrated terminal
    • k8s.cloudacademy.platform.instance - provides a fully functional and running Kubernetes cluster

To achieve the Lab end state, you will be walked through the process of:

  • Using your local workstation browser to remotely connect to the ide.cloudacademy.platform.instance
  • Using the web-based IDE and integrated terminal, you'll complete the remainder of the stated Lab Objectives (above)

About the Author
Students45804
Labs37
Courses94
Learning paths36

Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.

Jeremy holds professional certifications for both the AWS and GCP cloud platforms.