Optimizing Kubernetes Resource Utilization: Focus on Horizontal Pod Autoscaler and Metrics Server

Effectively managing resource usage and ensuring scalability is a central challenge when operating applications in Kubernetes clusters. This is where the Horizontal Pod Autoscaler (HPA) and Metrics Server come into play. In this post, we will show you how to use these two components to automatically and dynamically scale your applications based on current usage levels.

Step 1: Setting up the Metrics Server with Helm

The Metrics Server is an essential component for monitoring resources in Kubernetes clusters. We begin by setting up the Metrics Server using Helm. This involves adding the appropriate Helm repository, updating available packages, and installing the Metrics Server in our cluster. This enables us to effectively monitor and analyze resources such as CPU and memory.


# Add Helm repository for Metrics Server
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server

# Update available packages
helm repo update metrics-server

# Install Metrics Server
helm install metrics-server metrics-server/metrics-server –namespace metrics-server

Step 2: Configuring the Horizontal Pod Autoscaler (HPA)

The HPA is a Kubernetes feature that allows automatic scaling of the number of pods in an application based on various metrics. We’ll show you how to configure an HPA to scale your applications based on CPU or memory usage. This includes both applying a YAML manifest directly and using the kubectl command.


# Example YAML manifest for a Horizontal Pod Autoscaler (HPA)
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp-deployment
minReplicas: 1
maxReplicas: 10
metrics:
– type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50

Step 3: Automatically Scaling Applications with the Metrics Server

In this step, we demonstrate the practical application of the HPA and the Metrics Server with two scenarios: constant and variable load. In the first scenario, we use a CPU-intensive application, while in the second scenario, external load is simulated through rapid HTTP requests. You’ll learn how to configure the HPA for both scenarios and observe how it automatically responds to the load, adjusting the number of pods accordingly.


# Example YAML manifest for an application with constant load and HPA
apiVersion: apps/v1
kind: Deployment
metadata:
name: constant-load-app
spec:
replicas: 1
selector:
matchLabels:
app: constant-load
template:
metadata:
labels:
app: constant-load
spec:
containers:
– name: constant-load
image: busybox
resources:
limits:
cpu: 200m
command: [“sh”, “-c”]
args: [“while true; do echo ‘Constant Load’; sleep 1; done”]

Conclusion

Efficiently scaling Kubernetes applications is a crucial part of managing container-based workloads. By combining the Horizontal Pod Autoscaler with the Metrics Server, you can optimize the performance of your applications, use resources efficiently, and reduce the costs of your Kubernetes infrastructure. With these tools, you are well-equipped to keep your Kubernetes cluster scalable and stable. Optimizing Kubernetes Resource Utilization: Focus on Horizontal Pod Autoscaler and Metrics Server.

Source: digitalocean.com

Create a Free Account

Register now and get access to our Cloud Services.

Posts you might be interested in:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Apache Airflow on Ubuntu 24.04 with Nginx and SSL

Apache, Tutorial

This guide provides step-by-step instructions for installing and configuring the Cohere Toolkit on Ubuntu 24.04. It includes environment preparation, dependency setup, and key commands to run language models and implement Retrieval-Augmented Generation (RAG) workflows. Ideal for developers building AI applications or integrating large language models into their existing projects.

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Install Ruby on Rails on Debian 12 – Complete Guide

This guide provides step-by-step instructions for installing and configuring the Cohere Toolkit on Ubuntu 24.04. It includes environment preparation, dependency setup, and key commands to run language models and implement Retrieval-Augmented Generation (RAG) workflows. Ideal for developers building AI applications or integrating large language models into their existing projects.

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Install VeraCrypt on Ubuntu 24.04 for Secure Encryption

Security, Tutorial

This guide provides step-by-step instructions for installing and configuring the Cohere Toolkit on Ubuntu 24.04. It includes environment preparation, dependency setup, and key commands to run language models and implement Retrieval-Augmented Generation (RAG) workflows. Ideal for developers building AI applications or integrating large language models into their existing projects.