mrkeyoor.com_
Sat 07 Nov 06:55 UTC
Automationevaluationupdated 24 Oct 2026

kueue review

Kueue is a set of Kubernetes APIs and a controller for job queueing. It controls when jobs may create pods and when active pods should stop. Its README lists priorities, fair sharing, cohorts, preemption and integrations with existing job APIs.

+9stars / 7d
Verdict

Kueue is worth evaluating when shared Kubernetes workloads need explicit admission policies. Its documented capabilities fit that question, but our October 2, 2026 run at commit 5cb82c5 did not validate cluster operation: the build-labelled step exited successfully, while the test command failed and its causes remain unresolved. Start with one representative workload and verify admission, quota release and integration compatibility before expanding the deployment.

We ran it

Lab card: what happened when we ran kueueScreenshot of kueue (kueue.sigs.k8s.io)
Install✓ · 99s0 packages
Build✓ · 498s
Tests✗ · 835s16 passed · 38 failed of 54 (go test)
Repo3774 files~584,619 lines of source · 39.7 MB · 6 CI workflows · Dockerfile · tests dir

Answers from our run

Does kueue build from source?

Dependencies installed in 99 seconds (0 packages), and the build succeeded in 498 seconds. We cloned commit 5cb82c5 into a clean Debian container with 3 CPUs and no project-specific setup.

Do kueue's tests pass?

No. The project's own test command finished in 835 seconds and reported 16 passed, 38 failed (go test).

Who should not use kueue?

Clusters older than Kubernetes 1.34, which fall outside the supplied README's stated support range.

What are the alternatives to kueue?

Volcano, Apache YuniKorn Kubernetes Shim. Kueue is worth evaluating when shared Kubernetes workloads need explicit admission policies.

Setup3/5README installation and example steps provide an evaluation path; our recorded run did not validate cluster setup or an installed binary.
Docs3/5The supplied README covers features, installation and test-grid entry points. Linked documentation and release-specific compatibility were not comprehensively assessed.
Community2/5The supplied issue discussions show maintainer participation. Adoption, support response times and community breadth were not measured.
Maturity3/5The README reports v1beta2 and upstream test grids. Our October 2 run's test command failed, with unresolved causes and no measured production workload.

Who it’s for

Platform teams evaluating admission policy for shared batch or training capacity.
Operators who need priorities, fair sharing and resource policies across tenants.
Teams using supported Job, Ray, Kubeflow or JobSet integrations and willing to check compatibility for their selected releases.
Teams evaluating MultiKueue for dispatching jobs across clusters.

Who it’s NOT for

Clusters older than Kubernetes 1.34, which fall outside the supplied README's stated support range.
Teams seeking a workflow or DAG engine: workflow-framework integration remains an aspirational goal in the README.
Teams requiring a v1 API: the README identifies the API as v1beta2.
Operators who need this review to establish production reliability, workload performance or an installed CLI. Our recorded run establishes none of those outcomes.
Kubeflow users expecting one blanket compatibility rule across Trainer v2.1, v2.2.0 and v2.3.0. The supplied issue discussion describes API changes that require release-specific checks.

Setup reality

In our recorded run on October 2, 2026, at commit 5cb82c5a4159007df57ebb7649160da5c4dc5c66, the install-labelled step exited 0 after 99 seconds, the build-labelled step exited 0 after 498 seconds, and the test command exited 1 after 835 seconds. The install tail shows a Go 1.27.0 toolchain download; the build tail is vet-exit:0. These observations do not establish that a controller or CLI binary was built, installed or exercised.

The parser recorded 16 successful and 38 failed Go package results, with a reported total of 54, plus 5 packages without tests. These are parser summaries, not individual test counts or verified exhaustive unique coverage. The supplied test tail names integration and performance failures but does not establish their causes.

The README describes a server-side kubectl apply installation and requires Kubernetes 1.34 or newer. That documented installation was not exercised by this run. Queue configuration, integration compatibility and recovery behavior still need validation in a representative cluster.

Should your team evaluate Kueue?

Kueue is worth evaluating when several teams need rules for when jobs may start on shared Kubernetes capacity. The README describes a job-level manager that admits jobs and can stop them by deleting active pods. That makes admission policy the useful starting point for this review.

The README lists StrictFIFO and BestEffortFIFO queueing, resource flavors, fair sharing, cohorts and preemption. It also lists integrations with BatchJob, Kubeflow training jobs, RayJob, RayCluster, JobSet, plain pods and pod groups. These are project-documented capabilities, not workloads exercised in our sandbox.

If jobs rarely compete for capacity, first identify the admission problem you need to solve. Introducing queue policy without that requirement adds configuration your team must maintain.

What our recorded run establishes

Our stored run began on October 2, 2026, at 04:12:42.959 UTC, using commit 5cb82c5a4159007df57ebb7649160da5c4dc5c66. The recorded configuration was 3 CPUs, 8 GB of memory and the image golang:1.24-bookworm. The image name does not establish the toolchain actually used: the install tail says go: downloading go1.27.0 (linux/amd64).

The install-labelled step exited 0 in 99 seconds. Its dependency-count field was 0, which does not mean nothing downloaded or that a CLI was installed. The build-labelled step exited 0 in 498 seconds, with the tail vet-exit:0. Without the complete command and artifact checks, this is evidence of successful step execution, not proof of a built or installed controller binary.

