Autoscale a Deployment in Kubernetes

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

The Horizontal Pod Autoscaler is a great way to automatically scale Kubernetes applications in response to demands in real time. In this lab, you will have the opportunity to practice your skills with the Horizontal Pod Autoscaler by autoscaling an existing Deployment. This will give you some hands-on experience with autoscaling applications in Kubernetes.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Configure Resource Requests for the Deployment

The plantzone Deployment is in the default namespace. Add a resource request to the Deployment’s Pod template so that the Horizontal Pod Autoscaler will have a baseline for app’s expected CPU usage. Each Pod is expected to use around 50m CPU under normal conditions.

You can find a Deployment manifest for the plantzone Deployment at /home/cloud_user/plantzone.yml.

Create an HPA to Autoscale the Deployment

Create a Horizontal Pod Autoscaler to automatically scale the plantzone Deployment. Make sure there is always a minimum of 2 replicas, with the ability to scale up to a maximum of 8 replicas. The target percentage for CPU utilization should be 50.

Simulate a Burst of CPU Load and Observe the Autoscaling Behavior

You can create load by making a specialized HTTP request to any of the Deployment’s Pods. There is a NodePort service in place to make it easy to reach these Pods. You can communicate with the Service using port 30080 on the lab server node, localhost:30080.

This command will generate approximately 250m CPU load for 2 minutes:

curl localhost:30080/ConsumeCPU -d "millicores=250&durationSec=120"

After generating the load, observe the behavior of the autoscaler. It should scale the Deployment up. Then, about 5 minutes after the CPU load goes way, it should scale back down.

Additional Resources

Welcome to PlantZone!

In this scenario, our company is building products that help people remember to water and take care of their plants. We just want to make sure plants are happy. We're definitely not secretly run by plants that somehow learned how to create a software company!

We are using Kubernetes to run our PlantZone application, but there have been a lot of unexpected changes in user demand. We need you to help us set up autoscaling for our app. You will need to make some changes to the application Deployment, set up a horizontal Pod autoscaler, and test the setup by simulating some user load and watching the autoscaling take place.

You can access the Kubernetes cluster from the provided server.

Good luck!

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?