Un ClusterQueue es un Custom Resource Definition (CRD) en Kubernetes que encapsula la capacidad de recursos disponible y las políticas de admisión para un conjunto de nodos o para todo el clúster. No representa una cola de trabajo en el sentido tradicional, sino una "cola de capacidad" o "cola de recursos". Define cuántos recursos (CPU, memoria, GPUs, etc.) pueden ser consumidos por los Workloads que se le asocian, y bajo qué condiciones. Permite a los schedulers externos, como Kueue, tomar decisiones sobre cuándo un Workload puede ser admitido en el clúster, basándose en la capacidad actual del ClusterQueue y las solicitudes de recursos del Workload, en lugar de esperar a que el scheduler predeterminado de Kubernetes encuentre un nodo específico.

La implementación más prominente de ClusterQueue se encuentra en Kueue, un sistema de colas de admisión para Kubernetes desarrollado por Google. Kueue utiliza ClusterQueues para gestionar la admisión de Workloads (como Jobs, RayJobs, MPIJobs, etc.) en clústeres que ejecutan cargas de trabajo de Machine Learning, High-Performance Computing (HPC) o cualquier otra que requiera una gestión sofisticada de recursos. Un ClusterQueue puede estar vinculado a un ResourceFlavor, que describe un tipo específico de recurso (ej. 'gpu-a100'), y puede tener límites de consumo de recursos y políticas de 'fair sharing' o 'preemption' configuradas. Esto permite a los operadores definir cómo se comparte la capacidad del clúster entre diferentes equipos o proyectos.

Para un Arquitecto de Sistemas, el ClusterQueue es fundamental para diseñar sistemas de orquestación de cargas de trabajo eficientes y justos en Kubernetes, especialmente en entornos multi-tenant o con recursos escasos. Permite implementar políticas de calidad de servicio (QoS) y 'fairness' a nivel de clúster, asegurando que ningún equipo o proyecto monopolice los recursos. Los trade-offs incluyen la complejidad adicional de configurar y gestionar estos CRDs, pero el beneficio es una utilización de recursos optimizada, una mayor predictibilidad en la ejecución de Workloads y la capacidad de priorizar cargas de trabajo críticas. Facilita la construcción de plataformas de ML/HPC donde la asignación de recursos es un cuello de botella clave, permitiendo a los equipos de plataforma definir y hacer cumplir políticas de uso de recursos sin modificar el scheduler de Kubernetes directamente.