Skip to content
KEP Brain

KEP-3063keps/sig-node/3063-dynamic-resource-allocation

dynamic resource allocation

withdrawnalphasig-nodelatest v1.32
Originally, this KEP introduced DRA in Kubernetes 1.26 and the "structured parameters" KEP added an extension. Now the roles are reversed: #4381 defines the base functionality and this KEP is an optional extension. In Kubernetes 1.32, this KEP has been withdrawn and all code related to it gets removed. #4381 continues. The main objections against this KEP t… Full summary

Originally, this KEP introduced DRA in Kubernetes 1.26 and the "structured parameters" KEP added an extension. Now the roles are reversed: #4381 defines the base functionality and this KEP is an optional extension. In Kubernetes 1.32, this KEP has been withdrawn and all code related to it gets removed. #4381 continues. The main objections against this KEP that led to this decision were: - Lack of support for cluster autoscaling because a cluster autoscaler cannot reason about resource availability when adding or removing nodes. - Complex back-and-forth through the apiserver while scheduler and DRA drivers negotiate how to allocate a ResourceClaim. With #4381, DRA drivers are limited by what the structured parameter model(s) defined by Kubernetes support. New requirements for future hardware may depend on changing Kubernetes first. With this KEP, parameters and resource availability are completely opaque to Kubernetes. During scheduling of a pod, the kube-scheduler and any DRA driver controller(s) handling claims for the pod communicate back-and-forth through the apiserver by updating a PodSchedulingContext object, ultimately leading to the allocation of all pending claims and the pod being scheduled onto a node. Beware that this approach poses a problem for the Cluster Autoscaler (CA) or for any higher level controller that needs to make decisions for a group of pods (e.g. a job scheduler). It cannot simulate the effect of allocating or deallocating claims over time. Only the third-party DRA drivers have the information available to do this. Structured parameters from #4381 should be used when cluster autoscaling is needed.

Facts

Authors
@pohly
PRR approvers
@johnbelamaricalpha
Tracking issue
#3063(opens GitHub in a new tab) closedcompletedclosed 2024-11-19 16:21 UTCmilestone v1.32sig/nodesig/schedulingstage/alphawg/device-management
Milestones
alpha v1.26
Feature gates
DRAControlPlaneController, DynamicResourceAllocation
Created / last updated
2021-05-17 / none
Loading decisions and status history

Keyboard shortcuts

Everywhere

?
Show or hide this list
/
Focus the question box on Ask, otherwise the page search
Ctrl Kor⌘ K
Focus the KEP search in the top bar
t
Switch the theme (system, light, dark)
Esc
Close a dialog, a search list or a menu

Go to a page

Press g, then the letter

g h
Home
g a
Ask
g e
Explore
g u
Audit
g m
Memory
g b
About

Ask

Enter
Send the question
Shift Enter
New line in the question
Esc
Cancel the running question

Search lists

KEP search and Explore search

↓or↑
Move through the results
HomeorEnd
First or last result (Explore)
Enter
Open the highlighted result, or KEP-n when the query is a number

KEP page

o
Open the KEP on GitHub
y
Open kep.yaml on GitHub
a
Ask about this KEP
←or→
Previous or next tab, when a tab is focused

Findings table

With a finding row focused (Tab into the table or click a row)

jork
Next or previous finding
EnterorSpace
Expand or collapse the finding
o
Open the finding's KEP page
d
Draft the fix as an issue text (nothing is posted)
]or[
Next or previous page of findings

Shortcuts pause while you type in a field. Press ? or Esc to close.