Free — no signup required

EKS Add-ons: Managing Operational Software

2 min read

The "Day 2" Problem

A freshly created EKS cluster is not ready to run production workloads. It needs a set of operational components — sometimes called "Day 2" software — to function correctly:

Add-on Purpose
vpc-cni Assigns VPC IPs to pods
coredns Resolves Kubernetes service names (e.g., my-service.default.svc.cluster.local)
kube-proxy Maintains iptables/ipvs rules for Service routing on each node
aws-ebs-csi-driver Allows pods to mount EBS volumes as persistent storage
aws-efs-csi-driver Allows pods to mount EFS (shared filesystem) volumes

The Old Way: Helm Charts

Before managed add-ons, teams installed these components using Helm charts. This created several problems:
- You had to track which chart version was compatible with which Kubernetes version.
- Upgrades required manual testing and coordination.
- Drift was common — different clusters in the same organization ran different versions.

Managed Add-ons: The EKS Way

EKS Managed Add-ons let you install, configure, and upgrade these components through the AWS Console, CLI, or IaC tools like Terraform. Installing one is a single call naming the cluster, the add-on, a version, and — for add-ons that need AWS permissions like the EBS CSI driver — the IRSA role to attach.

Key benefits:
- Version compatibility: AWS publishes which add-on versions work with which Kubernetes versions. You cannot accidentally install an incompatible version.
- Conflict detection: If you have a self-managed version of the same component already installed, EKS warns you before overwriting it.
- Simplified upgrades: When you upgrade your cluster's Kubernetes version, EKS can automatically upgrade add-ons to compatible versions.

Conflict resolution policy: When updating a managed add-on, you can set --resolve-conflicts OVERWRITE to let EKS overwrite any custom configuration you've applied to the add-on's Kubernetes resources. Use PRESERVE if you've made custom changes you want to keep — but be aware that this may cause the update to fail if there are incompatibilities.

This is one of 18 chapters

Get every chapter — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

See pricing