api: change list type for node lists in PodSchedulingContext

The "set" list type was chosen because it seemed appropriate (no duplicates!)
but that made tracking of managed fields more expensive (each entry in the list
is tracked, not the entire field) and for no good reason (one client is
responsible for the entire list).

Therefore the type gets changed to "atomic". Server-side-apply has not been
used in the past and PodSchedulingContext objects are short-lived and still in
alpha, so the any potential compatibility issues should be minor.

The scheduling throughput in scheduler_perf increases:

    name                                                                      old SchedulingThroughput/Average     new SchedulingThroughput/Average
    PerfScheduling/SchedulingWithResourceClaimTemplate/2000pods_100nodes-36   18.8 ± 8%                            24.0 ±37%
    PerfScheduling/SchedulingWithMultipleResourceClaims/2000pods_100nodes-36  13.7 ±81%                            18.5 ±40%

Kubernetes-commit: 5567f288e745db05d88fc60e15915f8b0d1f6c4b
This commit is contained in:
Patrick Ohly 2023-08-15 09:55:57 +02:00 committed by Kubernetes Publisher
parent e8815ff156
commit cb120b63f7

View File

@ -11693,7 +11693,7 @@ var schemaYAML = typed.YAMLObject(`types:
list:
elementType:
scalar: string
elementRelationship: associative
elementRelationship: atomic
- name: selectedNode
type:
scalar: string
@ -11772,7 +11772,7 @@ var schemaYAML = typed.YAMLObject(`types:
list:
elementType:
scalar: string
elementRelationship: associative
elementRelationship: atomic
- name: io.k8s.api.resource.v1alpha2.ResourceClaimSpec
map:
fields: