Goal: Stand up a local Kubernetes cluster running a vLLM-style inference deployment, wire up KEDA to autoscale it based on request queue depth (not CPU), then separately install the KAI Scheduler and demonstrate GPU sharing and gang scheduling — all using free, local tools. Steps:
kind (Kubernetes in Docker) if you don't already have it, and create a cluster: kind create cluster --name aiinfra201-w13.kube-prometheus-stack Helm chart into your cluster (free, open-source) so you have a Prometheus instance ready to scrape metrics./metrics endpoint. Configure a Prometheus ServiceMonitor (or scrape config) to collect it.vllm:num_requests_waiting) to confirm data is flowing before you wire up autoscaling.helm install keda kedacore/keda --namespace keda --create-namespace (free, open-source, no license required).ScaledObject manifest that targets your inference Deployment, uses the Prometheus scaler pointed at your queue-depth metric, and sets sensible minReplicaCount / maxReplicaCount and a target queue-depth-per-pod value.hey, k6, or a simple for loop with curl) to send a burst of requests. Watch kubectl get hpa,pods -w and record how many replicas KEDA spins up, and how long scale-in takes once the burst ends.training and inference) with different priorities.kubectl describe output or scheduler logs that pods are bin-packed and that the gang job either places all pods or none.Deliverables: Submit your KEDA ScaledObject YAML, your KAI queue/scheduling config YAML, a screenshot or terminal log showing scale-out and scale-in events, a screenshot or log showing GPU sharing/gang scheduling in action, and your written findings paragraph.