From 5c9e9c9b7aeb3b8e5d6b53d839df6583ce952b9b Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Thu, 18 Jul 2019 14:23:56 +0800 Subject: [PATCH] Added design from kube-batch. Signed-off-by: Klaus Ma --- docs/design/delay-pod-creation.md | 116 ++++++++++++++ docs/design/drf.md | 33 ++++ docs/design/execution-flow.md | 48 ++++++ .../{drf - fairshare.md => fairshare.md} | 0 docs/design/images/drfjobordering.png | Bin 0 -> 57634 bytes docs/design/images/gangwithdrf.png | Bin 0 -> 30796 bytes docs/design/metrics.md | 39 +++++ docs/design/node-priority.md | 18 +++ docs/design/plugin-conf.md | 79 ++++++++++ docs/design/podgroup-status.md | 144 ++++++++++++++++++ docs/design/preempt-action.md | 53 +++++++ docs/design/reclaim-action.md | 62 ++++++++ docs/design/reclaim-design.md | 31 ++++ docs/design/task-order.md | 23 +++ 14 files changed, 646 insertions(+) create mode 100644 docs/design/delay-pod-creation.md create mode 100644 docs/design/drf.md create mode 100644 docs/design/execution-flow.md rename docs/design/{drf - fairshare.md => fairshare.md} (100%) create mode 100644 docs/design/images/drfjobordering.png create mode 100644 docs/design/images/gangwithdrf.png create mode 100644 docs/design/metrics.md create mode 100644 docs/design/node-priority.md create mode 100644 docs/design/plugin-conf.md create mode 100644 docs/design/podgroup-status.md create mode 100644 docs/design/preempt-action.md create mode 100644 docs/design/reclaim-action.md create mode 100644 docs/design/reclaim-design.md create mode 100644 docs/design/task-order.md diff --git a/docs/design/delay-pod-creation.md b/docs/design/delay-pod-creation.md new file mode 100644 index 0000000000..89e6470bef --- /dev/null +++ b/docs/design/delay-pod-creation.md @@ -0,0 +1,116 @@ +# Delay Pod Creation + +@k82cn; Jan 7, 2019 + +## Table of Contents + + * [Delay Pod Creation](#delay-pod-creation) + * [Table of Contents](#table-of-contents) + * [Motivation](#motivation) + * [Function Detail](#function-detail) + * [State](#state) + * [Action](#action) + * [Admission Webhook](#admission-webhook) + * [Feature interaction](#feature-interaction) + * [Queue](#queue) + * [Quota](#quota) + * [Operator/Controller](#operatorcontroller) + * [Others](#others) + * [Compatibility](#compatibility) + * [Roadmap](#roadmap) + * [Reference](#reference) + +Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) + +## Motivation + +For a batch system, there're always several pending jobs because of limited resources and throughput. +Different with other kubernetes type, e.g. Deployment, DaemonSet, it's better to delay pods creation for +batch workload to reduce apiserver pressure and speed up scheduling (e.g. less pending pods to consider). +In this document, several enhancements are introduced to delay pod creation. + +## Function Detail + +### State + +A new state, named `InQueue`, will be introduced to denote the phase that jobs are ready to be allocated. +After `InQueue`, the state transform map is updated as follow. + +| From | To | Reason | +|---------------|----------------|---------| +| Pending | InQueue | When it's ready to allocate resource to job | +| InQueue | Pending | When there's not enough resources anymore | +| InQueue | Running | When every pods of `spec.minMember` are running | + +The `InQueue` is a new state between `Pending` and `Running`; and it'll let operators/controllers start to +create pods. If it meets errors, e.g. unschedulable, it rollbacks to `Pending` instead of `InQueue` to +avoid retry-loop. + +### Action + +Currently, `kube-batch` supports several actions, e.g. `allocate`, `preempt`; but all those actions are executed +based on pending pods. To support `InQueue` state, a new action, named `enqueue`, will be introduced. + +By default, `enqueue` action will handle `PodGroup`s in FCFS policy; `enqueue` will go through all PodGroup +(by creation timestamp) and update PodGroup's phase to `InQueue` if: + +* there're enough idle resources for `spec.minResources` of `PodGroup` +* there're enough quota for `spec.minResources` of `PodGroup` + +As `kube-batch` handling `PodGroup` by `spec.minResources`, the operator/controller may create more `Pod`s than +`spec.minResources`; in such case, `preempt` action will be enhanced to evict overused `PodGroup` to release +resources. + +### Admission Webhook + +To guarantee the transaction of `spec.minResources`, a new `MutatingAdmissionWebhook`, named `PodGroupMinResources`, +is introduced. `PodGroupMinResources` make sure + +* the summary of all PodGroups' `spec.minResources` in a namespace not more than `Quota` +* if resources are reserved by `spec.minResources`, the resources can not be used by others + +Generally, it's better to let total `Quota` to be more than available resources in cluster, as some pods maybe +unschedulable because of scheduler's algorithm, e.g. predicates. + +## Feature interaction + +### Queue + +The resources will be shared between `Queue`s algorithm, e.g. proportion by default. If the resources can not be +fully used because of fragment, `backfill` action will help on that. If `Queue` used more resources than its +deserved, `reclaim` action will help to balance resources. The Pod can not be evicted currently if eviction will +break `spec.minMember`; it'll be enhanced for job level eviction. + +### Quota + +To delay pod creation, both `kube-batch` and `PodGroupMinResources` will watch `ResourceQuota` to decide which +`PodGroup` should be in queue firstly. The decision maybe invalid because of race condition, e.g. other +controllers create Pods. In such case, `PodGroupMinResources` will reject `PodGroup` creation and keep `InQueue` +state until `kube-batch` transform it back to `Pending`. To avoid race condition, it's better to let `kube-batch` +manage `Pod` number and resources (e.g. CPU, memory) instead of `Quota`. + +### Operator/Controller + +The Operator/Controller should follow the above "protocol" to work together with scheduler. A new component, +named `PodGroupController`, will be introduced later to enforce this protocol if necessary. + +## Others + +### Compatibility + +To support this new feature, a new state and a new action are introduced; so when the new `enqueue` action is +disabled in the configuration, it'll keep the same behaviour as before. + +## Roadmap + +* `InQueue` phase and `enqueue` action (v0.5+) +* Admission Controller (v0.6+) + +## Reference + +* [Coscheduling](https://github.com/kubernetes/enhancements/pull/639) +* [Delay Pod creation](https://github.com/kubernetes-sigs/kube-batch/issues/539) +* [PodGroup Status](https://github.com/kubernetes-sigs/kube-batch/blob/master/doc/design/podgroup-status.md) +* [Support 'spec.TotalResources' in PodGroup](https://github.com/kubernetes-sigs/kube-batch/issues/401) +* [Dynamic Admission Control](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#write-an-admission-webhook-server) +* [Add support for podGroup number limits for one queue](https://github.com/kubernetes-sigs/kube-batch/issues/452) diff --git a/docs/design/drf.md b/docs/design/drf.md new file mode 100644 index 0000000000..010d0a61c8 --- /dev/null +++ b/docs/design/drf.md @@ -0,0 +1,33 @@ +## Dominant Resource Fairness (DRF) + +## Introduction +Dominant Resource Fairness (DRF), a generalization of max-min fairness to multiple resource types is a resource allocation policy that handles multiple resource types. + +Dominant resource - a resource of specific type (cpu, memory, gpu) which is most demanded by given job among other resources it needs. This resource is identified as a share of the total cluster resources of the same type. + +DRF computes the share of dominant resource allocated to a job (dominant share) and tries to maximize the smallest dominant share in the system. +Schedule the task of the job with smallest dominant resource + + +## Kube-Batch Implementation +DRF calculate shares for each job. The share is the highest value of ratio of the (allocated resource/Total Resource) of the three resource types CPU, Memory and GPU. +This share value is used for job ordering and task premption. + +#### 1. Job Ordering: + The job having the lowest share will have higher priority. + In the example below all the tasks task1, task2 of job1 and task3 and task4 of job2 is already allocated to the cluster. + ![drfjobordering](./images/drfjobordering.png) + + + ##### 1.1 Gang Scheduling with DRF in job ordering ( Gang -> DRF) + Gang scheduling sorts the job based on whether the job has atleast **minAvailable** task already (allocated + successfully completed + pipelined) or not. + Jobs which has not met the minAvailable criteria has higher priority than jobs which has met + the minAvailable criteria. + + For the jobs which has met the minAvailable criteria will be sorted according to DRF. + + ![gangwithdrf](./images/gangwithdrf.png) + +#### 2. Task Preemption: + +The preemptor can only preempt other tasks only if the share of the preemptor is less than the share of the preemptee after recalculating the resource allocation of the premptor and preemptee. diff --git a/docs/design/execution-flow.md b/docs/design/execution-flow.md new file mode 100644 index 0000000000..8cb4331581 --- /dev/null +++ b/docs/design/execution-flow.md @@ -0,0 +1,48 @@ +## Execution of the Scheduler for Allocating the Workloads to Node + +The Allocation of the workloads to the node in scheduler happens in each session and the workflow of the session is illustrated in the below diagram. + +1. Session Opens every 1 sec +2. In very session local copies of Queues, JobsMap, PendingTasks and Node List is created. +3. For Each Jobs in the Session + 1. If the Queued ID in the Job exists in the Local Copy of Queues then : + 1. Add the Queue in the Local Copy of Queues + 1. If the QueueID exists in local copyof JobsMap: + 1. Push the Job in the JobsMap + 2. If Not then Add the QueueID as the key in Local JobsMap and add the job in the Map. + 2. If Not then Give warning and continue to Step 3 +4. For Each Item in Local Queues + 1. Pop an Queue from the Queues + 1. Check if Queue is overused + 1. If Yes then Continue to Step 4 + 2. If Not then get the list of JobsList from the JobsMap for the particular Queue. + 1. If List is empty then continue to Step 4 + 2. If Yes then Pop a Job from the JobsList + 1. If Job exits the Local PendingTasks + 1. If Not then : + 1. Create a Local Task List + 1. Get the List of Each Tasks in the pending state for that job + 1. If the required resource for the job is Empty then go back to previous step + 2. If Not then Add the tasks in the Local TasksList + 2. Add the local Tasks List to PendingTasks for that Job + 2. If Yes then : + 1. For each Tasks from the pendingTasksList for the Job. + 1. Pop the tasks + 2. Get the list of predicate nodes for the task. + 3. Score the predicate nodes and sort it. + 4. For each node in the sorted predicated + scored nodes + 1. If the Resource required by task is less than Idle resource of Nodes + 1. If Resource required by task is less than releasing resource of Node + 1. Then Add the tasks in Pipeline + 3. Check if Job is ready to be allocated + 1. If yes the push the Job + 2. If No then add the Queue back to the list. + 3. Continue till all the Job is ready + 2. Continue till each Queue is processed. + + + + + + +![Execution flow graph](../../images/AllocateDesign.png) diff --git a/docs/design/drf - fairshare.md b/docs/design/fairshare.md similarity index 100% rename from docs/design/drf - fairshare.md rename to docs/design/fairshare.md diff --git a/docs/design/images/drfjobordering.png b/docs/design/images/drfjobordering.png new file mode 100644 index 0000000000000000000000000000000000000000..24340cb7d022ef890b02111dc170601d3c9b6150 GIT binary patch literal 57634 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 literal 0 HcmV?d00001 diff --git a/docs/design/images/gangwithdrf.png b/docs/design/images/gangwithdrf.png new file mode 100644 index 0000000000000000000000000000000000000000..9c33a51f23859d6435a470f4a9604c45eca1dffb GIT binary patch literal 30796 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%0ACpEuBX%z4B5#T9twx`VJ-u+#Fw- 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 QtP%_{(l