-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3064 from pohly/dynamic-resource-allocation-upstream
KEP-3063: dynamic resource allocation
- Loading branch information
Showing
8 changed files
with
2,640 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# The KEP must have an approver from the | ||
# "prod-readiness-approvers" group | ||
# of http://git.k8s.io/enhancements/OWNERS_ALIASES | ||
kep-number: 3063 | ||
alpha: | ||
approver: "@johnbelamaric" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
IMAGES += components.png kubelet.png | ||
|
||
all: $(IMAGES) | ||
clean: | ||
rm -f $(IMAGES) | ||
|
||
# We use the http://plantuml.com/plantuml server to generate | ||
# images. That way nothing needs to be installed besides Go. | ||
DOC_PLANTUML_GO = $(shell go env GOPATH)/bin/plantuml-go | ||
|
||
%.png: %.puml $(DOC_PLANTUML_GO) | ||
$(DOC_PLANTUML_GO) -format png $< | ||
|
||
%.svg: %.puml $(DOC_PLANTUML_GO) | ||
$(DOC_PLANTUML_GO) -format svg $< | ||
|
||
# Builds the binary in GOPATH/bin. Changing into / first avoids | ||
# modifying the project's go.mod file. | ||
$(DOC_PLANTUML_GO): | ||
cd / && go get github.com/acarlson99/plantuml-go |
2,508 changes: 2,508 additions & 0 deletions
2,508
keps/sig-node/3063-dynamic-resource-allocation/README.md
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 47 additions & 0 deletions
47
keps/sig-node/3063-dynamic-resource-allocation/components.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
@startuml | ||
!theme reddress-lightblue | ||
skinparam componentStyle rectangle | ||
|
||
cloud "resource driver" { | ||
component "resource driver controller" as drivercontroller | ||
component "resource kubelet plugin" as driverplugin | ||
} | ||
|
||
component Kubernetes { | ||
component apiserver { | ||
file Pod | ||
file ResourceClaim | ||
file PodScheduling | ||
} | ||
component scheduler { | ||
component "resource plugin" as k8sresourceplugin | ||
} | ||
component "controller-manager" as controllermanager { | ||
component "resource claim controller" as k8sresourceclaimcontroller | ||
} | ||
component kubelet { | ||
component "plugin manager" as pluginmanager | ||
component "resource manager" as resourcemanager | ||
} | ||
} | ||
|
||
controllermanager -[hidden]> kubelet | ||
drivercontroller -[hidden]> driverplugin | ||
|
||
Pod <. ResourceClaim: owned by\n(if created from template) | ||
Pod <. PodScheduling: owned by | ||
|
||
|
||
Pod -u-> k8sresourceclaimcontroller: read claim template\nfrom Pod spec | ||
ResourceClaim <-u- k8sresourceclaimcontroller: create claim,\nclean up users | ||
ResourceClaim <-u-> kubelet | ||
k8sresourceplugin <-u-> PodScheduling | ||
|
||
Pod <--> scheduler | ||
ResourceClaim <--> k8sresourceplugin | ||
|
||
ResourceClaim <-> drivercontroller | ||
pluginmanager <-> driverplugin | ||
resourcemanager <-> driverplugin | ||
PodScheduling <-> drivercontroller | ||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
title: dynamic resource allocation | ||
kep-number: 3063 | ||
authors: | ||
- "@pohly" | ||
owning-sig: sig-node | ||
participating-sigs: | ||
- sig-scheduling | ||
- sig-autoscaling | ||
status: implementable | ||
creation-date: 2021-05-17 | ||
reviewers: | ||
- "@ahg-g" | ||
- "@alculquicondor" | ||
- "@klueska" | ||
approvers: | ||
- "@sig-node-leads" | ||
|
||
see-also: | ||
replaces: | ||
|
||
# The target maturity stage in the current dev cycle for this KEP. | ||
stage: alpha | ||
|
||
# The most recent milestone for which work toward delivery of this KEP has been | ||
# done. This can be the current (upcoming) milestone, if it is being actively | ||
# worked on. | ||
latest-milestone: "v1.25" | ||
|
||
# The milestone at which this feature was, or is targeted to be, at each stage. | ||
milestone: | ||
alpha: "v1.25" | ||
beta: "v1.28" | ||
stable: "v1.30" | ||
|
||
feature-gates: | ||
- name: DynamicResourceAllocation | ||
components: | ||
- kube-apiserver | ||
- kube-controller-manager | ||
- kube-scheduler | ||
- kubelet | ||
disable-supported: true | ||
|
||
metrics: | ||
- resource_controller_create_total | ||
- resource_controller_create_failures_total | ||
- resource controller workqueue with name="resource_claim" |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions
12
keps/sig-node/3063-dynamic-resource-allocation/kubelet.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
@startuml | ||
!theme reddress-lightblue | ||
|
||
(*) --> "Pod scheduled to the node" | ||
-->[ **Kubelet** pick up the pod ] "Pod references resource claim" | ||
-->[ **Kubelet** calls NodePrepareResource(ResourceClaimUID, AllocationParameters)\l **Resource Plugin** creates CDI JSON file(s) ] "CDI JSON files created" | ||
-->[ **Resource Plugin** returns device Ids ] "Resource prepared" | ||
-->[ **Kubelet** passes device Ids to the CRI runtime\l **CRI runtime** uses CDI JSON file(s) to update OCI container config\l **CRI runtime** creates pod containers ] "All Pod containers created" | ||
-->[ ... ] "Pod runs" | ||
-->[ ... ] "Pod terminated" | ||
-->[ **Kubelet** calls NodeUnprepareResource\l **Resource plugin** removes CDI JSON file(s) ] (*) | ||
@enduml |