Skip to content
All projects

AI Infrastructure on Amazon EKS

Production-style AI infrastructure on Amazon EKS for provisioning, sharing and observing NVIDIA GPUs — Karpenter, GPU Operator, CUDA workloads and DCGM observability.

Source code
  • GPU Operator
  • Karpenter
  • CUDA
  • Time Slicing
  • Observability

The problem

GPU capacity is expensive, scarce and easy to strand: nodes sit idle between jobs, a single workload can hold a whole accelerator, and standard Kubernetes gives you almost no visibility into what the GPU is actually doing.

Constraints

Architecture

Observability

Grafana
Prometheus
DCGM Exporter

Driver & device lifecycle

GPU Operator
Device Plugin
Node Feature Discovery
Container Toolkit
Time Slicing

Capacity

GPU Node — provisioned by Karpenter
GPU Workloads (CUDA)

Interactive Hardware Simulator

GPU Allocation & VRAM Sharing

NVIDIA T4 (g4dn.xlarge Spot)
16 GB VRAM
Slice 1PyTorch Pod A
Slice 2Inference Pod B
Slice 3Jupyter Pod C
Slice 4Worker Pod D

Telemetry & Isolation Profile

Advertised Slices:4 x nvidia.com/gpu
Hourly Cost (Spot):~$0.15–$0.25 / hr (1 card, 4 pods)
Telemetry Scrape:DCGM Exporter on port 9400

g4dn.xlarge Spot pricing per the project README; dedicated mode is that range × 4 cards.

Key decisions

What was chosen, what it was chosen over, and why.

Production resilience & failure modes

Failure mode this architecture has to account for

Time slicing shares compute, not memory — there is no per-pod VRAM limit, so one pod over-allocating pushes its neighbours on the same card into a CUDA OOM they did nothing to cause.

How it's handled

This isn't prevented, it's made visible and bounded by choice of tenant: DCGM exporter scraped per-pod (not through the Service VIP, which would silently sample one random GPU node) surfaces memory pressure before it saturates, so time slicing is scoped to workloads that can tolerate a noisy neighbour. Where hard isolation is a requirement rather than a nice-to-have, the answer is MIG, not a mitigation bolted onto time slicing.

Source: docs/labs/04-time-slicing.md

Deep dive writing