|
23 | 23 | <!-- /toc -->
|
24 | 24 |
|
25 | 25 | ## Summary
|
26 |
| -This proposal introduces a plugin to allow users to specify the priority of different resources and max resource |
27 |
| -consumption for workload on differnet resources. |
| 26 | +This proposal introduces a plugin that enables users to set priorities for various resources and define maximum resource consumption limits for workloads across different resources. |
28 | 27 |
|
29 | 28 | ## Motivation
|
30 |
| -The machines in a Kubernetes cluster are typically heterogeneous, with varying CPU, memory, GPU, and pricing. To |
| 29 | +A Kubernetes cluster typically consists of heterogeneous machines, with varying SKUs on CPU, memory, GPU, and pricing. To |
31 | 30 | efficiently utilize the different resources available in the cluster, users can set priorities for machines of different
|
32 | 31 | types and configure resource allocations for different workloads. Additionally, they may choose to delete pods running
|
33 | 32 | on low priority nodes instead of high priority ones.
|
34 | 33 |
|
35 | 34 | ### Use Cases
|
36 | 35 |
|
37 |
| -1. As a user of cloud services, there are some stable but expensive ECS instances and some unstable but cheaper Spot |
38 |
| -instances in my cluster. I hope that my workload can be deployed first on stable ECS instances, and during business peak |
39 |
| -periods, the Pods that are scaled out are deployed on Spot instances. At the end of the business peak, the Pods on Spot |
40 |
| -instances are prioritized to be scaled in. |
| 36 | +1. As a user of cloud services, there are some static but expensive VM instances and some dynamic but cheaper Spot |
| 37 | +instances in my cluster. I hope that my workload can be deployed first on static VM instances, and during business peak |
| 38 | +periods, the Pods that are scaled up are deployed on Spot instances. At the end of the business peak, the Pods on Spot |
| 39 | +instances are prioritized to be scaled down. |
41 | 40 |
|
42 | 41 | ### Goals
|
43 | 42 |
|
44 |
| -1. Develop a filter plugin to restrict the resource consumption on each unit for different workloads. |
45 |
| -2. Develop a score plugin to favor nodes matched by a high priority unit. |
| 43 | +1. Develop a filter plugin to restrict the resource consumption on each kind of resource for different workloads. |
| 44 | +2. Develop a score plugin to favor nodes matched by a high priority kind of resource. |
46 | 45 | 3. Automatically setting deletion costs on Pods to control the scaling in sequence of workloads through a controller.
|
47 | 46 |
|
48 | 47 | ### Non-Goals
|
49 | 48 |
|
50 |
| -1. Modify the workload controller to support deletion costs. If the workload don't support deletion costs, scaling in |
51 |
| -sequence will be random. |
52 |
| -2. When creating a ResourcePolicy, if the number of Pods has already violated the quantity constraint of the |
53 |
| -ResourcePolicy, we will not attempt to delete the excess Pods. |
54 |
| - |
| 49 | +1. Scheduler will not delete the pods. |
55 | 50 |
|
56 | 51 | ## Proposal
|
57 | 52 |
|
|
0 commit comments