EKS Hybrid Nodes

EKS Hybrid Nodes lets machines in your own data centre or at an edge site join an EKS cluster as worker nodes. The control plane stays in AWS, fully managed; the nodes are your hardware or virtual machines, running your operating system, wherever they are.

It gives one cluster API and one set of tooling across cloud and on-premises capacity, without you running a Kubernetes control plane on-premises.

When it is the right tool

SituationWhy Hybrid Nodes
Data that must stay on-premises for residency or regulationWorkloads run where the data is
Low latency to factory, hospital, retail or telecom equipmentCompute sits next to the equipment
Existing hardware, including GPUs, that is already paid forUse it from the same cluster as cloud capacity
Gradual migration to AWSMove workloads between node types without changing clusters
Ending a self-managed on-premises KubernetesNo more control plane, etcd or upgrades to operate

It is not for sites that must keep working when the link to AWS is down for long periods. The control plane is in the region; without it, running pods continue but nothing can be scheduled, scaled or healed.

Architecture

AWS region                                            your site
┌──────────────────────────────┐   private link   ┌────────────────────────────────┐
│ EKS control plane (managed)  │◄────────────────►│ hybrid nodes (your OS, your HW) │
│ VPC with cluster ENIs        │  Direct Connect  │  kubelet, containerd, kube-proxy│
│ cloud nodes (optional)       │  or Site-to-Site │  CNI: Cilium or Calico          │
└──────────────────────────────┘       VPN        │  pods with on-premises IPs      │
                                                  └────────────────────────────────┘

Two address ranges must be declared when the cluster is created, as its remote network configuration:

  • the remote node network — where the machines live;
  • the remote pod network — the range the CNI assigns to pods on those machines.

Neither may overlap the VPC CIDR or the Kubernetes service CIDR.

Networking requirements

This is where most of the effort goes.

RequirementDetail
Private connectivityDirect Connect or Site-to-Site VPN between the site and the VPC
Routes in both directionsThe VPC must route the remote node and pod CIDRs to the gateway; the site must route the VPC CIDR back
Control plane to nodesThe API server must reach the kubelet (10250) for logs, exec and metrics
Control plane to podsRequired for admission webhooks running on hybrid nodes — so the pod CIDR must be routable, or webhooks must run on cloud nodes
FirewallsAllow the node-to-API (443) and API-to-node ports, plus the CNI’s own ports between nodes
Bandwidth and latencyA stable link; AWS guidance is at least 100 Mbps and under 200 ms round trip

Making pod addresses routable usually means advertising the pod CIDR from the nodes with BGP, which Cilium and Calico both support. The mechanics are in Linux routing and advanced EKS networking.

The Amazon VPC CNI does not run on hybrid nodes. Use Cilium or Calico; the AWS load balancer and EBS integrations likewise do not apply on-premises, so bring your own load balancing (for example Cilium’s BGP or L2 announcement, or MetalLB) and storage (a CSI driver for your storage system).

How nodes authenticate and join

A machine outside AWS has no instance profile, so it obtains temporary IAM credentials another way:

MethodHowSuits
SSM hybrid activationsRegister the machine with Systems Manager using an activation codeSimplest to start with
IAM Roles AnywhereThe machine presents an X.509 certificate from your own CAOrganisations with an existing PKI

Then:

  1. Create a Hybrid Nodes IAM role and an access entry of type HYBRID_LINUX for it.
  2. Install the node components with the nodeadm CLI: nodeadm install <version> --credential-provider ssm.
  3. Write a NodeConfig with the cluster name, region and credentials, and run nodeadm init.
  4. Install the CNI; the node becomes Ready.

Nodes are labelled eks.amazonaws.com/compute-type=hybrid, which you use to steer workloads.

What you operate

AWSYou
Control plane, its availability and upgradesHardware, virtualisation, power, physical network
EKS add-ons that support hybrid nodesOperating system and its patching (AL2023, Ubuntu, RHEL, Bottlerocket on VMware)
nodeadm and the node artifactsRunning nodeadm upgrade on each node; the CNI, ingress and storage
Cluster API, access entries, Pod IdentityCapacity planning — there is no autoscaling of physical machines

Node upgrades are manual or scripted, typically with Ansible, and follow the usual version-skew rules. Hardening is yours: node hardening.

Running mixed clusters

  • Use node selectors or affinity on eks.amazonaws.com/compute-type and a zone-style topology label per site so workloads land in the right place.
  • Keep CoreDNS replicas on both sides so that a link blip does not take down name resolution on-premises.
  • Keep admission webhooks on cloud nodes unless on-premises pod IPs are routable from the control plane.
  • Mind data transfer: chatty traffic between on-premises pods and cloud pods crosses the private link and is billed and latency-bound.
  • Spread replicas so that losing the link, or losing the site, does not remove a whole service.

Limits

LimitDetail
Disconnected operationNot designed for it; long disconnections lead to nodes marked NotReady and pods evicted elsewhere
VPC CNI, EBS, ALB integrationsNot available on hybrid nodes
AutoscalingNo Karpenter or Cluster Autoscaler for physical capacity
PricingCharged per vCPU-hour of hybrid nodes, on top of the cluster fee
Architecture and OSx86 and Arm, on a supported OS list

Alternatives

OptionControl plane locationHardwareWorks disconnectedChoose when
EKS Hybrid NodesAWS regionYoursNoReliable link; you want no on-premises control plane
EKS AnywhereOn-premises, you operateYoursYesAir-gapped or unreliable connectivity
EKS on OutpostsRegion or on the OutpostAWS-supplied racksPartially (local clusters)You want AWS hardware and APIs on-site
EKS on Local ZonesAWS regionAWS, in a metro locationNoLow latency to a city, with no hardware of your own

Across the wiki