You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: support Kubernetes Coscheduling Plugin for PodGroup gang scheduling
- Retry LockNode with backoff on lock contention to allow concurrent
PodGroup bind operations to serialize gracefully
- Evict pending pods with stale annotations in onAddPod to prevent
phantom GPU occupancy when Coscheduling denies a PodGroup
- Call podManager.DelPod in Bind failure path to prevent ghost cache
entries on failed binds
- Add --node-lock-retry-timeout flag (default: 30s)
Signed-off-by: lin121291 <4jp33f9e@gmail.com>
Copy file name to clipboardExpand all lines: cmd/scheduler/main.go
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -80,6 +80,7 @@ func init() {
80
80
rootCmd.Flags().IntVar(&config.Timeout, "kube-timeout", client.DefaultTimeout, "Timeout to use while talking with kube-apiserver.")
81
81
rootCmd.Flags().BoolVar(&enableProfiling, "profiling", false, "Enable pprof profiling via HTTP server")
82
82
rootCmd.Flags().DurationVar(&config.NodeLockTimeout, "node-lock-timeout", time.Minute*5, "timeout for node locks")
83
+
rootCmd.Flags().DurationVar(&config.NodeLockRetryTimeout, "node-lock-retry-timeout", time.Second*30, "timeout for retrying node lock acquisition when locked by valid pod")
83
84
rootCmd.Flags().BoolVar(&config.ForceOverwriteDefaultScheduler, "force-overwrite-default-scheduler", true, "Overwrite schedulerName in Pod Spec when set to the const DefaultSchedulerName in https://k8s.io/api/core/v1 package")
84
85
85
86
rootCmd.Flags().BoolVar(&config.LeaderElect, "leader-elect", false, "The pod of hami-scheduler enable leader select")
Copy file name to clipboardExpand all lines: pkg/scheduler/config/config.go
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -63,6 +63,9 @@ var (
63
63
// NodeLockTimeout is the timeout for node locks.
64
64
NodeLockTimeout time.Duration
65
65
66
+
// NodeLockRetryTimeout is the timeout for retrying node lock acquisition.
67
+
NodeLockRetryTimeout time.Duration
68
+
66
69
// If set to false, When Pod.Spec.SchedulerName equals to the const DefaultSchedulerName in k8s.io/api/core/v1 package, webhook will not overwrite it, default value is true.
0 commit comments