Commit Graph

334 Commits

Author SHA1 Message Date
Shivanshu Raj Shrivastava
bb31040f06
migrate cache.go to structured logging 2021-11-07 19:20:39 +05:30
Kubernetes Prow Robot
d92a443ca7
Merge pull request #106102 from alculquicondor/delete-pod-tombstone
Ensure deletion of pods in queues and cache
2021-11-06 10:52:51 -07:00
Kubernetes Prow Robot
c2706035f2
Merge pull request #105941 from rezakrimi/issue/105861
Make some scheduler metrics stable
2021-11-04 10:06:03 -07:00
Aldo Culquicondor
ff741f6a96 Ensure deletion of pods in queues and cache
When the client misses a delete event from the watcher, it will use the last state of the pod in the informer cache to produce a delete event. At that point, it's not clear if the pod was in the queues or the cache, so we should issue a deletion in both.

The pod could be assumed, so deletion of assumed pods from the cache should work.

Change-Id: I11ce9785de603924fc121fe2fa6ed5cb1e16922f
2021-11-03 14:00:31 -04:00
Reza Karimi
bb15f02039 issue#105861: making scheduler metrics stable 2021-11-03 15:34:50 +00:00
sanposhiho
9dc0489c1a Fix: move parallelize package to non-internal file 2021-10-21 02:39:23 +09:00
Kubernetes Prow Robot
6c45f6e32b
Merge pull request #105125 from BinacsLee/binacs-fix-scheQ-caculate-overflow
Scheduler: fix calculateBackoffDuration overflow in extreme data cases
2021-09-20 21:26:23 -07:00
BinacsLee
f277864aa5 Scheduler queue: fix calculateBackoffDuration overflow in extreme data cases 2021-09-21 09:42:52 +08:00
wojtekt
d9b08c611d Migrate to k8s.io/utils/clock 2021-09-17 15:19:08 +02:00
Stephen Augustus
481cf6fbe7
generated: Run hack/update-gofmt.sh
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2021-08-24 15:47:49 -04:00
sanposhiho
b7dd0a7660 Clean up: delete NumUnschedulablePods because it's no longer in use 2021-08-24 17:34:05 +09:00
Kubernetes Prow Robot
fcefb0bc2a
Merge pull request #104158 from mamil/modify-func-notes
make notes more easily to understand
2021-08-06 01:21:19 -07:00
raymonder jin
b66d52f6a8
make notes more easily to understand 2021-08-06 09:03:23 +08:00
Kubernetes Prow Robot
2d08fd4f56
Merge pull request #103864 from yuanchen8911/master
Fix inaccurate comments in scheduler_queue.go
2021-08-05 01:45:15 -07:00
Kubernetes Prow Robot
6fb005d4d4
Merge pull request #103792 from lixiaobing1/activeQ5
fix typo scheduling queue to active queue
2021-08-05 01:43:50 -07:00
Yuan Chen
00e31ce565 Fix incorrect comments in scheduler_queue.go 2021-07-22 20:57:21 -07:00
lixiaobing1
51e4694cd6 fix typo scheduling queue to active queue 2021-07-20 14:01:35 +08:00
boenn
1980b18c45 Solved the test problem and added update comment 2021-07-16 10:57:23 +08:00
Wei Huang
fb9cafc99b
sched: provide an option for plugin developers to move pods to activeQ 2021-07-07 12:50:12 -07:00
Yecheng Fu
83ee392ed4 implement EnqueueExtensions interface in volumebinding 2021-07-03 08:25:06 +08:00
ravisantoshgudimetla
b6c75bee15 Remove balanced attached node volumes
kubernetes#60525 introduced
Balanced attached node volumes feature gate to include volume
count for prioritizing nodes. The reason for introducing this
flag was its usefulness in Red Hat OpenShift Online environment
which is not being used any more. So, removing the flag
as it helps in maintainability of the scheduler code base
as mentioned at kubernetes#101489 (comment)
2021-06-22 11:19:30 -04:00
Wei Huang
36eaa11d50
cleanup usage of NewPodNominator
- replace NewPodNominator() with NewSafePodNominator()
- rename nominatedPodMap to nominator
2021-06-10 14:01:07 -07:00
Wei Huang
8e85a2b0c2
sched: fix a bug that a preemptor pod exists as a phantom
- SafePodNominator to resolve racing issue when dealing with nominated pod
2021-06-05 11:07:29 -07:00
llhuii
3c899f9b54 sched: fix Dump's doc comment 2021-05-30 00:39:20 +08:00
Alexander Minbaev
8325c6b0da got rid of ClusterEventReg with generating ClusterEvent objects on the fly 2021-04-14 13:38:46 -05:00
卢振兴10069964
5ddb1be59a code cleanup for pkg/scheduler 2021-04-13 08:16:16 +08:00
Kubernetes Prow Robot
ae40c62c49
Merge pull request #100286 from tanjing2020/skip_updates_assumed_pods
Scheduler: skip updates of assumed pods
2021-04-08 20:29:29 -07:00
Kubernetes Prow Robot
7cd73076a2
Merge pull request #100049 from Huang-Wei/basic-check-prior-to-enq
sched: support PreEnqueueChecks prior to moving Pods
2021-04-08 17:11:04 -07:00
tanjing2020
d4465b995e Scheduler: skip updates of assumed pods 2021-03-24 10:01:22 +08:00
Kubernetes Prow Robot
5bed8d355f
Merge pull request #98829 from NickrenREN/scheduler-queue-update
fix scheduler queue update logic
2021-03-16 09:08:36 -07:00
Wei Huang
6384f397b4
sched: support PreEnqueueChecks prior to moving Pods 2021-03-11 12:31:50 -08:00
renyuquan
53ee08a40e fix scheduler queue update logic 2021-03-10 15:48:18 +08:00
drfish
c2ceb21a3e Make parallelism as part of schedulerOptions 2021-03-09 23:25:55 +08:00
Kubernetes Prow Robot
9067b5691d
Merge pull request #97818 from damemi/remove-util-node-dep
Scheduler: remove direct dependency for k8s.io/kubernetes/pkg/util/node
2021-03-05 04:06:32 -08:00
Mike Dame
af045087d9 Move GetZoneKey function to component-helpers 2021-03-04 10:32:38 -05:00
Abdullah Gharaibeh
c7fef196b6 Implements pod affinity NamespaceSelector feature 2021-03-04 07:30:24 -05:00
Wei Huang
6fdb1a8439
sched: add a benchmark test for MoveAllToActiveOrBackoffQueue 2021-03-03 07:20:08 -08:00
Wei Huang
f322019d7a
Store a cluster event to plugin map in SchedulerQueue 2021-03-03 07:20:07 -08:00
Benjamin Elder
56e092e382 hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
drfish
bc2df9de72 Use PodInfo instead of Pod for nominatedPods and QueuedPodInfo 2021-02-22 22:00:23 +08:00
Kubernetes Prow Robot
d69d228a2c
Merge pull request #99211 from deepakiam/master
Substituting bool maps with String sets
2021-02-19 00:20:57 -08:00
Kubernetes Prow Robot
320aaf4859
Merge pull request #98358 from tanjing2020/scheduling_queue.go
migrate scheduling_queue.go to structured logging
2021-02-19 00:20:24 -08:00
Deepak Nair
49a9e28dd8 Substitute boolean maps with String sets 2021-02-18 20:59:32 -08:00
tanjing2020
d0eecbd0a9 migrate scheduling_queue.go to structured logging 2021-02-18 09:56:31 +08:00
Wei Huang
04a40d1f18
sched: remove Unknown queuing literal 2021-02-10 11:03:07 -08:00
drfish
ebb6fb5b0c Organize scheduler unit tests into subtests 2021-02-02 21:41:20 +08:00
chymy
ed6475ae48 migrate pkg/scheduler/internal/cache/debugger/comparer.go to structured logs
Signed-off-by: chymy <chang.min1@zte.com.cn>
2021-02-01 11:20:05 +08:00
Justin SB
8797738c02 Fix spelling typos: scheduable -> schedulable
Bulk fix of a common typo.
2021-01-09 12:59:33 -05:00
jinde.zgm
17b084938a
fix gofmt bug 2020-12-15 20:07:47 +08:00
jindezgm
5e6177897d
Refresh Timestamp when pod is not present in the three sub-queues
The pInfo.Timestamp is refreshed but the sort in activeQ or podBackoffQ is not be updated when pod  is already present in the backoff or active queue.
AddUnschedulableIfNotPresent() return error if pod is already present in the backoff or active queue, and there is no re-add.
So  refresh  pInfo.Timestamp when  the pod is not present in the three sub-queues, otherwise need to update the order of the pod in the active or backoff queue, for example p.activeQ.Update(pInfo)
2020-12-14 22:39:08 +08:00
Tim Hockin
4068402459 Change trivial topology labels
In these cases the actual label key is incidental.
2020-11-12 11:21:37 -08:00
Kubernetes Prow Robot
bd95fb101d
Merge pull request #94814 from adtac/preemption2
optimise defaultpreemption: enumerate fewer candidates
2020-11-05 21:18:50 -08:00
Tim Hockin
819ff9b087
Use topology labels instead of old beta names (#96033)
* Rename const for topology.../zone

* Rename const for topology.../region

* Rename const for failure-domain.../zone

* Rename const for failure-domain.../region

* Restore old names for compat
2020-11-05 20:26:50 -08:00
Kubernetes Prow Robot
43a0007fae
Merge pull request #96062 from Huang-Wei/sched-aware-of-nodes
Ensure created nodes are present in scheduler cache before scheduling
2020-11-05 13:13:05 -08:00
Adhityaa Chandrasekar
a3d94b53ca optimise defaultpreemption: enumerate fewer candidates
Signed-off-by: Adhityaa Chandrasekar <adtac@google.com>
2020-11-04 22:39:58 +00:00
Wei Huang
f054765762
Add a function to ensure created nodes are present in scheduler cache 2020-11-03 15:25:44 -08:00
lixiaobing1
03cfd30ee2 fix n to nodeInfo easy to understand 2020-11-03 08:44:55 +08:00
Harsh Singh
1763688d71 Added config parameter for CPU threads 2020-10-29 12:16:10 +05:30
Ali
09b2e8f638 Move scheduler interface to pkg/scheduler/framework 2020-10-13 13:13:27 +11:00
Kubernetes Prow Robot
3a987d5b85
Merge pull request #95130 from alculquicondor/fix-snapshot
Fix UpdateSnapshot when Node is partially removed
2020-09-28 21:31:38 -07:00
Aldo Culquicondor
d6f09f7dfb Fix UpdateSnapshot when Node is partially removed
Change-Id: I5b459e9ea67020183c87d1ce0a2380efb8cc3e05
2020-09-28 17:50:41 -04:00
Aldo Culquicondor
290bdf3f08 Fix test name TestDump
Change-Id: If885303b86060aed7a3e2aa20450cadd1f30752c
2020-09-28 15:30:05 -04:00
Kubernetes Prow Robot
a576196076
Merge pull request #94413 from chendave/flake
Enhancement on the testcase to cover more possibilities
2020-09-22 12:23:20 -07:00
Kubernetes Prow Robot
d239cdfbc0
Merge pull request #94059 from ahg-g/ahg-anti-affinity
Track pods with required anti-affinity
2020-09-08 04:54:12 -07:00
Dave Chen
4b2c054e59 Enhancement on the testcase to cover more possibilities
This change enriches the testcase of `TestPriorityQueue_MoveAllToActiveOrBackoffQueue`
to cover the case that pods in the unschedulableQ could be moved to activeQ after the
backing off.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2020-09-03 14:04:03 +08:00
Abdullah Gharaibeh
a8873e1a43 Track pods with required anti-affinity
This is a performance optimization that reduces the overhead of inter-pod affinity PreFilter calculaitons. Basically
eliminates that overhead when no pods in the cluster use required pod anti-affinity. This offered 20% improvement on 5k clusters for preferred anti-affinity benchmarks.
2020-08-21 10:09:21 -04:00
maelk
fc5edb8c12
Change nodeInfolist building logic in scheduler
This commit transforms the next() function of the scheduler node
tree into a listNodes() function that directly returns a list of
nodes, going through the zones in a round-robin fashion. This
removes the flawed logic of the next() function.
2020-08-18 11:35:14 +03:00
Aldo Culquicondor
dfe9e413d9 Keep track of remaining pods when a node is deleted.
The apiserver is expected to send pod deletion events that might arrive at a different time. However, sometimes a node could be recreated without its pods being deleted.

Partial revert of https://github.com/kubernetes/kubernetes/pull/86964

Signed-off-by: Aldo Culquicondor <acondor@google.com>
Change-Id: I51f683e5f05689b711c81ebff34e7118b5337571
2020-08-13 14:24:01 -04:00
Aldo Culquicondor
16d7ecfa45 Remove direct accesses to cache's node map
Signed-off-by: Aldo Culquicondor <acondor@google.com>
Change-Id: Iebb22fc816926aaa1ddd1e4b2e52f335a275ffaa
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-08-13 14:22:06 -04:00
He Jie Xu
33a7e94b6a Create new slices to avoid modify original fake data
When create fake data for the nodeTree unittests, The 'append' is invoked
on the common fake data set. That makes the unittests is running with unexpected
fake data after that.
2020-07-29 11:36:47 +08:00
Maël Kimmerlin
c2ec8bedbc
Fix scheduler issue with nodetree additions
When nodes are added in multiple zones at once, the nodeTree next
function does not return a correct list of nodes but repeats some
This commit resets the index before starting to call next() to
prevent this issue

Special thanks to igraecao for the help in finding the bug

Co-authored-by: igraecao <matvej.yolli@outlook.com>
2020-07-24 09:42:53 +03:00
Gaurav Singh
00f28747b3 TestSchedulingQueue_Close: Remove struct tests and the corresponding for loop
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

TestSchedulingQueue_Close: Remove for loop

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

remove the tests slice

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Remove struct

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Remove t.Run()

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Add function name

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Remove nested function

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>

Replace expectedErr with wantErr

Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
2020-06-11 11:19:14 -04:00
Wei Huang
f4b726237a
Add function NominatedPodsForNode to PodNominator interface.
- replace SchedulingQueue with PodNominator in genericScheduler.
2020-05-20 14:05:18 -07: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
Kubernetes Prow Robot
d4ce66fe0b
Merge pull request #90660 from Huang-Wei/synced-sched-err-call
Move unschedulable Pod to internal schedulingQ synchronously
2020-05-16 19:00:06 -07:00
Davanum Srinivas
07d88617e5
Run hack/update-vendor.sh
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:33 -04: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
Wei Huang
133a02540f
Move unschedulable Pod to internal schedulingQ synchronously
- use in-cache Pod instead of real-time Pod (by calling API server) to mark it as unschedulable
  in internal schedulingQ
- remove the backoff logic as now we don't call API server
- the whole logic is changed to a synchronous call
2020-05-15 19:27:28 -07:00
Abdullah Gharaibeh
5e0211c72d Added pre-processed required affinity terms to scheduler's PodInfo type. 2020-05-14 10:30:42 -04:00
Wei Huang
8c2a540cdc
Refine schedulerQueue test to avoid unneeded locks
- revert PR 88331
- remove createAndRunPriorityQueue()
- PriorityQueue is created and not run by default
- flushXYZ() is called on demand by manipulating FakeClock and Step()
2020-05-05 00:11:04 -07:00
lixiang
5844bc3b9f There's no need to set moveRequestCycle and do broadcast twice. 2020-04-28 00:43:58 +08:00
Kubernetes Prow Robot
29e4e66b59
Merge pull request #90371 from ahg-g/ahg-pinfo
Deprecate scheduler's PodLister interface
2020-04-22 23:09:58 -07:00
Abdullah Gharaibeh
57585640e8 change scheduler's framework PodLister to PodInfoLister 2020-04-22 19:25:27 -04:00
Kubernetes Prow Robot
9066ee9906
Merge pull request #90330 from cwdsuzhou/April/log_level
Increase log level to avoid print binding messages in framework too frequently
2020-04-22 14:03:46 -07:00
caiweidong
171a242e1e Increase log level to avoid print binding messages in framework too frequently 2020-04-22 11:37:35 +08:00
Abdullah Gharaibeh
a151682887 Split scheduler's PodInfo into two types, PodInfo and PodQueueInfo 2020-04-21 21:45:20 -04:00
Abdullah Gharaibeh
2c51c13620 Scheduler NodeInfo cleanup 2020-04-09 19:03:51 -04:00
Kubernetes Prow Robot
0c9245a29f
Merge pull request #89974 from ahg-g/ahg-info
scheduler's NodeInfo tracks PodInfos instead of Pods
2020-04-09 09:19:58 -07:00
Abdullah Gharaibeh
b8ddd00312 scheduler's NodeInfo tracks PodInfos instead of Pods 2020-04-08 17:53:20 -04:00
Kubernetes Prow Robot
1edbfe1745
Merge pull request #89908 from alculquicondor/fix_cache
Skip updating scheduler cache on pod update if the node was deleted
2020-04-07 16:46:06 -07:00
Aldo Culquicondor
e75b5dcfe4 Skip updating cache on pod update if the node was deleted
Signed-off-by: Aldo Culquicondor <acondor@google.com>
2020-04-07 13:24:42 -04:00
Abdullah Gharaibeh
a5d8172715 move nodeinfo type to framework pkg 2020-04-07 10:25:24 -04:00
Harsh Singh
015d06bf41 Internal channels for scheduler 2020-04-04 02:30:16 +05:30
Abdullah Gharaibeh
ed3fe054df move scheduler nodeinfo to pkg/scheduler/types 2020-03-31 21:02:09 -04:00
Aldo Culquicondor
e902e70d0d Use sqrt(n) chunk size in pod affinity and core scheduler 2020-03-24 10:29:59 -04: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
skilxn-go
74718adf10 fix data races for other usage of Q 2020-02-20 00:50:13 +08:00
skilxn-go
7e33feec57 fix data races in scheduler unit tests 2020-02-19 22:27:40 +08:00
Kubernetes Prow Robot
bde718d100
Merge pull request #87948 from notpad/feature/pod_backoff
Remove PodBackoffMap
2020-02-14 13:11:28 -08:00
notpad
a4e4a99435 Remove PodBackoffMap 2020-02-14 08:31:07 +08:00