Skip to content

Commit

Permalink
koord-scheduler: add a parameter to mark whether scheduling is allowe…
Browse files Browse the repository at this point in the history
…d on node with expired nodemetric

Signed-off-by: lucming <2876757716@qq.com>
  • Loading branch information
lucming committed May 31, 2024
1 parent 8e41abc commit cc6262e
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 0 deletions.
2 changes: 2 additions & 0 deletions pkg/scheduler/apis/config/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ type LoadAwareSchedulingArgs struct {
// When NodeMetrics expired, the node is considered abnormal.
// Default is 180 seconds.
NodeMetricExpirationSeconds *int64
// EnableScheduleWhenNodeMetricsExpired Indicates whether nodes with expired nodeMetrics are allowed to schedule pods.
EnableScheduleWhenNodeMetricsExpired *bool
// ResourceWeights indicates the weights of resources.
// The weights of CPU and Memory are both 1 by default.
ResourceWeights map[corev1.ResourceName]int64
Expand Down
2 changes: 2 additions & 0 deletions pkg/scheduler/apis/config/v1beta3/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ type LoadAwareSchedulingArgs struct {
// When NodeMetrics expired, the node is considered abnormal.
// Default is 180 seconds.
NodeMetricExpirationSeconds *int64 `json:"nodeMetricExpirationSeconds,omitempty"`
// EnableScheduleWhenNodeMetricsExpired Indicates whether nodes with expired nodeMetrics are allowed to schedule pods.
EnableScheduleWhenNodeMetricsExpired *bool `json:"enableScheduleWhenNodeMetricsExpired,omitempty"`
// ResourceWeights indicates the weights of resources.
// The weights of CPU and Memory are both 1 by default.
ResourceWeights map[corev1.ResourceName]int64 `json:"resourceWeights,omitempty"`
Expand Down
2 changes: 2 additions & 0 deletions pkg/scheduler/apis/config/v1beta3/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions pkg/scheduler/apis/config/v1beta3/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions pkg/scheduler/apis/config/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions pkg/scheduler/plugins/loadaware/load_aware.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import (

const (
Name = "LoadAwareScheduling"
ErrReasonNodeMetricExpired = "node(s) nodeMetric expired"
ErrReasonUsageExceedThreshold = "node(s) %s usage exceed threshold"
ErrReasonAggregatedUsageExceedThreshold = "node(s) %s aggregated usage exceed threshold"
ErrReasonFailedEstimatePod
Expand Down Expand Up @@ -143,6 +144,9 @@ func (p *Plugin) Filter(ctx context.Context, state *framework.CycleState, pod *c

if p.args.FilterExpiredNodeMetrics != nil && *p.args.FilterExpiredNodeMetrics &&
p.args.NodeMetricExpirationSeconds != nil && isNodeMetricExpired(nodeMetric, *p.args.NodeMetricExpirationSeconds) {
if p.args.EnableScheduleWhenNodeMetricsExpired != nil && !*p.args.EnableScheduleWhenNodeMetricsExpired {
return framework.NewStatus(framework.Unschedulable, ErrReasonNodeMetricExpired)
}
return nil
}

Expand Down

0 comments on commit cc6262e

Please sign in to comment.