@@ -24,7 +24,7 @@ To get started with this template:
24
24
appropriate SIG(s).
25
25
- [x] **Create a PR for this KEP.**
26
26
Assign it to people in the SIG who are sponsoring this process.
27
- - [ ] **Merge early and iterate.**
27
+ - [x ] **Merge early and iterate.**
28
28
Avoid getting hung up on specific details and instead aim to get the goals of
29
29
the KEP clarified and merged quickly. The best way to do this is to just
30
30
start with the high-level sections and fill out details incrementally in
@@ -129,11 +129,11 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
129
129
- [x] (R) Design details are appropriately documented
130
130
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
131
131
- [x] (R) Graduation criteria is in place
132
- - [ ] (R) Production readiness review completed
133
- - [ ] (R) Production readiness review approved
132
+ - [x ] (R) Production readiness review completed
133
+ - [x ] (R) Production readiness review approved
134
134
- [x] "Implementation History" section is up-to-date for milestone
135
- - [ ] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
136
- - [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
135
+ - [x ] User-facing documentation has been created in [ kubernetes/website] , for publication to [ kubernetes.io]
136
+ - [x ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
137
137
138
138
<!--
139
139
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
@@ -349,7 +349,7 @@ type PodAffinityTerm struct {
349
349
// The term is applied to the union of the namespaces selected by this field
350
350
// and the ones listed in the namespaces field.
351
351
// nil selector and empty namespaces list means "this pod's namespace"
352
- // An empty selector ({}) is not valid .
352
+ // An empty selector ({}) means all namespaces .
353
353
NamespaceSelector *metav1.LabelSelector
354
354
}
355
355
` ` `
@@ -399,7 +399,14 @@ proposal will be implemented, this is the place to discuss them.
399
399
- Benchmark Tests :
400
400
- evaluate performance for the case where the selector matches a large number of pods
401
401
in large number of namespaces. The evaluation shows that using NamespaceSelector has no
402
- impact on performance (see https://github.com/kubernetes/kubernetes/pull/101329 for details).
402
+ impact on performance, summarized as follows :
403
+ - compares affinity performance without namespace selector
404
+ of a workload that puts all pods in one namespace vs splitting them across 100 namespaces
405
+ and using namespace selector
406
+ - tests both required and preferred, and for each affinity and anti-affinity
407
+ - measures the performance (latency and throughput) of scheduling 1000 pods on
408
+ 5k nodes with 5k existing pods (4k in case of required anti-affinity)
409
+ - (see https://github.com/kubernetes/kubernetes/pull/101329 for details).
403
410
404
411
<!--
405
412
**Note:** *Not required until targeted at a release.*
@@ -583,6 +590,25 @@ _This section must be completed when targeting beta graduation to a release._
583
590
* **How can an operator determine if the feature is in use by workloads?**
584
591
The operator can query pods with the NamespaceSelector field set in pod affinity terms.
585
592
593
+ * **How can someone using this feature know that it is working for their instance?**
594
+ <!--
595
+ For instance, if this is a pod-related feature, it should be possible to determine if the feature is functioning properly
596
+ for each individual pod.
597
+ Pick one more of these and delete the rest.
598
+ Please describe all items visible to end users below with sufficient detail so that they can verify correct enablement
599
+ and operation of this feature.
600
+ Recall that end users cannot usually observe component logs or access metrics.
601
+ -->
602
+
603
+ - [x] Other (treat as last resort)
604
+ - Details : inter-pod affinity as a feature doesn't trigger pod status updates on its own,
605
+ none of the scheduler's filters/scores do on their own. If a pod using affinity
606
+ was successfully assigned a node, nodeName will be updated, if not, then
607
+ PodScheduled condition will be false, and an event will be recorded with a detailed
608
+ message describing the reason including the failed filters (inter-pod affnity could
609
+ be one of them).
610
+
611
+
586
612
* **What are the SLIs (Service Level Indicators) an operator can use to determine
587
613
the health of the service?**
588
614
- [x] Metrics
@@ -686,6 +712,7 @@ information to express the idea and why it was not acceptable.
686
712
- 2021-01-11 : Initial KEP sent for review
687
713
- 2021-02-10 : Remove the restriction on empty namespace selector
688
714
- 2021-04-26 : Graduate the feature to Beta
715
+ - 2022-01-08 : Graduate the feature to Stable
689
716
690
717
<!--
691
718
Major milestones in the lifecycle of a KEP should be tracked in this section.
0 commit comments