Kubernetes Cluster Autoscaler vs Karpenter

One of the most exciting things when using Kubernetes is the ability to scale up and down the number of nodes based on application consumption. So you don’t have to manually add and remove nodes on demand and let it go on usage. Obviously what you want is to keep control on the minimum and the maximum number of nodes to avoid an unexpected bill.

Pierre Mavro

Pierre Mavro

July 7, 2022 · 2 min read
Kubernetes Cluster Autoscaler vs Karpenter  - Qovery
Written byPierre Mavro

Pierre Mavro

Pierre is an SRE and CTO of Qovery. He has 15+ years of experience in R&D, from the financial to the Ad-Tech industry; he has a strong knowledge of distributed and highly-reliable systems. He's also the MariaDB High-Performance book author.

See all articles
KubernetesAWSEngineeringProduct

Cluster Autoscaler is a tool that automatically adjusts the size of the Kubernetes cluster when one of the following conditions is true:

  • there are pods that failed to run in the cluster due to insufficient resources.
  • there are nodes in the cluster that have been underutilized for an extended period of time and their pods can be placed on other existing nodes.

Depending on the cloud provider, it’s built-in or not (eg. GCP provides it by default, and AWS not).

The Kubernetes autoscaling SIG, has made excellent work since then, but having worked also with Mesos, I was waiting for an initiative to optimize pod placement and so reduce the billing cost to the maximum. This is where Karpenter entered the game, launched by AWS.

Welcome Karpenter

How Karpenter Works
How Karpenter Works

Karpenter automatically launches just the right compute resources to handle your cluster's applications. It is designed to let you take full advantage of the cloud with fast and simple compute provisioning for Kubernetes clusters.

Karpenter vs Cluster Autoscaler

Karpenter can look like a simple alternative to Cluster autoscaler, but it’s more than that. Both are really good, but before choosing one, you have to know their strengths and weaknesses. Karpenter is more useful when you start to have a significant workload, while cluster autoscaler is not the best in this case.

I’ve tried to summarize both solutions:

Cluster Autoscaler vs Karpenter
Cluster Autoscaler vs Karpenter

Conclusion

Both Cluster Autoscaler and Karpenter are interesting solutions. Cluster autoscaler is more stable, and more used, while Karpenter is the outsider. If you want to use Karpenter, you have to be sure the workload is adapted to it, otherwise, Karpenter won’t be able to do properly its job and you won’t get its benefits.

At Qovery we’re considering Karpenter as an alternative for a cost-effective solution. Nowadays, we strongly think Cluster Autoscaler may be more adapted to production usage (because of the common usage where application cache is useful), and Karpenter for pre-prod/staging/testing usage. We also hope other cloud providers will invest in Karpenter and see it becoming the new standard.

If you think Qovery should support it, as usual, please add it/vote to our public roadmap 🙂

Deploy On-demand Environments on AWS, Remarkably Fast

Deploy your Production, Staging, and Development Environments on AWS in a few seconds. Managed databases, AWS VPC Peering, Preview Environments... Qovery got you covered!

Try it out now!
Deploy On-demand Environments on AWS, Remarkably Fast