Istio is a service mesh that provides an application-aware network using Envoy proxy. It is a common solution used in cloud native microservice architectures to simplify traffic management, security, policy enforcement and observability. In this post we will focus on the observability aspects and how to use OpenTelemetry with Istio for distributed tracing.
Istio has built-in support for multiple distributed tracing solutions. It can be configured to capture and send tracing data to different observability backends including ServiceNow Cloud Observability and supports different tracing formats including OpenTelemetry, OpenTracing and OpenCensus. OpenTelemetry is the evolution of OpenTracing and OpenCensus and is the recommended solution for distributed tracing in today’s modern applications. This guide will walk you through installing and configuring Istio with OpenTelemetry.
Before we setup and configure Istio, we must ensure a few prerequisites are met:
You will need a Cloud Observability account to send OpenTelemetry data to for this workshop. Cloud Observability offers a free Community Tier account. If you don’t already have an account, you can sign up here.
If you don’t get the confirmation email after signing up for an account, please check your Spam folders
You can use any IDE or editor that your prefer. If you don’t have one yet, we recommend using Visual Studio Code
This workshop uses Docker to run the microservices on your machine. Click here to download and install Docker Desktop if you have not already done so. After installing Docker Desktop, follow these instructions to enable Kubernetes.
Once these are done and you have a Kubernetes cluster running let’s install Istio and deploy a sample app.
next: Install Istio