Skip to content

Commit 43c68bf

Browse files
committed
Updated the document as per review comments. Added config details.
1 parent 8339c88 commit 43c68bf

File tree

7 files changed

+22
-24
lines changed

7 files changed

+22
-24
lines changed

content/en/docs/concepts/configuration/poseidon-firmament-alternate-scheduler.md renamed to content/en/docs/concepts/extend-kubernetes/poseidon-firmament-alternate-scheduler.md

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ weight: 80
55
---
66

77
{{% capture overview %}}
8+
9+
{{< feature-state for_k8s_version="v1.13" state="alpha" >}}
810

9-
Poseidon is the [Firmament scheduler](https://github.com/Huawei-PaaS/firmament) integration for Kubernetes. At a very high level, Poseidon/Firmament scheduler augments the current Kubernetes scheduling capabilities by incorporating a new novel flow network graph based scheduling capabilities alongside the default Kubernetes Scheduler. It models the scheduling problem as a constraint-based optimization over a flow network graph – by reducing scheduling to a min-cost max-flow optimization problem.
11+
Poseidon is the [Firmament scheduler](https://github.com/Huawei-PaaS/firmament) integration for Kubernetes. Poseidon/Firmament scheduler augments the current Kubernetes scheduling capabilities. It incorporates new novel flow network graph based scheduling capabilities alongside the default Kubernetes Scheduler.
1012

1113
{{% /capture %}}
1214

@@ -15,11 +17,11 @@ Poseidon is the [Firmament scheduler](https://github.com/Huawei-PaaS/firmament)
1517

1618
## Introduction
1719

18-
Poseidon is the [Firmament scheduler](https://github.com/Huawei-PaaS/firmament) integration for Kubernetes. At a very high level, Poseidon/Firmament scheduler augments the current Kubernetes scheduling capabilities by incorporating a new novel flow network graph based scheduling capabilities alongside the default Kubernetes Scheduler. It models the scheduling problem as a constraint-based optimization over a flow network graph – by reducing scheduling to a min-cost max-flow optimization problem.
20+
Poseidon is the [Firmament scheduler](https://github.com/Huawei-PaaS/firmament) integration for Kubernetes. Poseidon/Firmament scheduler augments the current Kubernetes scheduling capabilities. It incorporates new novel flow network graph based scheduling capabilities alongside the default Kubernetes Scheduler.
1921

20-
Due to the inherent rescheduling capabilities, the new scheduler enables a globally optimal scheduling environment that constantly keeps refining the workloads placements dynamically.
22+
It models the scheduling problem as a constraint-based optimization over a flow network graph. This is achieved by reducing scheduling to a min-cost max-flow optimization problem. Due to the inherent rescheduling capabilities, the Poseidon/Firmament scheduler constantly keeps refining the workloads placements dynamically.
2123

22-
Poseidon/Firmament scheduler runs alongside the default Kubernetes Scheduler as an alternate scheduler – multiple schedulers running simultaneously. As part of the Kubernetes multiple schedulers support, each new pod is typically scheduled by the default scheduler, but Kubernetes can be instructed to use another scheduler by specifying the name of another custom scheduler (“Poseidon” in our case) in the PodSpec at the time of pod creation. In this case, the default scheduler will ignore that Pod and allow Poseidon scheduler to schedule the Pod on a relevant node.
24+
Poseidon/Firmament scheduler runs alongside the default Kubernetes Scheduler as an alternate scheduler – multiple schedulers running simultaneously.
2325

2426
## Key Advantages
2527

@@ -34,7 +36,16 @@ Poseidon/Firmament scheduler runs alongside the default Kubernetes Scheduler as
3436

3537
## Poseidon-Firmament Scheduler - How it works
3638

37-
As part of the Kubernetes multiple schedulers support, each new pod is typically scheduled by the default scheduler, but Kubernetes can be instructed to use another scheduler by specifying the name of another custom scheduler (“Poseidon” in our case) in the PodSpec at the time of pod creation. In this case, the default scheduler will ignore that Pod and allow Poseidon scheduler to schedule the Pod on a relevant node.
39+
As part of the Kubernetes multiple schedulers support, each new pod is typically scheduled by the default scheduler. Kubernetes can be instructed to use another scheduler by specifying the name of another custom scheduler (“poseidon” in our case) in the PodSpec (**schedulerName** field of the PodSpec) at the time of pod creation. In this case, the default scheduler will ignore that Pod and allow Poseidon scheduler to schedule the Pod on a relevant node.
40+
41+
```yaml
42+
apiVersion: v1
43+
kind: Pod
44+
45+
...
46+
spec:
47+
schedulerName: poseidon
48+
```
3849

3950

4051
{{< note >}}
@@ -75,7 +86,7 @@ Although, Poseidon/Firmament scheduler is capable of scheduling various types of
7586
|High Availability|Y|N**|Planned.|
7687
|Real-time metrics based scheduling|N|Y**|Initially supported using Heapster (now deprecated) for placing pods using actual cluster utilization statistics rather than reservations. Plans to switch over to "metric server".|
7788
|Support for Max-Pod per node|Y|Y|Poseidon/Firmament scheduler seamlessly co-exists with K8S default scheduler.|
78-
|Support for Ephemeral Storage, in addition to CPU/Memory|Y|Y|This feature was working earlier. However, for some reason since K8S release 1.10 onwards it does not seem to work as expected. We are looking at resolving the issue soon.|
89+
|Support for Ephemeral Storage, in addition to CPU/Memory|Y|Y||
7990

8091

8192
## Installation
@@ -87,25 +98,12 @@ In-cluster installation of Poseidon, please start [here](https://github.com/kube
8798

8899
For developers please refer [here](https://github.com/kubernetes-sigs/poseidon/blob/master/docs/devel/README.md).
89100

90-
## Latest Performance Testing Results
91-
92-
### Scheduling time of Pods with CPU/Mem requirements only (without bind time)
93-
94-
![Scheduling time of Pods with CPU/Mem requirements only (without bind time)](/images/docs/perf-test-result-1.png)
101+
## Latest Throughput Performance Testing Results
95102

96-
### Scheduling time of Pods with CPU/Mem requirements only (including bind time)
97-
![Scheduling time of Pods with CPU/Mem requirements only (including bind time)](/images/docs/perf-test-result-2.png)
103+
As mentioned earlier, workloads (pods) are bulk scheduled for enabling scheduling decisions at massive scale. Based on the extensive performance test results, Poseidon/Firmament scales much better than Kubernetes default scheduler as the number of nodes increase in a cluster. This is due to the fact that Poseidon/Firmament is able to amortize more and more work across workloads.
98104

99-
### Total time for 10k Pods and Throughput Pods/sec using Scheduler Perf.
100-
![Total time for 10k Pods and Throughput Pods/sec using Scheduler Perf.](/images/docs/perf-test-result-3.png)
101-
102-
### Scheduling time of Pods with Affinity requirements
103-
![Scheduling time of Pods with Affinity requirements](/images/docs/perf-test-result-4.png)
104-
105-
### Scheduling time of Pods with Affinity requirements
106-
![Scheduling time of Pods with Affinity requirements](/images/docs/perf-test-result-5.png)
107-
108-
### Scheduling time of Symmetry Pods
109-
![Scheduling time of Symmetry Pods](/images/docs/perf-test-result-6.png)
105+
{{< note >}}
106+
Please refer to [this link](https://github.com/kubernetes-sigs/poseidon/blob/master/docs/benchmark/README.md) for detailed throughput performance comparison test results between Poseidon/Firmament scheduler and Kubernetes default scheduler.
107+
{{< /note >}}
110108

111109
{{% /capture %}}
-94.8 KB
Binary file not shown.
-93.6 KB
Binary file not shown.
-96.6 KB
Binary file not shown.
-52 KB
Binary file not shown.
-54 KB
Binary file not shown.
-55.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)