Commit Graph

355 Commits

Author SHA1 Message Date
Kensei Nakada
6697467062 add(scheduler): implement "plugin_execution_duration_seconds" metric in PreEnqueue 2023-03-12 04:45:52 +00:00
Aldo Culquicondor
07a73bb2e1
One lock among PodNominator and SchedulingQueue
Change-Id: I17fe5da40250e42c04124c25b530ce6c8dea4154
2023-03-08 16:18:36 -05:00
Chen Wang
7db339dba2 This commit contains the following:
1. Scheduler bug-fix + scheduler-focussed E2E tests
2. Add cgroup v2 support for in-place pod resize
3. Enable full E2E pod resize test for containerd>=1.6.9 and EventedPLEG related changes.

Co-Authored-By: Vinay Kulkarni <vskibum@gmail.com>
2023-02-24 18:21:21 +00:00
lianghao208
c01fa8279d Optimization on running prePreEnqueuePlugins before adding pods into activeQ 2023-02-15 11:13:21 +08:00
Kubernetes Prow Robot
6228b914ad
Merge pull request #114273 from TommyStarK/unit-tests/pkg-scheduler-internal
scheduler/internal: Improving cache and heap test coverage
2022-12-12 23:11:33 -08:00
TommyStarK
94a29efe2f scheduler/internal: Improving cache and heap test coverage
Signed-off-by: TommyStarK <thomasmilox@gmail.com>
2022-12-12 20:08:24 +01:00
Kubernetes Prow Robot
bc6afee049
Merge pull request #114361 from kerthcet/cleanup/emit-errors-more-precise
Tune the error messages in scheduler cache
2022-12-12 00:15:44 -08:00
kerthcet
180b082c49 Make the error messages in scheduler cache more precise
Signed-off-by: kerthcet <kerthcet@gmail.com>
2022-12-08 15:41:43 +08:00
Wei Huang
a731a44596
Fix an accuracy issue of scheduler_pending_pods metric 2022-11-21 21:33:16 -08:00
Wei Huang
0f66366aff
Fix an issue that pod may be added to backoffQ 2022-11-08 10:05:32 -08:00
Wei Huang
0b27f25252
PreEnqueue implementation
- Add PreEnqueuePlugin to Scheduler Framework
- Implement PreEnqueuePlugin in scheduler queue
- Implementation of SchedulingGates plugin
- Metrics
2022-11-07 14:02:58 -08:00
Claudiu Belu
9f95b7b18c unittests: Fixes unit tests for Windows (part 3)
Currently, there are some unit tests that are failing on Windows due to
various reasons:

- paths not properly joined (filepath.Join should be used).
- Proxy Mode IPVS not supported on Windows.
- DeadlineExceeded can occur when trying to read data from an UDP
  socket. This can be used to detect whether the port was closed or not.
- In Windows, with long file name support enabled, file names can have
  up to 32,767 characters. In this case, the error
  windows.ERROR_FILENAME_EXCED_RANGE will be encountered instead.
- files not closed, which means that they cannot be removed / renamed.
- time.Now() is not as precise on Windows, which means that 2
  consecutive calls may return the same timestamp.
- path.Base() will return the same path. filepath.Base() should be used
  instead.
- path.Join() will always join the paths with a / instead of the OS
  specific separator. filepath.Join() should be used instead.
2022-10-21 19:25:48 +03:00
kidddddddddddddddddddddd
b901ef0f68 changes in test files 2022-10-12 22:11:04 +08:00
kidddddddddddddddddddddd
121d24cfc7 changes in non-test files 2022-10-12 21:09:55 +08:00
SataQiu
8640d17760 scheduler: cleanup the unused event types about Service 2022-10-03 16:30:38 +08:00
Kubernetes Prow Robot
5e38528ef5
Merge pull request #110279 from sanposhiho/internal-cache
scheduler: Update cached Pod any time to make sure the Pod's status is up-to-date
2022-09-20 08:09:20 -07:00
Kensei Nakada
eba4d50c15 Update cached Pod to make sure the Pod's status is up-to-date 2022-09-17 14:32:08 +00:00
astraw99
ee24513e47 Fix scheduler misc 2022-09-04 00:07:49 +08:00
Yuan Chen
7e05c0a522 Log scheduling queue events
Fix a typo

Address comments

Log one more queue event

Update pkg/scheduler/internal/queue/scheduling_queue.go

Co-authored-by: Aldo Culquicondor <1299064+alculquicondor@users.noreply.github.com>

Update pkg/scheduler/internal/queue/scheduling_queue.go

