WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Kubernetes · Basic · question 19 of 100

What is Horizontal Pod Autoscaling (HPA) in Kubernetes and how does it work?

📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

Horizontal Pod Autoscaling (HPA) is a Kubernetes feature that allows you to automatically scale the number of Pods in a Deployment or ReplicaSet based on resource utilization. With HPA, you can ensure that your application has enough resources to handle increasing traffic and load, while also reducing costs by scaling down when resources are not needed.

Here’s how HPA works in Kubernetes:

Metrics Server: To use HPA, you first need to have a metrics server installed in your Kubernetes cluster. The metrics server collects resource utilization data for Pods, such as CPU and memory usage, and makes it available to other Kubernetes components.

HPA Configuration: Next, you need to create an HPA configuration that specifies the minimum and maximum number of Pods to run, as well as the target resource utilization. This is done using a YAML or JSON file that defines the HPA object.

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: my-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-deployment
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 50

This HPA configuration specifies that the Deployment called my-deployment should have between 2 and 10 replicas, and that the target resource utilization for CPU should be 50%. This means that if the CPU utilization of the Pods in the Deployment exceeds 50%, HPA will automatically scale up the number of replicas, and if the CPU utilization drops below 50%, HPA will scale down the number of replicas.

HPA Controller: Once you have created an HPA configuration, the HPA controller will continuously monitor the resource utilization of the Pods and adjust the number of replicas based on the target utilization. The HPA controller will also automatically adjust the number of replicas when changes are made to the HPA configuration or the Deployment configuration.

Here’s an example of using kubectl to create an HPA configuration for a Deployment in Kubernetes:

kubectl autoscale deployment my-deployment --cpu-percent=50 --min=2 --max=10

This command creates an HPA configuration for the Deployment my-deployment with a target CPU utilization of 50%, a minimum of 2 replicas, and a maximum of 10 replicas.

In conclusion, Horizontal Pod Autoscaling (HPA) in Kubernetes is a feature that allows you to automatically scale the number of Pods in a Deployment or ReplicaSet based on resource utilization. With HPA, you can ensure that your application has enough resources to handle increasing traffic and load, while also reducing costs by scaling down when resources are not needed. To use HPA, you need to have a metrics server installed, create an HPA configuration that specifies the minimum and maximum number of Pods and target resource utilization, and have the HPA controller continuously monitor the resource utilization and adjust the number of replicas accordingly.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Kubernetes interview — then scores it.
📞 Practice Kubernetes — free 15 min
📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

All 100 Kubernetes questions · All topics