Difficulty: beginner
Estimated Time: 10 minutes

Linkerd is a service sidecar and service mesh for Kubernetes and other frameworks. It makes running your service easier and safer by giving you runtime debugging, observability, reliability, and security–all without requiring any changes to your code.

This scenario walks through installing Linkerd on a Kubernetes cluster and using it to find the root cause for an intermittent issue in a node.js based gif voting microservice.

Linkerd

Step 1 of 5

Step 1 - Install the demo app

To get started, let's install the demo app on your cluster:

curl https://run.linkerd.io/nodevoto.yml | kubectl apply -f -

This command fetches the Kubernetes config for an example application that allows voting for gifs.

First, let's wait until everything is running. You can do that with:

kubectl -n nodevoto rollout status deploy/web

Once this has returned, you can look at what is running with:

kubectl -n nodevoto get all

The topology looks like this:

nodevoto topology

There's a traffic generator (vote-bot), a web frontend (web), a backend to record votes (voting) and an index of gifs (gif).

To take a look at your new gif voting application, run:

kubectl -n nodevoto port-forward svc/web-svc 9090:80 > /dev/null &

Then you can open nodevoto and see what's going on in your browser. Try clicking on the first gif to vote for it and see what happens (spoiler, it will fail about 50% of the time)!

nodevoto

Let's see how you can use Linkerd to narrow down the root cause from this issue.