From a6055b5c26e1dba291c36c104d86c27b38ed7c01 Mon Sep 17 00:00:00 2001 From: ravisantoshgudimetla Date: Fri, 29 Mar 2019 17:56:42 -0400 Subject: [PATCH 1/3] Fix usage priority fraction --- test/e2e/scheduling/priorities.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/e2e/scheduling/priorities.go b/test/e2e/scheduling/priorities.go index b395a39f102..c6e96bb7eaa 100644 --- a/test/e2e/scheduling/priorities.go +++ b/test/e2e/scheduling/priorities.go @@ -334,11 +334,18 @@ func computeCpuMemFraction(cs clientset.Interface, node v1.Node, resource *v1.Re Expect(found).To(Equal(true)) cpuAllocatableMil := cpuAllocatable.MilliValue() + floatOne := float64(1) cpuFraction := float64(totalRequestedCpuResource) / float64(cpuAllocatableMil) + if cpuFraction > floatOne { + cpuFraction = floatOne + } memAllocatable, found := node.Status.Allocatable[v1.ResourceMemory] Expect(found).To(Equal(true)) memAllocatableVal := memAllocatable.Value() memFraction := float64(totalRequestedMemResource) / float64(memAllocatableVal) + if memFraction > floatOne { + memFraction = floatOne + } framework.Logf("Node: %v, totalRequestedCpuResource: %v, cpuAllocatableMil: %v, cpuFraction: %v", node.Name, totalRequestedCpuResource, cpuAllocatableMil, cpuFraction) framework.Logf("Node: %v, totalRequestedMemResource: %v, memAllocatableVal: %v, memFraction: %v", node.Name, totalRequestedMemResource, memAllocatableVal, memFraction) From 346f97c0485d7d56b40039799f53944cc7d261ad Mon Sep 17 00:00:00 2001 From: ravisantoshgudimetla Date: Fri, 29 Mar 2019 18:35:31 -0400 Subject: [PATCH 2/3] Ignore BE pods while evaluating --- test/e2e/scheduling/priorities.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/e2e/scheduling/priorities.go b/test/e2e/scheduling/priorities.go index c6e96bb7eaa..a38e711f5db 100644 --- a/test/e2e/scheduling/priorities.go +++ b/test/e2e/scheduling/priorities.go @@ -36,6 +36,7 @@ import ( "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" imageutils "k8s.io/kubernetes/test/utils/image" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" ) type Resource struct { @@ -326,6 +327,10 @@ func computeCpuMemFraction(cs clientset.Interface, node v1.Node, resource *v1.Re for _, pod := range allpods.Items { if pod.Spec.NodeName == node.Name { framework.Logf("Pod for on the node: %v, Cpu: %v, Mem: %v", pod.Name, getNonZeroRequests(&pod).MilliCPU, getNonZeroRequests(&pod).Memory) + // Ignore best effort pods while computing fractions as they won't be taken in account by scheduler. + if v1qos.GetPodQOS(&pod) == v1.PodQOSBestEffort { + continue + } totalRequestedCpuResource += getNonZeroRequests(&pod).MilliCPU totalRequestedMemResource += getNonZeroRequests(&pod).Memory } From 074bbb04344c00cd3ea06901076b0cce4bb892c0 Mon Sep 17 00:00:00 2001 From: ravisantoshgudimetla Date: Fri, 29 Mar 2019 18:36:44 -0400 Subject: [PATCH 3/3] Build file --- test/e2e/scheduling/BUILD | 1 + test/e2e/scheduling/priorities.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/test/e2e/scheduling/BUILD b/test/e2e/scheduling/BUILD index cb6f9752fed..8f934fb2ff1 100644 --- a/test/e2e/scheduling/BUILD +++ b/test/e2e/scheduling/BUILD @@ -20,6 +20,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/apis/core:go_default_library", + "//pkg/apis/core/v1/helper/qos:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/scheduling:go_default_library", "//pkg/scheduler/algorithm/priorities/util:go_default_library", diff --git a/test/e2e/scheduling/priorities.go b/test/e2e/scheduling/priorities.go index a38e711f5db..1a12e0ca9e7 100644 --- a/test/e2e/scheduling/priorities.go +++ b/test/e2e/scheduling/priorities.go @@ -31,12 +31,12 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" clientset "k8s.io/client-go/kubernetes" + v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" priorityutil "k8s.io/kubernetes/pkg/scheduler/algorithm/priorities/util" "k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/framework" testutils "k8s.io/kubernetes/test/utils" imageutils "k8s.io/kubernetes/test/utils/image" - v1qos "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" ) type Resource struct { @@ -341,7 +341,7 @@ func computeCpuMemFraction(cs clientset.Interface, node v1.Node, resource *v1.Re floatOne := float64(1) cpuFraction := float64(totalRequestedCpuResource) / float64(cpuAllocatableMil) - if cpuFraction > floatOne { + if cpuFraction > floatOne { cpuFraction = floatOne } memAllocatable, found := node.Status.Allocatable[v1.ResourceMemory]