Co-authored-by: Aldo Culquicondor <1299064+alculquicondor@users.noreply.github.com>

Address comments

Remove 'source' from scheudling queue events

Update scheduling queue event msg.

Update scheduling queue events
2022-08-24 16:47:14 -07:00
Kubernetes Prow Robot
9d9da4dc8b
Merge pull request #111968 from demoManito/fix/initmemory
Optimizing: make map cap
2022-08-24 09:36:03 -07:00
Kubernetes Prow Robot
8c9c287533
Merge pull request #111826 from yuanchen8911/master
Add pod info.  KObj(pod) to scheduler cache log
2022-08-23 19:01:27 -07:00
Kubernetes Prow Robot
84f9aaaf5e
Merge pull request #111816 from kidddddddddddddddddddddd/feat/FlushAndExit
replace os.Exit with FlushAndExit
2022-08-23 19:01:19 -07:00
Yuan Chen
974a41e55a Replace pod key with KObj(pod) in scheduler cache error msg
Add back pod key in scheduler cache

Add additional changes

Change podInfo to pod
2022-08-23 15:08:48 -07:00
demoManito
8ecb523b93 Optimize: code logic newNodeTree() 2022-08-23 17:37:39 +08:00
kidddddddddddddddddddddd
b5f0c34ef1 replace os.Exit with FlushAndExit 2022-08-12 17:34:13 +08:00
Wei Huang
7df9bfcfef
Expose a pending pods summary in scheudler's dummper output 2022-08-05 22:02:38 -07:00
Davanum Srinivas
a9593d634c
Generate and format files
- Run hack/update-codegen.sh
- Run hack/update-generated-device-plugin.sh
- Run hack/update-generated-protobuf.sh
- Run hack/update-generated-runtime.sh
- Run hack/update-generated-swagger-docs.sh
- Run hack/update-openapi-spec.sh
- Run hack/update-gofmt.sh

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-07-26 13:14:05 -04:00
akankshakumari393
5d53407cc2 [Minor] Fix typos in the variable name in scheduling_queue_test.go 2022-07-23 19:27:15 +05:30
HaoJie Liu
5639a4000f
Detailed printed error message
Signed-off-by: HaoJie Liu <liuhaojie@beyondcent.com>
2022-07-08 16:58:29 +08:00
kerthcet
72e8fc1d87 Fix: pod's deadline shoud be nil when cache ttl is 0
Signed-off-by: kerthcet <kerthcet@gmail.com>
2022-07-05 23:29:31 +08:00
Kapil Jain
4706dda5da Added code for disable scheduler cache expiry 2022-07-04 23:46:59 +05:30
harry1064
fceb5cd4b1
Use clock package from k8s.io/utils/clock
- Remove unwanted clock.go file.
2022-06-25 00:25:12 +08:00
Kubernetes Prow Robot
b53be1d66e
Merge pull request #109879 from zzr93/master
wake up only when pod being added to activeQ
2022-05-09 09:09:18 -07:00
zzr93
923a99db95 unify wake up variable names to activated 2022-05-08 12:09:13 +08:00
zzr93
94ed4d0761 wake up only when pod being added to activeQ 2022-05-07 11:23:06 +08:00
Yibo Zhuang
fd08d47d8b cleanup: move scheduler tests to use PodWrapper
Move to use testing PodWrapper where applicable to
reduce duplicating pod creation code and shorten
number of lines.

Adding additional wrapper functions in PodWrapper
to ensure it covers all pod spec under tests.

Signed-off-by: Yibo Zhuang <yibzhuang@gmail.com>
2022-05-05 10:48:26 -07:00
Kubernetes Prow Robot
1234d061c0
Merge pull request #109727 from Huang-Wei/cleanup-sched-heap
sched: remove unused code in heap.go
2022-05-04 08:01:51 -07:00
Kubernetes Prow Robot
39021f66ef
Merge pull request #109715 from yibozhuang/volumerestrictions-refactor
Remove parallel node processing in PreFilter stage in volumerestrictions scheduler plugin
2022-05-04 06:49:51 -07:00
Yibo Zhuang
32c18a3479 Adding StorageInfoLister to SharedLister
This change creates a StorageInfoLister interface
and have it under scheduler SharedLister.

The initial StorageInfoLister interface has a
IsPVCUsedByPods which returns true/false depending on
whether the PVC (keyed by namespace/name) has at least
one scheduled pod using it.

In snapshot real implementation, add a usedPVCSet
key by PVC namespace/name which contains all PVCs
that have at least one scheduled pod using it.
During snapshot update, populate this set based on
whether the PVCRefCounts map for node(s) have been
updated since last snapshot.

