Module 08: Orchestration
Kubernetes GPU Infrastructure & Autoscaling
Interactive technical curriculum synthesized from FAANG and Tier-1 AI startup interview rounds.
Kubernetes GPU Infrastructure, Volcano & Fast Cold Starts
Comprehensive coverage of QA-07, QA-13, QA-21, and QA-40. Master queue-depth autoscaling with KEDA, Volcano gang scheduling, JuiceFS distributed NVMe caching, and eBPF kube-proxy replacements.
Interactive 70B Cold Start Optimization Pipeline
Click each stage to see how a naive 8-minute pod launch is collapsed to under 45 seconds:
1
Naive Baseline (8m 10s)
140GB image pull from ECR/DockerHub
140GB image pull from ECR/DockerHub
2
Image Decoupling (2m 15s)
Base runtime image (<1.5GB)
Base runtime image (<1.5GB)
3
Distributed POSIX Cache (55s)
JuiceFS / Fluid on local NVMe
JuiceFS / Fluid on local NVMe
4
GPUDirect Storage (14s)
Direct NVMe → GPU HBM bypass
Direct NVMe → GPU HBM bypass
Stage 1: Naive Monolithic Image (8 min 10 sec)
The Bottleneck: Teams bake 140GB of safetensors weights directly into the Docker image. Pulling a 140GB image across network interfaces and unpacking container layers takes 7 to 10 minutes on new nodes, completely missing burst traffic.
QA-07 • KEDA Autoscaling
Why HPA CPU/GPU Utilization Fails for LLMs
The Trap: Setting HPA to scale on 80% GPU memory causes instant scale-out to max replicas because vLLM pre-allocates 90% of VRAM for PagedAttention at boot time.
The Solution: Use KEDA targeting
vllm:num_requests_waiting:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: vllm-queue-autoscaler
spec:
scaleTargetRef:
name: vllm-llama3-deployment
minReplicaCount: 2
maxReplicaCount: 16
triggers:
- type: prometheus
metadata:
serverAddress: http://prometheus.monitoring:9090
metricName: vllm_num_requests_waiting
query: sum(vllm:num_requests_waiting{model="llama3-70b"})
threshold: '4'