Works with

Coral works with Karpenter

On EKS, Karpenter chooses, launches and removes the machines your pods need. To reduce cost, Coral rebalances each pod’s CPU and memory requests to real use, so Karpenter can run fewer or smaller nodes. Coral never changes your Karpenter settings and never adds nodes for demand, so the two don’t fight.

Who does what

JobKarpenterCoral
Pod CPU and memory requests
Uses them to pick machines, but doesn’t change them.
Rebalances them to real use, once you switch on “Automatically optimize”.
Adding nodes
Launches machines that fit the pods’ requests.
Never adds nodes for demand.
Removing spare nodes
Consolidates the pools it is set to consolidate.
Leaves those pools to Karpenter. In other pools, it empties spare nodes for your autoscaler to remove.
Moving work to cheaper machines
Launches the new machines.
Plans the move, creates fixed-size NodePools for it, then drains and removes the old nodes.
Keeping a marked pod or node
Honours karpenter.sh/do-not-disrupt.
Honours it on pods and nodes: a marked pod is never moved and keeps its node, and a marked node is kept.

How they work together

  1. Coral rebalances each pod’s CPU and memory requests to real use, once you switch on “Automatically optimize”.

  2. With smaller requests, Karpenter can run fewer or smaller nodes in the pools it consolidates.

  3. In other pools, Coral empties spare nodes one at a time, and your autoscaler removes them.

  4. When a rebalance moves work to cheaper machines, Coral creates fixed-size NodePools, and Karpenter launches the new machines in them.

  5. Coral then drains and removes the old nodes one by one, and the new NodePools stay after the run.

What Coral leaves to Karpenter

  • Your NodePools and node classes. Coral changes only the NodePools it creates for rebalancing.
  • Adding capacity. Scale-up stays with Karpenter. In a surge, it can pick bigger machines again.
  • Consolidation. Pools that Karpenter already consolidates are left to it.
  • When a spare node goes. Outside a rebalance, Coral hands an empty node to Karpenter, and Karpenter’s own settings decide when it goes.

Set up

  • Karpenter already runs on the cluster. Connect leaves it as it is. It sets up only what every EKS connect sets up, listed on Coral for EKS.
  • The cluster has no node autoscaler. Connect sets up Karpenter with your approval, or you run zoorikctl cluster prepare later. It lists every cloud change and asks before it makes one, and --dry-run changes nothing.
  • What it sets up. In AWS: IAM roles, an SQS queue with EventBridge rules, discovery tags, an access entry and Pod Identity. In the cluster: Karpenter, its node classes and a default NodePool.
  • What you need for that. Helm, and the AWS rights for SQS, EventBridge and cluster updates, besides the IAM rights every EKS connect needs.
  • Clusters that use only aws-auth. If connect or zoorikctl cluster prepare installs Karpenter, it switches authentication to API_AND_CONFIG_MAP, and that can’t be undone.

Questions

Do I need Coral if I already run Karpenter?

They do different jobs. Karpenter chooses and removes machines from pod requests, but doesn’t change the requests. Coral rebalances requests to real use, so the same Karpenter can run fewer or smaller nodes.

What does a rebalance need on EKS?

Karpenter, Node optimization switched on, and the permission to remove nodes, which connect asks for. With only the Cluster Autoscaler, Coral removes nodes but never changes their size.

What happens in a surge after Coral moves work to smaller machines?

Coral never adds capacity for demand. Your HPA adds pods, the pending pods trigger Karpenter, and Karpenter can pick bigger machines.

Does Coral respect karpenter.sh/do-not-disrupt?

Yes. A pod with it is never moved and its node is kept, and a node with it is kept. The safe-to-evict and do-not-disrupt annotations explained shows which tool reads which marker.

What stays if I disconnect?

Karpenter stays, if connect set it up. So do Coral’s zoorik-base node class and its rebalancing NodePools.

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