Works with

Coral works with Cluster Autoscaler

The Cluster Autoscaler adds nodes for pods that can’t be scheduled, and removes underused nodes whose pods fit elsewhere. To reduce cost, Coral rebalances CPU and memory requests to real use and empties spare nodes one at a time. The autoscaler removes them, and Coral never adds nodes for demand, so the two don’t fight.

Who does what

JobCluster AutoscalerCoral
Pod CPU and memory requests
Uses them to decide which nodes can go. It doesn’t change them.
Rebalances each container’s CPU and memory requests to real use.
Adding nodes
Grows a node pool or Auto Scaling group when pods can’t be scheduled.
Never adds nodes for demand.
Removing spare nodes
Removes an underused node whose pods fit elsewhere, on its own timers.
Empties spare nodes one at a time, then hands each one to the autoscaler.
Pool minimums
Keeps each pool at or above its minimum.
By default, may reduce a minimum that alone keeps an emptied node. It never raises a count.
Moving work to cheaper machines
Picks only among the node groups you set up.
Needs Karpenter or AKS node auto provisioning (NAP), not the Cluster Autoscaler alone.

How they work together

  1. When you switch on “Automatically optimize”, Coral rebalances each container’s requests to what it really uses.

  2. Before it drains a node, Coral checks on the live cluster that every pod fits on another node.

  3. Coral cordons and drains one node at a time, within your PodDisruptionBudgets.

  4. After the wait set in “Wait before removing empty nodes”, Coral hands the empty node to the Cluster Autoscaler.

  5. The autoscaler’s own timers decide when that node goes, and it adds nodes again when demand grows.

What Coral leaves to the Cluster Autoscaler

  • Adding nodes. Scale-up belongs to the autoscaler. Coral never adds capacity for demand.
  • Deleting the nodes it runs. Coral empties a node and hands it over. The autoscaler deletes it.
  • When an empty node goes. The autoscaler’s own timers decide.
  • Room for future growth. It is the autoscaler’s job. Coral keeps no idle spare nodes.

Set up

  • Your autoscaler stays. Connect sets up NAP or Karpenter only on a cluster with no autoscaler. With the Cluster Autoscaler in place, it adds neither.
  • Permission to remove nodes. If you decline it at connect, pools the Cluster Autoscaler runs are optimized as usual. Fixed-size pools wait until you run zoorikctl cluster grant-node-deletion.
  • Pool minimums. That permission lets Coral reduce a pool’s minimum when that minimum alone keeps an emptied node. Our Terraform modules can leave this out.
  • Node pools in Terraform. Tell Terraform to ignore what the agent changes, or each apply undoes it. Your own node pool code shows how.
  • A careful start. Node optimization and the Evictor, which moves pods off lightly used nodes, start at connect. Put the Evictor in “Dry run”, and switch off the node pools you don’t want touched.

Questions

Will Coral fight my Cluster Autoscaler?

No. Scale-up stays the autoscaler’s job, and Coral never adds nodes for demand. Coral empties spare nodes, and the autoscaler’s own timers decide when each one goes.

Can Coral move work to cheaper machines with only the Cluster Autoscaler?

No. That needs Karpenter or NAP, and connect sets one up only on a cluster with no autoscaler. With only the Cluster Autoscaler, Coral removes nodes but never changes their size.

Does Coral change my Cluster Autoscaler’s minimums?

By default, Coral may reduce a pool’s minimum when that minimum alone keeps a node it has emptied. It never raises a count, and disconnect puts the old minimum back. Our Terraform modules can leave out the permission to change a minimum.

What about pools the Cluster Autoscaler doesn’t run?

In a fixed-size pool that nothing else manages, Coral deletes the emptied machine itself. It needs the permission to remove nodes, which connect asks for.

What happens in a sudden surge?

The HPA adds pods, and pending pods trigger the Cluster Autoscaler to add nodes. Coral keeps no idle spare nodes, so the headroom sits inside each pod’s request.

Read more

Find your own number

One line in your cloud console. One PDF report with your estimated saving at list price.

Estimate your saving

Talk to the builders

Thirty minutes with the people who build Coral.

Book a demo (opens in a new tab)

Or write to founders@zoorik.com