You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Yes. there is an additional work: the scheduler will use the keys in `matchLabelKeys` to look up label values from the pod and AND with `LabelSelector`.
925
-
Maybe result in a very samll impact in scheduling latency which directly contributes to pod-startup-latency SLO.
934
+
Yes. there is an additional work:
935
+
kube-apiserver uses the keys in `matchLabelKeys` to look up label values from the pod,
936
+
and change `LabelSelector` according to them.
937
+
kube-scheduler also looks up the label values from the pod and checks if those labels
938
+
are included in `LabelSelector`. If not, kube-scheduler will take those labels and AND
939
+
with `LabelSelector`.
940
+
The impact in the latency of pod creation request in kube-apiserver and kube-scheduler
941
+
should be negligible.
926
942
927
943
###### Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?
928
944
@@ -962,7 +978,7 @@ details). For now, we leave it here.
962
978
963
979
###### How does this feature react if the API server and/or etcd is unavailable?
964
980
If the API server and/or etcd is not available, this feature will not be available.
965
-
This is because the scheduler needs to update the scheduling results to the pod via the API server/etcd.
981
+
This is because the kube-scheduler needs to update the scheduling results to the pod via the API server/etcd.
966
982
967
983
###### What are other known failure modes?
968
984
@@ -988,7 +1004,7 @@ N/A
988
1004
- Check the metric `schedule_attempts_total{result="error|unschedulable"}` to determine if the number
989
1005
of attempts increased. If increased, You need to determine the cause of the failure by the event of
990
1006
the pod. If it's caused by plugin `PodTopologySpread`, You can further analyze this problem by looking
991
-
at the scheduler log.
1007
+
at the kube-scheduler log.
992
1008
993
1009
994
1010
## Implementation History
@@ -1021,11 +1037,20 @@ not need to be as detailed as the proposal, but should include enough
1021
1037
information to express the idea and why it was not acceptable.
1022
1038
-->
1023
1039
1040
+
### use pod generateName
1024
1041
Use `pod.generateName` to distinguish new/old pods that belong to the
1025
1042
revisions of the same workload in scheduler plugin. It's decided not to
1026
1043
support because of the following reason: scheduler needs to ensure universal
1027
1044
and scheduler plugin shouldn't have special treatment for any labels/fields.
1028
1045
1046
+
### remove MatchLabelKeys implementation from the scheduler plugin
1047
+
Remove this implementation related to `MatchLabelKeys` from the scheduler plugin
1048
+
and only kube-apiserver handles `MatchLabelKeys` and updates `LabelSelector`.
1049
+
1050
+
However, this idea is rejected because:
1051
+
- This approach prevents the achievement of the Cluster-level default constraints by `matchLabelKeys: ["pod-template-hash"]`.([#129198](https://github.com/kubernetes/kubernetes/issues/129198)) because kube-apiserver can't be aware of the kube-scheduler configuration.
1052
+
- The current implementation of the scheduler plugin is simple, and the risk of increased maintenance overhead is low.
0 commit comments