Skip to content

Commit 99b9280

Browse files
authored
Merge pull request #5870 from ania-borowiec/nnn_testing
Update KEP-5278 with testing results
2 parents 5649b77 + 4b5126f commit 99b9280

File tree

1 file changed

+4
-10
lines changed
  • keps/sig-scheduling/5278-nominated-node-name-for-expectation

1 file changed

+4
-10
lines changed

keps/sig-scheduling/5278-nominated-node-name-for-expectation/README.md

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -417,23 +417,17 @@ to implement this enhancement.
417417

418418
##### Integration tests
419419

420-
Tests already implemented:
420+
Tests:
421421
[test/integration/scheduler/nominated_node_name](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler/nominated_node_name) : [integration master](https://testgrid.k8s.io/sig-release-master-blocking#integration-master&include-filter-by-regex=nominated_node_name) , [triage search](https://storage.googleapis.com/k8s-triage/index.html?test=Test_PutNominatedNodeNameInBindingCycle)
422422

423423
Covering scenarios:
424424
- scheduler sets NNN before PreBind and WaitOnPermit, and does not set NNN when PreBind and Permit phases are skipped for the pod
425-
426-
More tests are WIP https://github.com/kubernetes/kubernetes/pull/133215
427-
428-
We're going to add these integration tests:
429425
- The scheduler prefers to picking up nodes based on NominatedNodeName on pods, if the nodes are available.
430426
- The scheduler ignores NominatedNodeName reservations on pods when it's scheduling higher priority pods.
431427
- The scheduler overwrites NominatedNodeName when it performs the preemption, or when it finds another spot in another node and proceeding to the binding cycle (assuming there's a PreBind plugin).
432428
- And, the scheduler (actually kube-apiserver, when receiving a binding request) clears NominatedNodeName when the pod is actually bound.
433429

434-
Also, with [scheduler-perf](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler_perf), we'll make sure the scheduling throughputs for pods that go through Permit or PreBind don't get regress too much.
435-
We need to accept a small regression to some extent since there'll be a new API call to set NominatedNodeName.
436-
But, as discussed, assuming PreBind already makes some API calls for the pods, the regression there should be small.
430+
Also [scheduler-perf](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler_perf) was used to verify that the change did not impact scheduling throughput.
437431

438432
##### e2e tests
439433

@@ -542,7 +536,7 @@ there'll be nothing behaving wrong in the scheduling flow, see [Version Skew Str
542536

543537
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
544538

545-
We will do the following manual test after implementing the feature:
539+
The following manual test has been executed after implelemting the feature.
546540

547541
1. upgrade
548542
2. request scheduling of a pod that will need a long preBinding phase (e.g. uses volumes)
@@ -579,7 +573,7 @@ and also what types of scheduler customization you add.
579573

580574
So, here we just give a hint of a reasonable SLO, you need to adjust it based on your cluster's usual behaviors.
581575

582-
In the default scheduler, we should see the throughput around 100-150 pods/s ([ref](https://perf-dash.k8s.io/#/?jobname=gce-5000Nodes&metriccategoryname=Scheduler&metricname=LoadSchedulingThroughput&TestName=load)), and this feature shouldn't bring any regression there.
576+
In the default scheduler, we should see the throughput around 100-150 pods/s ([ref](https://perf-dash.k8s.io/#/?jobname=gce-5000Nodes&metriccategoryname=Scheduler&metricname=LoadSchedulingThroughput&TestName=load)). This feature does not bring any regression there.
583577

584578
Based on that:
585579
- `schedule_attempts_total` shouldn't be less than 100 in a second.

0 commit comments

Comments
 (0)