Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

Configure admission fair sharing in Red Hat build of Kueue 1.4

September 4, 2026
Maysa De Macedo Souza
Related topics:
Artificial intelligence
Related products:
Red Hat AI

    In shared AI and high-performance computing clusters, OpenShift platform engineers face constant challenges managing tightly constrained hardware resources like GPUs and high-spec CPUs. When multiple tenants submit workloads that compete for a limited resource quota, the first-in, first-out (FIFO) admission rule can cause long-term starvation of workloads submitted later and reduce service predictability. Red Hat build of Kueue supports 2 ways of enforcing fairness: fair sharing-based preemption and admission fair sharing.

    Admission fair sharing helps workloads from different tenants competing for quota from the same shared resource pool get admitted fairly by prioritizing workloads based on each tenant's historical resource use; workloads from tenants that used fewer resources over time are admitted first. Admission fair sharing doesn't evict running workloads, whereas fair sharing-based preemption does. Instead, it leads to fair sharing at admission time.

    In this guide, you will configure a shared CPU quota in Red Hat build of Kueue 1.4 and observe how Kueue uses historical usage to decide which tenant's workload gets admitted next.

    Configure Red Hat build of Kueue to enable admission fair sharing

    To enable admission fair sharing, edit the Kueue custom resource (CR) using either the Default or Custom configuration. The Default configuration enforces the default settings for the admissionFairSharing configuration, which are: 30 minutes for usageHalfLifeTimeSeconds, 5 minutes for usageSamplingIntervalSeconds, and a weight of 1 for resourceWeights for each resource. All these values are subject to change.

    Specify the following to use the default:

    oc create -f - <<EOF
    apiVersion: kueue.openshift.io/v1   
    kind: Kueue
    metadata:
      name: cluster
      namespace: openshift-kueue-operator
    spec:
      managementState: Managed
      config:
        integrations:
          frameworks:
          - BatchJob
        admissionFairSharing:
          configuration: Default
    EOF

    The Custom configuration allows you to specify user-provided settings, such as:

    oc create -f - <<EOF
    apiVersion: kueue.openshift.io/v1   
    kind: Kueue
    metadata:
      name: cluster
      namespace: openshift-kueue-operator
    spec:
      managementState: Managed
      config:
        integrations:
          frameworks:
          - BatchJob
        admissionFairSharing:
          configuration: Custom
          custom:
            usageHalfLifeTimeSeconds: 120
            usageSamplingIntervalSeconds: 60
            resourceWeights:
              - name: cpu
                weight: "2.0"
    EOF

    For more details on each setting, refer to the official documentation.

    Following that, create an empty ResourceFlavor that tells Kueue the cluster has a uniform resource pool.

    oc create -f - <<EOF
    apiVersion: kueue.x-k8s.io/v1beta2
    kind: ResourceFlavor
    metadata:
      name: default-flavor
    EOF

    Create a ClusterQueue, which manages the overall cluster quota with an admissionScope set for UsageBasedAdmissionFairSharing.

    oc create -f - <<EOF
    apiVersion: kueue.x-k8s.io/v1beta2
    kind: ClusterQueue
    metadata:
      name: afs-default-cq
    spec:
      namespaceSelector: {}
      admissionScope:
        admissionMode: UsageBasedAdmissionFairSharing
      resourceGroups:
      - coveredResources: ["cpu"]
        flavors:
        - name: default-flavor
          resources:
          - name: cpu
            nominalQuota: "1"
    EOF

    Create the namespace and LocalQueue instances, where each will contain workloads closely related to each other. Optionally, you can define the weight of the LocalQueue. If the weight is higher, the LocalQueue appears to have consumed fewer resources than it has. You can find more details in the official documentation.

    oc create namespace afs-test && oc label namespace afs-test kueue.openshift.io/managed=true;
    for lq in lq-a lq-b; do
      oc create -f - <<EOF
    apiVersion: kueue.x-k8s.io/v1beta2
    kind: LocalQueue
    metadata:
      name: $lq
      namespace: afs-test
    spec:
      clusterQueue: afs-default-cq
    EOF
    done

    Create the first 2 jobs targeting the LocalQueue lq-a, then 1 job targeting the LocalQueue lq-b.

    for queue in lq-a lq-a lq-b; do
      name="job$((++i))"
      oc create -f - <<EOF
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: $name
      namespace: afs-test
      labels:
        kueue.x-k8s.io/queue-name: $queue
    spec:
      suspend: true
      template:
        spec:
          containers:
          - name: example-job
            image: busybox
            command: ["sh", "-c", "sleep infinity"]
            resources:
              requests:
                cpu: "1"
          restartPolicy: Never
    EOF
    done

    Observe that the first submitted job is admitted and subsequent jobs remain pending because the first admitted job uses all the quota.

    When the job from lq-a is admitted, Kueue adds a temporary value—a penalty—to the lq-a usage tracking before usage statistics are updated. This prevents Kueue from admitting many workloads submitted at once from the same tenant.

    Observe that consumedResources on the LocalQueue updates with historical resource consumption.

    oc get lq lq-a -n afs-test -o jsonpath={.status.fairSharing}

    The output is similar to the following:

    {"admissionFairSharingStatus":{"consumedResources":{"cpu":"256m"},"lastUpdate":"2026-07-23T19:41:21Z"},"weightedShare":0}

    Eventually, when quota becomes available, the scheduler decides which pending workload to admit next. It computes resource use for each LocalQueue by combining consumedResources with the penalty and dividing by the LocalQueue's weight. The job from the lowest-use LocalQueue is admitted first.

    Delete the admitted job from lq-a and observe that the job from lq-b is admitted.

    oc delete job job1 -n afs-test

    On the following usageSamplingIntervalSeconds tick, consumedResources from lq-a start to decrease. The rate is controlled by usageHalfLifeTimeSeconds, and consumedResources from lq-b start to increase. Observe lq-b increase with the following command:

    oc get lq lq-b -n afs-test -o jsonpath={.status.fairSharing}

    To disable the admission fair sharing feature, remove the admissionFairSharing field specified in the Kueue CR.

    Additional considerations

    When admission fair sharing is enabled, usage-based ordering across LocalQueue instances takes precedence over priority classes. Priority classes still apply as a tiebreaker when LocalQueue instances have equal usage.

    Additionally, note that admission fair sharing takes effect only when multiple tenants share the same ClusterQueue. If each tenant uses a dedicated ClusterQueue, there's no cross-tenant contention within a single ClusterQueue, and the feature has no impact on admission order.

    Conclusion

    Admission fair sharing prevents long-term workload starvation across competing teams without needing to terminate active jobs. It reorders workloads and helps tenants get a proportional share of workload admission over time.

    Explore the Red Hat build of Kueue documentation or deploy the operator on an OpenShift staging cluster to start balancing batch workloads today.

    Related Posts

    • Implement GPU-as-a-Service with Kueue and NVIDIA MIG

    • Manage LLM evaluation workloads at scale with EvalHub and Kueue

    • Gang autoscaling on OpenShift with Kueue and ProvisionRequest

    • Red Hat build of Kueue 1.3: Enhanced batch workload management on Kubernetes

    • Tame Ray workloads on OpenShift AI with KubeRay and Kueue

    • Optimize GPU utilization with Kueue and KEDA

    Recent Posts

    • Build AI-assisted firewall workflows with Ansible Automation Platform

    • Configure admission fair sharing in Red Hat build of Kueue 1.4

    • Speeding up LLM inference with P-EAGLE in vLLM Speculators

    • Evaluating LLM guardrail configs locally with EvalHub

    • Evaluate AI agents with IBM CLEAR & EvalHub on OpenShift AI

    What’s up next?

    Learning Path intro-to-OS-LP-feature-image

    Introduction to OpenShift AI

    Learn how to use Red Hat OpenShift AI to quickly develop, train, and deploy...
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility
    Ask AI