File tree Expand file tree Collapse file tree 8 files changed +2640
-0
lines changed
sig-node/3063-dynamic-resource-allocation Expand file tree Collapse file tree 8 files changed +2640
-0
lines changed Original file line number Diff line number Diff line change
1
+ # The KEP must have an approver from the
2
+ # "prod-readiness-approvers" group
3
+ # of http://git.k8s.io/enhancements/OWNERS_ALIASES
4
+ kep-number : 3063
5
+ alpha :
6
+ approver : " @johnbelamaric"
Original file line number Diff line number Diff line change
1
+ IMAGES += components.png kubelet.png
2
+
3
+ all : $(IMAGES )
4
+ clean :
5
+ rm -f $(IMAGES )
6
+
7
+ # We use the http://plantuml.com/plantuml server to generate
8
+ # images. That way nothing needs to be installed besides Go.
9
+ DOC_PLANTUML_GO = $(shell go env GOPATH) /bin/plantuml-go
10
+
11
+ % .png : % .puml $(DOC_PLANTUML_GO )
12
+ $(DOC_PLANTUML_GO ) -format png $<
13
+
14
+ % .svg : % .puml $(DOC_PLANTUML_GO )
15
+ $(DOC_PLANTUML_GO ) -format svg $<
16
+
17
+ # Builds the binary in GOPATH/bin. Changing into / first avoids
18
+ # modifying the project's go.mod file.
19
+ $(DOC_PLANTUML_GO ) :
20
+ cd / && go get github.com/acarlson99/plantuml-go
Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change
1
+ @startuml
2
+ !theme reddress - lightblue
3
+ skinparam componentStyle rectangle
4
+
5
+ cloud "resource driver" {
6
+ component "resource driver controller" as drivercontroller
7
+ component "resource kubelet plugin" as driverplugin
8
+ }
9
+
10
+ component Kubernetes {
11
+ component apiserver {
12
+ file Pod
13
+ file ResourceClaim
14
+ file PodScheduling
15
+ }
16
+ component scheduler {
17
+ component "resource plugin" as k8sresourceplugin
18
+ }
19
+ component "controller-manager" as controllermanager {
20
+ component "resource claim controller" as k8sresourceclaimcontroller
21
+ }
22
+ component kubelet {
23
+ component "plugin manager" as pluginmanager
24
+ component "resource manager" as resourcemanager
25
+ }
26
+ }
27
+
28
+ controllermanager - [hidden ]> kubelet
29
+ drivercontroller - [hidden ]> driverplugin
30
+
31
+ Pod <. ResourceClaim : owned by\n(if created from template)
32
+ Pod <. PodScheduling : owned by
33
+
34
+
35
+ Pod - u -> k8sresourceclaimcontroller : read claim template\nfrom Pod spec
36
+ ResourceClaim <- u - k8sresourceclaimcontroller : create claim,\nclean up users
37
+ ResourceClaim <- u -> kubelet
38
+ k8sresourceplugin <- u -> PodScheduling
39
+
40
+ Pod <--> scheduler
41
+ ResourceClaim <--> k8sresourceplugin
42
+
43
+ ResourceClaim <-> drivercontroller
44
+ pluginmanager <-> driverplugin
45
+ resourcemanager <-> driverplugin
46
+ PodScheduling <-> drivercontroller
47
+ @enduml
Original file line number Diff line number Diff line change
1
+ title : dynamic resource allocation
2
+ kep-number : 3063
3
+ authors :
4
+ - " @pohly"
5
+ owning-sig : sig-node
6
+ participating-sigs :
7
+ - sig-scheduling
8
+ - sig-autoscaling
9
+ status : implementable
10
+ creation-date : 2021-05-17
11
+ reviewers :
12
+ - " @ahg-g"
13
+ - " @alculquicondor"
14
+ - " @klueska"
15
+ approvers :
16
+ - " @sig-node-leads"
17
+
18
+ see-also :
19
+ replaces :
20
+
21
+ # The target maturity stage in the current dev cycle for this KEP.
22
+ stage : alpha
23
+
24
+ # The most recent milestone for which work toward delivery of this KEP has been
25
+ # done. This can be the current (upcoming) milestone, if it is being actively
26
+ # worked on.
27
+ latest-milestone : " v1.25"
28
+
29
+ # The milestone at which this feature was, or is targeted to be, at each stage.
30
+ milestone :
31
+ alpha : " v1.25"
32
+ beta : " v1.28"
33
+ stable : " v1.30"
34
+
35
+ feature-gates :
36
+ - name : DynamicResourceAllocation
37
+ components :
38
+ - kube-apiserver
39
+ - kube-controller-manager
40
+ - kube-scheduler
41
+ - kubelet
42
+ disable-supported : true
43
+
44
+ metrics :
45
+ - resource_controller_create_total
46
+ - resource_controller_create_failures_total
47
+ - resource controller workqueue with name="resource_claim"
Original file line number Diff line number Diff line change
1
+ @startuml
2
+ !theme reddress - lightblue
3
+
4
+ (*) --> "Pod scheduled to the node "
5
+ --> [ **Kubelet ** pick up the pod ] "Pod references resource claim "
6
+ --> [ **Kubelet ** calls NodePrepareResource (ResourceClaimUID , AllocationParameters )\l **Resource Plugin ** creates CDI JSON file (s ) ] "CDI JSON files created "
7
+ --> [ **Resource Plugin ** returns device Ids ] "Resource prepared "
8
+ --> [ **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 "
9
+ --> [ ... ] "Pod runs "
10
+ --> [ ... ] "Pod terminated "
11
+ --> [ **Kubelet ** calls NodeUnprepareResource \l **Resource plugin ** removes CDI JSON file (s ) ] (*)
12
+ @enduml
You can’t perform that action at this time.
0 commit comments