Dave Chen
5144e2ec78
Remove the deprecated metrics from scheduler
...
Deprecated metrics are removed and suggest to use the Histogram
metrics got from scheduler extension points.
Signed-off-by: Dave Chen <dave.chen@arm.com>
Co-authored-by: wawa0210 <xiaozhang0210@hotmail.com>
2020-12-14 11:31:50 +08:00
KeZhang
1208c53c8b
cleanup constants for scheduler metrics
2020-12-11 14:22:20 +08:00
Yixiang2019
842cc6b4e2
cleanup: fix log capitalization in scheduler
...
Signed-off-by: Yixiang2019 <wang.yixiang@zte.com.cn>
2020-11-12 20:10:26 +08:00
lixiaobing1
6a41d81264
remove annotation cache sync because of code removed
2020-11-06 18:41:08 +08:00
Kubernetes Prow Robot
d0bee69fc9
Merge pull request #94636 from hprateek43/cpu_threads_parameter
...
Added config parameter for CPU threads
2020-10-29 21:04:05 -07:00
Harsh Singh
1763688d71
Added config parameter for CPU threads
2020-10-29 12:16:10 +05:30
tangwz
5f3efa671d
scheduler: make Profile an interface.
2020-10-27 09:13:04 +08:00
Ali
09b2e8f638
Move scheduler interface to pkg/scheduler/framework
2020-10-13 13:13:27 +11:00
Kubernetes Prow Robot
44cd4fcedc
Merge pull request #95001 from arghya88/deprecate-scheduler-metrics
...
deprecate scheduler metrics
2020-09-24 13:57:48 -07:00
Dave Chen
a9b71c198b
Use the exported struct member directly
...
Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-09-24 16:15:11 +08:00
Arghya Sadhu
078b355da3
deprecate scheduler metrics BindingLatency and SchedulingAlgorithmPreemptionEvaluationDuration
2020-09-23 17:15:13 +05:30
Arghya Sadhu
c62f0dd165
removing deprecated scheduler metrics
2020-09-22 21:04:15 +05:30
Jimmy Zhang
1f0bcc8f5d
optimize the use of informer for scheduler
2020-09-15 18:21:40 +08:00
Wei Huang
d8def59871
Initialize scheduler's podInformer in sharedInformerFactory
...
Scheduler's specific podInfomer is now initialized inside the sahredInformerFactory.
2020-09-08 12:57:17 -07:00
Yecheng Fu
1176ef9c7d
forget the pod when the reserve plugins fail
...
and move the metrics function calls before all other functions
2020-08-11 21:28:33 +08:00
Wei Huang
0e71facefe
Hold Pod in cache until all other cleanup work is completed
...
- Move "ForgetPod" after "RunReservePluginsUnreserve", so that the cache would hold the pod to
avoid it's being retried simutaneously until Unreserve is completed.
- Move "assume" ahead of "RunReservePluginsReserve". This is based on the fact that "ForgetPod" is
the last step of failure path, so "assume" should be reversly treated as the first step. The
current failure path is like this:
assume -> reserve -> unreserve -> forgetPod -> recordingFailure
- Make subtests of TestReservePluginUnreserve stateless
2020-07-29 11:27:19 -07:00
Jordan Liggitt
124a5ddf72
Fix int->string casts
2020-07-24 16:23:12 -04:00
Wei Huang
4b26ef2217
Remove DisablePreemption field from SchedulerConfig v1beta1
...
DisablePreemption field can be removed as it can be deduced from PostFilterPlugins.
2020-07-08 09:58:42 -07:00
Abdullah Gharaibeh
d1ea49bcd9
breakdown PodSchedulingDuration by number of attempts
2020-07-01 17:34:07 -04:00
Adhityaa Chandrasekar
1b223b861a
scheduler: run Unreserve if Reserve fails
...
If a reserve plugin's Reserve method returns an error, there could be
previously allocated resources from successfully completed reserve
plugins that must be unallocated by the corresponding Unreserve
operation. Since Unreserve operations are idempotent, this patch runs
the Unreserve operation of ALL reserve plugins when a Reserve operation
fails.
2020-06-26 20:41:33 +00:00
Adhityaa Chandrasekar
ec83143342
scheduler: merge Reserve and Unreserve plugins
...
Previously, separate interfaces were defined for Reserve and Unreserve
plugins. However, in nearly all cases, a plugin that allocates a
resource using Reserve will likely want to register itself for Unreserve
as well in order to free the allocated resource at the end of a failed
scheduling/binding cycle. Having separate plugins for Reserve and
Unreserve also adds unnecessary config toil. To that end, this patch
aims to merge the two plugins into a single interface called a
ReservePlugin that requires implementing both the Reserve and Unreserve
methods.
2020-06-24 21:10:35 +00:00
Kubernetes Prow Robot
83a15867b1
Merge pull request #92049 from Huang-Wei/postfilter-impl-3
...
[postfilter-impl-3] Register and enable the defaultpreemption plugin
2020-06-22 23:53:54 -07:00
Wei Huang
d99cc01646
Register and enable defaultpreemption plugin
...
- Enable defaultpreemption as a PostFilter plugin
- Remote legacy hard-coded preemption logic
2020-06-22 17:22:27 -07:00
Aldo Culquicondor
eb9711dc1f
Add profile label to schedule_attempts_total metric
...
and e2e_scheduling_duration_seconds
Also adding result label to e2e_scheduling_duration_seconds. Previously, the metric was only updated for successful attempts
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-06-22 15:19:57 -04:00
Ali Farah
a22e115a0e
Split scheduler framework implementation into new runtime package
2020-06-22 00:23:43 +10:00
Wei Huang
196056d7fe
Introduce a defaultpreemption PostFilter plugin
...
- Add a defaultpreemption PostFilter plugin
- Make g.Preempt() stateless
- make g.Preempt() stateless
- make g.getLowerPriorityNominatedPods() stateless
- make g.processPreemptionWithExtenders() stateless
2020-06-19 09:13:55 -07:00
Wei Huang
36c8ecc98c
Refactor scheduler preempt interface
...
- replace error with NodeToStatusMap in Preempt() signature
- eliminate podPreemptor interface and expose its functions statelessly
- move logic in scheduler.go#preempt to generic_scheduler.go#Preempt()
2020-06-15 08:42:00 -07:00
tanjunchen
7fe9f3451f
Migrate to log calls to klog.ErroS for pkg/scheduler
2020-06-09 18:39:58 -07:00
Wei Huang
69b9ba6012
Introduce PostFilter extension point
2020-06-05 13:23:45 -07:00
Yecheng Fu
1ff09c0934
Remove BindTimeoutSeconds from KubeSchedulerConfiguration
2020-06-03 09:54:06 +08:00
Abdullah Gharaibeh
27caa6e727
merge pod condition update with setting nominated node name in the scheduler
2020-05-28 20:11:16 -04:00
Wei Huang
bd184035c4
Extract logic related with scheduler nominatedPods to an interface
...
- rename `UpdateNominatedPodForNode` to `AddNominatedPod`
- promote `update` to `UpdateNominatedPod`
- anonymous lock in nominatedMap
- pass PodNominator as an option to NewFramework
2020-05-18 10:29:08 -07:00
Davanum Srinivas
442a69c3bd
switch over k/k to use klog v2
...
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:27 -04:00
Kubernetes Prow Robot
57b79e3fb4
Merge pull request #91037 from Huang-Wei/prefactor-PreemptExtender
...
Refactor preemption extender logic and move SchedulerExtender interface to framework pkg
2020-05-15 02:48:30 -07:00
Brian Pursley
9eb8e7a6d6
Changed scheduler to use patch when updating pod status to avoid potential conflicts
2020-05-14 15:17:53 -04:00
Kubernetes Prow Robot
5bda0c1b3b
Merge pull request #83726 from cofyc/fix56180
...
scheduler: Move all volume binding code into VolumeBinding plugin
2020-05-14 10:08:23 -07:00
Wei Huang
e4f878ea3a
cleanup: use string instead of v1.Node as key of nodeToVictims
2020-05-13 13:08:20 -07:00
Yecheng Fu
c14b749521
scheduler/volumebinding: move all volume binding logic into VolumeBinding plugin
2020-05-12 10:13:05 +08:00
Abdullah Gharaibeh
c3be8feee6
count no nodes scheduling failure as unschedulable instead of error
2020-05-11 14:07:52 -04:00
Wei Huang
e283e73994
Remove enableNonPreempting
field from scheduler codebase
2020-05-08 19:02:51 -07:00
Abdullah Gharaibeh
a151682887
Split scheduler's PodInfo into two types, PodInfo and PodQueueInfo
2020-04-21 21:45:20 -04:00
skilxn-go
e0adb0ead9
Add compatibility tests for plugin config
2020-03-24 22:17:16 +08:00
Kubernetes Prow Robot
4319ab214f
Merge pull request #89219 from chendave/misspelling
...
Trival fix: update the description on the pod preemption
2020-03-20 17:58:44 -07:00
Dave Chen
a9d82e7c2a
Trival fix: update the description on the pod preemption
...
`pod` has the field of `NominatedNodeName` which is different
with `NominatedPod`.
2020-03-18 18:23:36 +08:00
Aldo Culquicondor
4d6af4d8d8
Set unschedulable Condition after setting nominated Node
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-03-13 11:02:19 -04:00
Kubernetes Prow Robot
5708511499
Merge pull request #88708 from mikedanese/deleteopts
...
Migrate clientset metav1.DeleteOpts to pass-by-value
2020-03-05 23:09:23 -08:00
Mike Danese
c58e69ec79
automated refactor
2020-03-05 14:59:46 -08:00
Mike Dame
1d7006c38d
Add Extenders to scheduler v1alpha2 component config
2020-03-05 16:42:15 -05:00
louisgong
c6b94e4606
refactor volume binder
2020-02-29 12:03:39 +08:00
Aldo Culquicondor
c048858471
Support multiple scheduling profiles in a single scheduler
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-25 11:31:20 -05:00
Mateusz
d221d82eaf
run permit plugins in the scheduling cycle
2020-02-18 10:04:23 -08:00
Aldo Culquicondor
99bda6fac0
Remove HardPodAffinityWeight from v1alpha2
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-02-13 11:59:56 -05:00
Mike Danese
25651408ae
generated: run refactor
2020-02-08 12:30:21 -05:00
Mike Danese
3aa59f7f30
generated: run refactor
2020-02-07 18:16:47 -08:00
Shingo Omura
c9c4be66d3
Fix pending_pods, schedule_attempts_total was not recorded
...
because metric initializations are too early. This causes actual metric
instance become no-op.
modification made in thie commit to make sure actual metric instance won't be no-op metrics:
- re-initialize scheduler/metrics.PodSchedule{Successes, Failure, Errors} after metric creation
- scheduler/metrics.Register() should be called before initializing SchedulingQueue,
2020-01-31 17:03:41 +09:00
Aldo Culquicondor
4a5ab84dcc
Move default binding to a plugin
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-01-22 14:13:33 -05:00
Haosdent Huang
50d511d4b8
Deprecate scheduler's framework.plugins.RegistryArgs
2020-01-21 23:50:58 +08:00
Aldo Culquicondor
eb265bc7db
Remove GetBinder member and replace it with a method.
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-01-20 14:10:02 -05:00
Aldo Culquicondor
f53d7e55df
Move Snapshot from nodeinfo/snapshot to internal/cache
...
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-01-17 13:29:41 -05:00
danielqsj
85931af1ee
remove deprecated metrics of scheduler
2020-01-10 17:03:40 +08:00
sunxiaofei03
6c58cc0ad0
change framework_extension_point_duration_seconds from sampling to always record
2020-01-09 12:23:05 +08:00
Kubernetes Prow Robot
b3c4c90a72
Merge pull request #86673 from ahg-g/ahg1-provider
...
Define algorithm providers in terms of plugins
2020-01-02 22:25:53 -08:00
Kubernetes Prow Robot
fdfcb00ede
Merge pull request #86586 from xiaoanyunfei/cleanup/deprecate_scheduler_duration_seconds
...
Deprecate scheduling_duration_seconds Summary metric
2020-01-02 19:15:55 -08:00
Abdullah Gharaibeh
b535ed3b0c
Merge scheduler's ConfigProducerRegistry into LegacyRegistry
2020-01-02 16:40:33 -05:00
Kubernetes Prow Robot
26b52e84a4
Merge pull request #86230 from hex108/skip_schedule
...
Scheduler handles pod annotation updates during scheduling more gracefully
2019-12-31 17:03:40 -08:00
Abdullah Gharaibeh
a6b7b0d95e
Define algorithm providers in terms of plugins.
2019-12-31 15:28:09 -05:00
Jun Gong
706e90a033
Skip scheduling the pod if it has been assumed and the pod updates could be skipped.
2019-12-31 14:21:41 +08:00
Abdullah Gharaibeh
fe7de96ebe
cleanup scheduler's in-tree plugins registry naming
2019-12-24 15:56:36 -05:00
sunxiaofei03
70b80ae28a
Deprecate scheduling_duration_seconds Summary metric
2019-12-24 19:17:29 +08:00
Kubernetes Prow Robot
f4caa62593
Merge pull request #85590 from yuzhiquan/master
...
handle registry merge error
2019-12-04 08:50:57 -08:00
Dc.Hannibal
9a9db00451
handle registry merge error
...
Handle registry merge error.
Add test case
Add a test case in TestSchedulerCreation
Add test case comment
Add test case comment, and modify error msg.
gofmt
gofmt import order
replace NewDefaultRegistry with a fake registry
update comment
rename framework plugins nodeaffinity import
remove nodeaffinity plugin import, get fake registry name from default registry randomly
Add a space
Add a space after //
update comment, trans FrameWork to Framework
2019-12-04 09:21:18 +08:00
Abdullah Gharaibeh
f388534082
make scheduling queue start before the scheduler starts and stops after the scheduler stops
2019-12-02 14:35:09 -05:00
Kubernetes Prow Robot
9b75e36436
Merge pull request #85294 from ahg-g/ahg-15k
...
Rename PluginConfigArgs to AlgorithmConfigArgs
2019-11-14 11:20:11 -08:00
Kubernetes Prow Robot
78d2e52dee
Merge pull request #84859 from denkensk/move-volumebind-behind-permit
...
Move pod bindVolumes behind RunPermitPlugins
2019-11-14 10:05:48 -08:00
Abdullah Gharaibeh
05606bb6e4
rename PluginConfigArgs to AlgorithmConfigArgs
2019-11-14 11:30:59 -05:00
Kubernetes Prow Robot
5e30d32d2c
Merge pull request #83394 from bertinatto/convert_pv_no_affinity
...
Convert existing PVs to use volume topology in VolumeBinderPredicate
2019-11-13 21:45:56 -08:00
Kubernetes Prow Robot
fa1ca34550
Merge pull request #85236 from liu-cong/metrics-bucket
...
Update bucket for scheduler framework latency histograms.
2019-11-13 17:29:17 -08:00
Cong Liu
8995c1e030
Update bucket for scheduler framework latency histograms.
2019-11-13 16:35:59 -05:00
Kubernetes Prow Robot
7d1580270a
Merge pull request #85151 from hypnoglow/scheduler-default-algo-source
...
scheduler: make algorithm source an option
2019-11-13 13:04:09 -08:00
Kubernetes Prow Robot
e0c483b889
Merge pull request #85150 from ahg-g/ahg-informer
...
Pass InformerFactory/SharedLister instead of individual informers/listers in scheduler config logic
2019-11-13 09:28:23 -08:00
Fabio Bertinatto
bbfc6ef450
Convert volume binder to use CSINode GA
2019-11-13 14:01:01 +01:00
Fabio Bertinatto
7cba40fb09
Use CSI translation lib in VolumeBinderPredicate
2019-11-13 14:01:01 +01:00
Igor Zibarev
6350095d3c
scheduler: make algorithm source an option
...
Changes scheduler.New so that algorithm source is moved from the
parameter to an option. The default algorithm source is source with the
DefaultProvider.
2019-11-13 10:22:29 +03:00
Abdullah Gharaibeh
acc66ede1a
Pass InformerFactory instead of indivisual informers in scheduler configuration logic
2019-11-12 19:38:27 -05:00
Kubernetes Prow Robot
ce11622bb6
Merge pull request #84522 from liu-cong/plugin
...
Add scheduler plugin execution duration metric.
2019-11-12 13:50:11 -08:00
Kubernetes Prow Robot
c580a12c8e
Merge pull request #83568 from bertinatto/volume_limits_ga
...
Promote volume limits to GA
2019-11-12 11:50:22 -08:00
Cong Liu
af6a8160c3
Add scheduler plugin execution duration metric.
...
Address comments
Sample metrics
Use rand.Intn and some cleanup
2019-11-12 13:00:20 -05:00
Fabio Bertinatto
a59abc3cc3
Convert scheduler to use CSINode GA
2019-11-12 09:43:54 +01:00
Ahmad Diaa
7156d4532e
remove factory.Config struct and NewFromConfig
2019-11-11 19:27:53 +01:00
Ahmad Diaa
7b8e5fb4f5
make Configurator.Create return a Scheduler
2019-11-11 19:27:53 +01:00
Alex Wang
c9fda7aac0
move bindVolumes behind RunPermitPlugins
2019-11-11 11:30:01 +08:00
Kubernetes Prow Robot
d22e04c181
Merge pull request #84337 from hex108/cancel_context
...
Cancel context when RunPermitPlugins finishes
2019-11-07 09:04:10 -08:00
Wei Huang
c649666b4a
manual API changes and code refactoring
...
- add Policy API to pkg/scheduler/apis/config and staging/src/k8s.io/kube-scheduler/config/v1
- dual-register Policy as apiGroup "v1" and "kubescheduler.config.k8s.io
- move/merge pkg/scheduler/api to pkg/scheduler/apis/config/...
- alias schedulerapi to pkg/scheduler/apis/config
- alias legacyapi to pkg/scheduler/api
- eliminate latest.Codec; use scheme.Codecs instead
- unit tests to verify Policy YAML with version "v1" or "kubescheduler.config.k8s.io/v1" can be loaded properly
- update api/api-rules/violation_exceptions.list
2019-11-01 14:24:36 -07:00
Jun Gong
81b705960f
Cancel context to make sure all plugins are cancelled when each schedule finishes
2019-10-29 22:37:59 +08:00
Cong Liu
571cea0519
Convert NodeLabelPresence custom predicate to filter plugin.
2019-10-25 19:31:17 -04:00
Abdullah Gharaibeh
8ec56aeafb
Change all scheduler's Node and Pod list/lookups to be from the snapshot rather than the cache.
2019-10-25 14:24:55 -04:00
Jordan Liggitt
0e2f2dde4d
Feature-gate CSINode and CSIDriver informer starts
2019-10-24 17:44:25 -04:00
Kubernetes Prow Robot
09a251ce92
Merge pull request #84274 from liggitt/beta-gate-pdb-informers
...
Feature-gate PDB informer starts
2019-10-24 11:56:34 -07:00
Jordan Liggitt
feac7a40f5
Feature-gate PDB informer starts
2019-10-24 01:17:39 -04:00
draveness
76a42fb29b
feat: remove WaitForCacheSync from scheduler factory
2019-10-24 10:19:35 +08:00