<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v" -->

---
title: Smarter GPU sharing: How Red Hat build of Kueue works...
description: Red Hat build of Kueue 1.4 integrates with Kubernetes Dynamic Resource Allocation (DRA, GA in Kubernetes 1.34) to add quota enforcement, borrowing, preemption,...
canonical: https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Smarter GPU sharing: How Red Hat build of Kueue works with dynamic resource allocation | daily.dev
og:description: Red Hat build of Kueue 1.4 integrates with Kubernetes Dynamic Resource Allocation (DRA, GA in Kubernetes 1.34) to add quota enforcement, borrowing, preemption,...
og:url: https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v
og:image: https://api.daily.dev/og/posts/Pg3C1xz0V.png
og:image:alt: Smarter GPU sharing: How Red Hat build of Kueue works with dynamic resource allocation
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Smarter GPU sharing: How Red Hat build of Kueue works with dynamic resource allocation

**[Red Hat Developer](https://daily.dev/sources/rhdev)** · 7 min read · 0 upvotes · 0 comments

## Summary

Red Hat build of Kueue 1.4 integrates with Kubernetes Dynamic Resource Allocation (DRA, GA in Kubernetes 1.34) to add quota enforcement, borrowing, preemption, and fair sharing for GPU workloads that DRA alone doesn't provide. The piece covers device-level quota for whole GPUs via DeviceClass mappings, counter-based quota for partitionable GPUs (e.g., NVIDIA MIG profiles) that charges by actual memory consumed rather than device count, and upcoming features like extended resources support, consumable capacity for time-sliced/MPS sharing, and scheduler-library integration for feasibility-aware admission.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://developers.redhat.com/articles/2026/10/02/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation>

## Questions this post answers

### How does Kueue handle GPU quota when using Kubernetes dynamic resource allocation (DRA)?

Kueue reads ResourceClaimTemplates, resolves the DeviceClass referenced (such as gpu.nvidia.com) to an administrator-defined quota resource name, and charges the device count against ClusterQueue quota just like CPU or memory. This enables existing Kueue mechanisms—borrowing between queues, priority-based preemption, and admission fair sharing—to work with DRA-managed GPUs by default.

_Teams rolling out DRA-based GPU quotas can track Kueue integration details and gotchas on daily.dev._

### How does counter-based quota differ from device-count quota for partitionable GPUs in Kueue?

Counter-based quota charges workloads by actual GPU memory consumed instead of counting devices as equal units. For example, a whole 80GB GPU charges roughly 80GB while a 10GB MIG partition charges roughly 10GB, both drawn from the same memory-based quota pool, whereas device-count quota would charge both as a single 'device' regardless of size. Kueue enables this via the DRAPartitionableDevices feature gate and a Counter-type resource source in its config.

_Anyone sizing GPU quotas for mixed training and inference workloads can compare approaches via daily.dev._

### What is the extended resources approach to DRA quota management in Kueue, and how is it different from ResourceClaimTemplates?

Extended resources let teams keep using the familiar resources.requests syntax like nvidia.com/gpu: 1 instead of writing ResourceClaimTemplates, while Kueue auto-discovers DRA-backed DeviceClasses and tracks quota automatically without deviceClassMappings configuration. When both extended resources and ResourceClaimTemplates are used in the same cluster, Kueue unifies quota across both paths to prevent double-counting.

_Teams migrating from device plugins to DRA can follow this simplification path through daily.dev._

## Similar posts on daily.dev

- [GPU Job Queueing with Kueue and DRA: Scheduling AI Workloads Without Idle Capacity](https://daily.dev/posts/gpu-job-queueing-with-kueue-and-dra-scheduling-ai-workloads-without-idle-capacity-g1csd6qkw) · Cast AI · 0 upvotes · 0 comments
- [Kubernetes: Get the Most from Dynamic Resource Allocation](https://daily.dev/posts/kubernetes-get-the-most-from-dynamic-resource-allocation-hx4khv57l) · The New Stack · 2 upvotes · 0 comments
- [Implement GPU-as-a-Service with Kueue and NVIDIA MIG](https://daily.dev/posts/implement-gpu-as-a-service-with-kueue-and-nvidia-mig-wtjs3in1t) · Red Hat Developer · 0 upvotes · 0 comments

---

Tags: [#kubernetes](https://daily.dev/tags/kubernetes), [#openshift](https://daily.dev/tags/openshift)

[View this post on daily.dev](https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Smarter GPU sharing: How Red Hat build of Kueue works with dynamic resource allocation","url":"https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v"},"datePublished":"2026-10-02T13:32:26.829Z","dateModified":"2026-10-02T13:32:50.238Z","description":"Red Hat build of Kueue 1.4 integrates with Kubernetes Dynamic Resource Allocation (DRA, GA in Kubernetes 1.34) to add quota enforcement, borrowing, preemption,...","image":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","thumbnailUrl":"https://media.daily.dev/image/upload/s--HRgLpUt6--/f_auto/v1722860399/public/Placeholder%2003","isAccessibleForFree":true,"articleSection":"Red Hat Developer","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Red Hat Developer","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2a8895f3216c4900bdc455585a4ad3e4","url":"https://daily.dev/sources/rhdev"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"kubernetes,openshift","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Red Hat Developer","item":"https://daily.dev/sources/rhdev"},{"@type":"ListItem","position":3,"name":"Smarter GPU sharing: How Red Hat build of Kueue works with dynamic resource allocation"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/smarter-gpu-sharing-how-red-hat-build-of-kueue-works-with-dynamic-resource-allocation-pg3c1xz0v#faq","mainEntity":[{"@type":"Question","name":"How does Kueue handle GPU quota when using Kubernetes dynamic resource allocation (DRA)?","acceptedAnswer":{"@type":"Answer","text":"Kueue reads ResourceClaimTemplates, resolves the DeviceClass referenced (such as gpu.nvidia.com) to an administrator-defined quota resource name, and charges the device count against ClusterQueue quota just like CPU or memory. This enables existing Kueue mechanisms—borrowing between queues, priority-based preemption, and admission fair sharing—to work with DRA-managed GPUs by default. Teams rolling out DRA-based GPU quotas can track Kueue integration details and gotchas on daily.dev."}},{"@type":"Question","name":"How does counter-based quota differ from device-count quota for partitionable GPUs in Kueue?","acceptedAnswer":{"@type":"Answer","text":"Counter-based quota charges workloads by actual GPU memory consumed instead of counting devices as equal units. For example, a whole 80GB GPU charges roughly 80GB while a 10GB MIG partition charges roughly 10GB, both drawn from the same memory-based quota pool, whereas device-count quota would charge both as a single 'device' regardless of size. Kueue enables this via the DRAPartitionableDevices feature gate and a Counter-type resource source in its config. Anyone sizing GPU quotas for mixed training and inference workloads can compare approaches via daily.dev."}},{"@type":"Question","name":"What is the extended resources approach to DRA quota management in Kueue, and how is it different from ResourceClaimTemplates?","acceptedAnswer":{"@type":"Answer","text":"Extended resources let teams keep using the familiar resources.requests syntax like nvidia.com/gpu: 1 instead of writing ResourceClaimTemplates, while Kueue auto-discovers DRA-backed DeviceClasses and tracks quota automatically without deviceClassMappings configuration. When both extended resources and ResourceClaimTemplates are used in the same cluster, Kueue unifies quota across both paths to prevent double-counting. Teams migrating from device plugins to DRA can follow this simplification path through daily.dev."}}]}
```

