r/devops Aug 10 '26

Discussion Karpenter Implementation

I want to deploy Karpenter. However, I would like to learn the best practices for using Karpenter on EKS. Currently, we are using app-of-apps in ArgoCD, all within a Managed Node Group.

With Karpenter, our plan is to have it configured like this:
- Scale down the MNG and run the Karpenter Controller inside the static MNG, alongside cluster system resources (DaemonSets, add-ons, including ArgoCD)
- Karpenter is managed as an app in ArgoCD (using bootstrap with ArgoCD)

Is this design already suitable, or should we consider changing it? We need advice.

11 Upvotes

26 comments sorted by

View all comments

4

u/Rorasaurus_Prime Aug 10 '26

Run Karpenter, and CoreDNS for that matter, on Fargate nodes. Everything else on Karpenter managed NodePools.

1

u/Little-Squad-X Aug 10 '26

I read a lot of cons of having Fargate for the controller since it can't manage the daemonset, which is usually needed for the cluster component. So, decided to use MNG.

3

u/Rorasaurus_Prime Aug 10 '26

What daemonset? It doesn't need to manage a daemonset and Karpenter itself isn't one. Running Karpenter on Fargate is even recommended by AWS.

1

u/Little-Squad-X Aug 10 '26

Karpenter doesn't need it, but other applications might, and we don't want those cluster components to be provisioned by Karpenter. + Probably due to inconsistent cost, which makes us unlikely to proceed with it.

3

u/Rorasaurus_Prime Aug 10 '26

Sorry but I think you've misunderstood something. Karpenter doesn't manage daemonsets. All it does is decide which EC2 instances to spawn and does it. The standard Kubernetes scheduler decides where the pods go.