Works with

Coral works with AKS node auto provisioning

AKS node auto provisioning (NAP) adds nodes from pod requests, picks each machine, and consolidates the pools it runs. To reduce cost, Coral rebalances those requests to real use, so NAP can run fewer or smaller nodes. Coral leaves NAP to consolidate its own pools and never adds nodes for demand, so the two don’t fight.

Who does what

JobNAPCoral
Pod CPU and memory requests
Reads them to choose machines. It doesn’t change them.
Rebalances each container’s CPU and memory requests to real use.
Adding nodes
Launches machines chosen to fit pending pods.
Never adds nodes for demand.
Removing spare nodes
Consolidates the pools it is set to consolidate.
Leaves those pools to NAP. 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.

How they work together

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

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

  3. To move work to cheaper machines, you choose the nodes to replace, and Coral’s plan compares the cost before and after.

  4. When a rebalance runs, Coral creates fixed-size NodePools, and NAP launches the cheaper 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 NAP

  • Adding nodes. Scale-up belongs to NAP, and in a surge it can pick bigger machines.
  • Consolidating its pools. Pools NAP already consolidates are left to it.
  • Launching machines. Coral never creates machines itself, even in a rebalance.
  • Your NodePools and node classes. Coral changes only the NodePools it creates for rebalancing.

Set up

  • A cluster with no autoscaler. Connect turns on NAP and adds Coral’s node class zoorik-base. It lists every cloud change and asks before it makes one.
  • Azure CNI. NAP needs Azure CNI networking, not kubenet. On kubenet with no autoscaler, nothing adds nodes until you set one up.
  • A cluster with the Cluster Autoscaler. Connect leaves the Cluster Autoscaler in place and doesn’t turn on NAP. It sets up only what every AKS connect sets up, listed on Coral for AKS.
  • Workload identity. For the permission to remove nodes, connect turns on workload identity and the OIDC issuer if they are off. The OIDC issuer can’t be turned off again.
  • Setting up NAP later. If you decline the cloud changes at connect, zoorikctl cluster prepare sets up NAP when you are ready.

Questions

Do I need Coral if I run NAP?

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

Is NAP the same as Karpenter?

NAP runs Karpenter for you on AKS. Coral treats both the same way: it leaves them to consolidate their own pools, and either one launches the machines a rebalance needs.

My AKS cluster runs the Cluster Autoscaler. Will connect turn on NAP?

No. Connect turns on NAP only on a cluster with no autoscaler. Coral still rebalances requests and removes nodes, but moving work to cheaper machines needs NAP or Karpenter.

What does rebalancing need on AKS?

NAP or Karpenter, Node optimization switched on, and the permission to remove nodes. Coral picks the cheaper machines, and NAP launches them.

What stays if I disconnect?

The NAP that connect set up stays, and so do Coral’s zoorik-base node class and its rebalancing NodePools. Workload identity and the OIDC issuer stay too.

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