Merge pull request #85856 from adelina-t/cpu_requests_fix_ctrd

Fix Cpu Requests priority Windows.
This commit is contained in:
Kubernetes Prow Robot 2020-02-07 15:19:58 -08:00 committed by GitHub
commit d8b325b534
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -28,6 +28,8 @@ import (
kubefeatures "k8s.io/kubernetes/pkg/features"
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
"k8s.io/kubernetes/pkg/securitycontext"
"k8s.io/klog"
)
// applyPlatformSpecificContainerConfig applies platform specific configurations to runtimeapi.ContainerConfig.
@ -82,6 +84,28 @@ func (m *kubeGenericRuntimeManager) generateWindowsContainerConfig(container *v1
}
wc.Resources.CpuShares = cpuShares
if !isolatedByHyperv {
// The processor resource controls are mutually exclusive on
// Windows Server Containers, the order of precedence is
// CPUCount first, then CPUShares, and CPUMaximum last.
if wc.Resources.CpuCount > 0 {
if wc.Resources.CpuShares > 0 {
wc.Resources.CpuShares = 0
klog.Warningf("Mutually exclusive options: CPUCount priority > CPUShares priority on Windows Server Containers. CPUShares should be ignored")
}
if wc.Resources.CpuMaximum > 0 {
wc.Resources.CpuMaximum = 0
klog.Warningf("Mutually exclusive options: CPUCount priority > CPUMaximum priority on Windows Server Containers. CPUMaximum should be ignored")
}
} else if wc.Resources.CpuShares > 0 {
if wc.Resources.CpuMaximum > 0 {
wc.Resources.CpuMaximum = 0
klog.Warningf("Mutually exclusive options: CPUShares priority > CPUMaximum priority on Windows Server Containers. CPUMaximum should be ignored")
}
}
}
memoryLimit := container.Resources.Limits.Memory().Value()
if memoryLimit != 0 {
wc.Resources.MemoryLimitInBytes = memoryLimit