Skip to content

grampelberg/leaderboard

Repository files navigation

Autoscaling on latency

Prerequisites

Install system components

This will add the Linkerd control plane to your cluster and install the Prometheus adapter configured with latency queries. You can check out the file if you'd like to add your own queries.

make setup-system

To verify that everything worked, you can run:

linkerd check

kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq .

Note: it will take a little while for this to all start, so be patient.

Install the demo app

This will add the leaderboard, a load balancer and load generator to the cluster. It will then add the web deployment to Linkerd's data plane and apply the HPA policy.

make demo

To verify that everything worked, you can run:

linkerd check --proxy

linkerd -n leaderboard stat deploy/web

Start scaling

The load generator starts at 1k RPS. You can scale it up (or down) to modify the load. Run:

kubectl -n leaderboard scale deploy/slow-cooker --replicas=10

Watch the metrics either via the Linkerd dashboard or the CLI by running:

Development

Locally

make dev
make serve