Moving our GitLab CI runners onto Kubernetes fixed the wasted capacity and queue bottlenecks, but the real wins came afterwards. Distributed caching in S3 and ECR, HPA-driven autoscaling, dedicated NVMe node pools, and reserved idle capacity took average job queue time from 16 seconds to 2 and cut cost per job by 40%.