Skip to content

Commit ea82b20

Browse files
authored
koord-scheduler: implement NodeNUMAResource plugin with CPUSet scheduling (#289)
This plugin extends the PreFilter/Filter/Score/Reserve/PreBind interfaces. - Support LSE/LSR Pods to configure FullPCPUs and SpreadByPCPUs policies to apply for NUMA-Aware CPUSet. - Supports configuring MostAllocated or LeastAllocated policies during scoring phase to select nodes that meet CPUBindPolicy requirements. Signed-off-by: Joseph <joseph.t.lee@outlook.com>
1 parent 8a5fee9 commit ea82b20

File tree

12 files changed

+3994
-2
lines changed

12 files changed

+3994
-2
lines changed

cmd/koord-scheduler/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/koordinator-sh/koordinator/cmd/koord-scheduler/app"
2727
"github.com/koordinator-sh/koordinator/pkg/scheduler/plugins/compatibledefaultpreemption"
2828
"github.com/koordinator-sh/koordinator/pkg/scheduler/plugins/loadaware"
29+
"github.com/koordinator-sh/koordinator/pkg/scheduler/plugins/nodenumaresource"
2930

3031
// Ensure scheme package is initialized.
3132
_ "github.com/koordinator-sh/koordinator/apis/scheduling/config/scheme"
@@ -39,6 +40,7 @@ func main() {
3940
// used by various kinds of workloads.
4041
command := app.NewSchedulerCommand(
4142
app.WithPlugin(loadaware.Name, loadaware.New),
43+
app.WithPlugin(nodenumaresource.Name, nodenumaresource.New),
4244
app.WithPlugin(compatibledefaultpreemption.Name, compatibledefaultpreemption.New),
4345
)
4446

docs/proposals/scheduling/20220530-fine-grained-cpu-orchestration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ We use [NodeResourceTopology](https://github.com/k8stopologyawareschedwg/noderes
343343

344344
##### Compatible
345345

346-
In order to be compatible with the existing NodeResourceTopology instances and prevent koordlet from conflicting with existing components, when koordlet creates a NodeResourceTopology, add the prefix `koord-` before the name to distinguish it, and add the label `app.kubernetes.io/managed-by=Koordinator` describes the node is managed by Koordinator.
346+
The koordlet creates or updates NodeResourceTopology periodically. The name of NodeResourceTopology is same as the name of Node. and add the label `app.kubernetes.io/managed-by=Koordinator` describes the node is managed by Koordinator.
347347

348348
##### Extension
349349

@@ -466,7 +466,7 @@ metadata:
466466
]
467467
labels:
468468
app.kubernetes.io/managed-by: Koordinator
469-
name: koord-node1
469+
name: node1
470470
topologyPolicies: ["SingleNUMANodePodLevel"]
471471
zones:
472472
- name: node-0

0 commit comments

Comments
 (0)