Amazon EKS
Amazon Web Services
Managed Kubernetes on AWS. GPU nodes come from GPU instance types with either the EKS GPU-optimized AMI (drivers baked in) or the NVIDIA GPU Operator managing drivers.
Bootstrap with Amazon EKSNVIDIA GPU Operator or EKS GPU AMI + device plugin
EKS GPU-optimized AMI ships drivers; or let the GPU Operator install them on a standard AMI.
containerd (NVIDIA runtime configured by the operator or AMI).
Default scheduler with nvidia.com/gpu resource; node groups per GPU type; Karpenter for GPU-aware autoscaling.
MIG on A100/H100; time-slicing via the operator's device-plugin config.
VPC CNI; EFA for high-throughput RDMA on supported instances (add the EFA device plugin).
Managed node group / Karpenter rollouts; coordinate AMI driver version with CUDA needs.
- 1
Create a GPU managed node group
Use a GPU instance type (e.g. g5/p4d/p5) with the GPU-optimized AMI, or a standard AMI if the operator will install drivers.
- 2
Install the GPU Operator (standard AMI path)
Skip if using the GPU AMI, which already includes drivers and the device plugin.
bashhelm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo update helm install --wait gpu-operator nvidia/gpu-operator \ -n gpu-operator --create-namespace - 3
Label / taint for isolation
Taint GPU nodes so only GPU workloads land there.
bashkubectl taint nodes -l node.kubernetes.io/instance-type=g5.xlarge \ nvidia.com/gpu=present:NoSchedule
kubectl get nodes -o custom-columns=NAME:.metadata.name,GPU:.status.allocatable.'nvidia\.com/gpu'
kubectl -n gpu-operator get pods
kubectl run cuda-check --rm -it --restart=Never \
--image=nvidia/cuda:12.4.1-base-ubuntu22.04 \
--limits=nvidia.com/gpu=1 -- nvidia-smi- ·Driver version is coupled to the AMI unless the operator manages it.
- ·EFA/RDMA is instance-type specific and needs its own device plugin.
Teams standardized on AWS wanting managed control-plane with flexible GPU instance families.