Coral for EKS

EKS cost optimization

Stop paying for idle EC2 instances in your EKS clusters. Coral rebalances your workloads so spare nodes can go, with no code changes.

Runs on
  • EKS

What Coral does on EKS

Coral rebalances Amazon Elastic Kubernetes Service (EKS) clusters. It sizes pod requests to real use, so fewer EC2 instances can carry the same work. It also empties spare instances one at a time.

On EKS, Karpenter or the Cluster Autoscaler still adds instances when demand grows. Coral never creates machines itself. With Karpenter, a rebalance can also move work onto cheaper EC2 instances that Karpenter launches.

Nothing changes pod sizes until you switch on “Automatically optimize”. Node optimization starts at connect, and you pick the node pools it works on.

How it works on EKS

Connect a cluster

Sign in with the AWS CLI and run zoorikctl, our command-line tool. It installs the agent, binds its IAM role with EKS Pod Identity, and asks before every AWS change.

See the waste

Coral lists each EKS node and workload. You see how much capacity you hold beyond what your pods really use.

Optimize

Coral empties spare EC2 nodes one at a time, even before pod sizing is switched on. Karpenter or the Cluster Autoscaler then terminates them.

What connect sets up on EKS

WhatWhat it is for
The Coral agent, its webhook and a node daemon
They run inside your cluster. They read usage, size new pods as they start and make the changes your settings allow.
An IAM role, bound with EKS Pod Identity
It lets Coral terminate instances only in this cluster’s Auto Scaling groups. If a group’s minimum size is all that keeps an emptied instance, Coral may reduce that minimum.
The EKS Pod Identity Agent add-on, if it is missing
It gives the agent temporary credentials for that role, with no stored key.
Karpenter, only if the cluster has no autoscaler
It launches EC2 instances when pods are waiting, and terminates spare ones itself. Connect also creates what Karpenter needs in AWS, such as its IAM roles, an SQS queue and discovery tags.
  • If connect installs Karpenter on a cluster that uses only aws-auth, it switches authentication to API_AND_CONFIG_MAP. That can’t be undone.
  • With --dry-run, zoorikctl prints every AWS command and every object it would add to the cluster, and changes nothing.
  • If you decline the cloud changes, the agent still installs, and pools an autoscaler runs are optimized as usual.

Install your way

Open source

Questions about Coral on EKS

Does Coral replace Karpenter or the Cluster Autoscaler?

No. Karpenter picks EC2 instances from pod requests, and the Cluster Autoscaler scales your Auto Scaling groups. Once Coral sizes those requests to real use, both can run fewer instances, and Karpenter can pick smaller ones.

What if my EKS cluster has no autoscaler?

Connect offers to install Karpenter and, once you say yes, creates what it needs in AWS. If you allow node removal, Coral terminates the instances it empties in Auto Scaling groups that nothing else scales. Until an autoscaler runs, no instances are added when demand grows.

Can Coral move my pods to cheaper EC2 instances?

Yes, with Karpenter. Coral creates fixed-size NodePools of cheaper instances that still fit your pods, and Karpenter launches them in place of the nodes you choose. With only the Cluster Autoscaler, Coral removes nodes and keeps each group’s instance types.

What do I need on AWS to connect a cluster?

The AWS CLI (aws), signed in, plus cluster-admin. Your AWS identity must be allowed to create IAM roles and EKS Pod Identity associations. If connect installs Karpenter, you also need Helm, and permission for SQS, EventBridge and cluster updates.

Can I use IRSA instead of EKS Pod Identity?

Yes. Connect sets up EKS Pod Identity, and our Terraform module for AWS can set the role up for IRSA instead.

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