@@ -31,6 +31,7 @@ import (
31
31
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
32
32
"k8s.io/apimachinery/pkg/util/uuid"
33
33
clientset "k8s.io/client-go/kubernetes"
34
+ v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos"
34
35
priorityutil "k8s.io/kubernetes/pkg/scheduler/algorithm/priorities/util"
35
36
"k8s.io/kubernetes/test/e2e/common"
36
37
"k8s.io/kubernetes/test/e2e/framework"
@@ -326,6 +327,10 @@ func computeCpuMemFraction(cs clientset.Interface, node v1.Node, resource *v1.Re
326
327
for _ , pod := range allpods .Items {
327
328
if pod .Spec .NodeName == node .Name {
328
329
framework .Logf ("Pod for on the node: %v, Cpu: %v, Mem: %v" , pod .Name , getNonZeroRequests (& pod ).MilliCPU , getNonZeroRequests (& pod ).Memory )
330
+ // Ignore best effort pods while computing fractions as they won't be taken in account by scheduler.
331
+ if v1qos .GetPodQOS (& pod ) == v1 .PodQOSBestEffort {
332
+ continue
333
+ }
329
334
totalRequestedCpuResource += getNonZeroRequests (& pod ).MilliCPU
330
335
totalRequestedMemResource += getNonZeroRequests (& pod ).Memory
331
336
}
@@ -334,11 +339,18 @@ func computeCpuMemFraction(cs clientset.Interface, node v1.Node, resource *v1.Re
334
339
Expect (found ).To (Equal (true ))
335
340
cpuAllocatableMil := cpuAllocatable .MilliValue ()
336
341
342
+ floatOne := float64 (1 )
337
343
cpuFraction := float64 (totalRequestedCpuResource ) / float64 (cpuAllocatableMil )
344
+ if cpuFraction > floatOne {
345
+ cpuFraction = floatOne
346
+ }
338
347
memAllocatable , found := node .Status .Allocatable [v1 .ResourceMemory ]
339
348
Expect (found ).To (Equal (true ))
340
349
memAllocatableVal := memAllocatable .Value ()
341
350
memFraction := float64 (totalRequestedMemResource ) / float64 (memAllocatableVal )
351
+ if memFraction > floatOne {
352
+ memFraction = floatOne
353
+ }
342
354
343
355
framework .Logf ("Node: %v, totalRequestedCpuResource: %v, cpuAllocatableMil: %v, cpuFraction: %v" , node .Name , totalRequestedCpuResource , cpuAllocatableMil , cpuFraction )
344
356
framework .Logf ("Node: %v, totalRequestedMemResource: %v, memAllocatableVal: %v, memFraction: %v" , node .Name , totalRequestedMemResource , memAllocatableVal , memFraction )
0 commit comments