Signed-off-by: Yibo Zhuang <yibzhuang@gmail.com>
2022-05-03 18:00:41 -07:00
Wei Huang
9f2b5018c1
sched: remove unused code 2022-04-29 11:37:35 -07:00
Yuan Chen
d1a2f699a7 Add PodWrapper functions for scheduler testing
Fix a typo in comment
2022-04-19 20:30:04 -07:00
Aldo Culquicondor
429457e184 Fix: abort nominating a pod that was already scheduled to a node
Change-Id: Iacb8530769e7a93e3bc8384cf51d7a8fd9a192e1
2022-04-04 10:52:59 -04:00
Kubernetes Prow Robot
317f8afe92
Merge pull request #108976 from ArangoGutierrez/devel/typos/scheduler
Fix typos under pkg/scheduler
2022-03-25 15:35:09 -07:00
Kubernetes Prow Robot
d60df5ba04
Merge pull request #108159 from pohly/logcheck
logcheck update and golangci-lint integration
2022-03-24 18:37:50 -07:00
Carlos Eduardo Arango Gutierrez
d2f67b42b7
Fix typos under pkg/scheduler
./scheduler/framework/plugins/noderesources/most_allocated_test.go:227: negtive ==> negative
./scheduler/framework/plugins/noderesources/most_allocated_test.go:228: negtive ==> negative
./scheduler/framework/plugins/volumebinding/binder.go:402: everytime ==> every time
./scheduler/framework/preemption/preemption_test.go:67: staus ==> status
./scheduler/framework/runtime/framework_test.go:1252: followings ==> following
./scheduler/internal/cache/cache_test.go:932: datas ==> data
./scheduler/internal/cache/node_tree_test.go:471: unknow ==> unknown
./scheduler/internal/queue/scheduling_queue_test.go:442: actived ==> activated
./scheduler/internal/queue/scheduling_queue_test.go:2209: covert ==> convert

Signed-off-by: Carlos Eduardo Arango Gutierrez <carangog@redhat.com>
2022-03-24 08:01:25 -04:00
Patrick Ohly
0f4d0660a7 kube-scheduler: finish conversion to structured logging
Thanks to support for multi-line string values we can now also convert
these remaining klog.Info calls without making the output unreadable
in text format.

The debug log messages intentionally don't get changed to ensure that
developers looking for it still find it.

The output now looks like this:

I0322 11:44:46.715093  458409 configfile.go:96] "Using component config" config=<
	apiVersion: kubescheduler.config.k8s.io/v1beta2
	clientConnection:
	  acceptContentTypes: ""
	  burst: 100
	  contentType: application/vnd.kubernetes.protobuf
	  kubeconfig: /var/run/kubernetes/scheduler.kubeconfig
	  qps: 50
	enableContentionProfiling: true
 ...
	  schedulerName: default-scheduler
 >

I0322 11:45:08.695649  458409 comparer.go:42] "Cache comparer started"
I0322 11:45:08.695718  458409 comparer.go:67] "Cache comparer finished"
I0322 11:45:08.695820  458409 dumper.go:52] "Dump of cached NodeInfo" nodes=<
	Node name: 127.0.0.1
	Deleted: false
	Requested Resources: &{MilliCPU:0 Memory:0 EphemeralStorage:0 AllowedPodNumber:0 ScalarResources:map[]}
	Allocatable Resources:&{MilliCPU:36000 Memory:67019448320 EphemeralStorage:181555660500 AllowedPodNumber:110 ScalarResources:map[hugepages-1Gi:0 hugepages-2Mi:0]}
	Scheduled Pods(number: 0):
 >
I0322 11:45:08.695873  458409 dumper.go:62] "Dump of scheduling queue" pods=<
	name: coredns-6874cd75d4-fv6hv, namespace: kube-system, uid: f1df106f-7fd9-460d-8403-333df61b2751, phase: Pending, nominated node:
 >
2022-03-24 11:13:50 +01:00
Alex Wang
8a5df1302a rename unschedulableQ to unschedulablePods
Signed-off-by: Alex Wang <wangqingcan1990@gmail.com>
2022-03-24 17:38:49 +08:00
Daniel Smith
2831f9a343 remove unneeded references 2022-03-23 15:26:38 +00:00
Alex Wang
e772202e95 set PodMaxUnschedulableQDuration as 5 min 2022-03-17 15:37:34 +08:00
196Ikuchil
1bb22fc4c8 fix:some comments 2022-03-17 01:38:05 +09:00