The test command exited 1 after 835 seconds. Its parser summary recorded 16 successful and 38 failed Go package results, a reported total of 54, and 5 packages without tests. These are package-result summaries, not individual test counts. Exhaustive unique coverage was not verified, and no complete-log reconciliation was performed.

The tail names failures in integration packages, including scheduler, webhook and kueuectl packages, and in the scheduler performance checker. It also shows successful results in several performance helper packages. It does not provide enough diagnostic output to identify the failure causes. In particular, this run does not establish the empty-summary-path explanation attributed to the older run.

The checkout metrics were 3,774 files, approximately 584,619 source lines and 39.7 MB, with 6 CI workflows, a Dockerfile and a tests directory. These describe repository scope, not software quality. No cluster admission workload, installed-binary check, throughput benchmark or security audit is established by the supplied record.

Installation documentation and operating work

The supplied README states support for Kubernetes 1.34 or newer and describes installation with a server-side kubectl apply. The controller runs in kueue-system. It then gives separate configuration and sample-job steps. Our run did not execute that cluster setup or demonstrate successful admission.

Keep release contexts separate. The existing page references v0.19.2; the README pinned to our measured commit references v0.20.0, while the supplied current repository extract references v0.20.3. The October 2 run is a commit-specific observation, not a test of all three releases. The preserved v0.19.2 release source instructs operators to review each intervening minor .0 release and the relevant patch notes before upgrading.

For a first evaluation, choose one job integration and a small queue policy. Verify that a job waits when capacity is unavailable, starts when admitted and releases its reservation after completion or eviction. These are recommended checks, not results from our run. The README lists Prometheus metrics and pending-workload visibility that can help investigate admission decisions.

MultiKueue is documented as multi-cluster job dispatching. Evaluate its recovery behavior separately from a single-cluster trial. The v0.19.2 notes include a fix for delayed watch responses blocking watch establishment; that release note is evidence of a specific fix, not a reliability guarantee.

Recovery and Trainer compatibility need precise version checks

Issue 14811 reports a v0.19.0 JobSet retaining GPU quota after its pods were removed. Later discussion identifies rejected reclaimable-pod updates as blocking eviction processing. The issue was closed as completed through PR 17147 on October 14, 2026. It should therefore be read as a reported historical failure and a useful recovery scenario, rather than described as an open defect in every current release. The supplied extract does not establish which released versions contain the correction.

Issue 14819 also needs more care than a rule saying Trainer v2.2 or newer works. Its initial report describes a v2.1 CRD incompatibility, but subsequent comments discuss breaking changes in v2.3.0 and different handling for released branches and the ongoing Kueue 0.20 release. One maintainer explains that an incompatible CRD can prune intended runtime patches. Check the exact Kueue release, Trainer CRD shape and integration requirements before relying on placement changes. The supplied discussion does not establish a universal supported-version matrix.

Alternatives address a different scheduling requirement

Volcano's README describes a Kubernetes-native batch scheduling system that extends the standard kube-scheduler's capabilities. Consider it when the evaluation includes batch scheduling itself. The supplied extract does not justify claiming that it is faster or easier to operate than Kueue.

Apache YuniKorn Kubernetes Shim describes itself as a customized Kubernetes scheduler, with scheduling logic in yunikorn-core. It handles pods configured with schedulerName: yunikorn. Consider it when that scheduler role matches your requirement. We have no comparative workload measurements for either alternative.

How to read the scores

Scores are editorial assessments of the supplied evidence, not benchmark results. The rubric is 1 for major evidenced obstacles, 2 for limited substantiation, 3 for a documented evaluation path with unresolved operating questions, 4 for substantial corroborated evidence, and 5 for comprehensive validation of the assessed area. Unknown adoption, compatibility or reliability earns no assumed credit.

Setup receives 3/5 because installation and examples are documented, while our run does not validate cluster setup. Documentation receives 3/5 because the README supplies feature, installation and test-grid entry points, but the linked documentation and compatibility matrix were not comprehensively inspected. Community receives 2/5 because the supplied issues show maintainer participation, without establishing adoption or response-time measurements. Maturity receives 3/5 because the project reports a v1beta2 API and upstream test grids, while our recorded command failed and production behavior was not measured.

Use the first cluster trial to resolve those operating questions. Successful admission and reliable quota release for your selected integration are more useful next evidence than another repository-size or star-count comparison.

Alternatives

ProjectWhat it isPick it when
Volcano gh↗A Kubernetes-native batch scheduling system that extends the standard kube-scheduler's capabilities.Evaluate Volcano when your requirement includes batch scheduling itself, rather than only deciding when jobs may start. Its README describes batch and elastic workload support; we did not compare its performance with Kueue.
Apache YuniKorn Kubernetes ShimA customized Kubernetes scheduler whose scheduling logic comes from yunikorn-core.Evaluate YuniKorn when you want a scheduler that handles pods configured with schedulerName: yunikorn. The supplied extract supports that role, but does not establish a hierarchical-queue comparison.

What people are saying

  1. [github-trending] kubernetes-sigs/kueue

Sources

  1. Kueue README
  2. Kueue repository
  3. Kueue v0.19.2 release
  4. Issue 14811: quota retained after recovery eviction
  5. Issue 14819: Kubeflow Trainer API compatibility

More automation reviews

bbot · switch · Horizon · ai-goofish-monitor · agent-desktop · Microsoft-Rewards-Script · the whole board →