mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
keeping the qos code as-is for the existing case when pod-level resources are not set
Signed-off-by: ndixita <ndixita@google.com>
This commit is contained in:
parent
b78f6e2fcc
commit
b30e6c8b0e
@ -113,11 +113,39 @@ func ComputePodQOS(pod *core.Pod) core.PodQOSClass {
|
|||||||
allContainers = append(allContainers, pod.Spec.InitContainers...)
|
allContainers = append(allContainers, pod.Spec.InitContainers...)
|
||||||
for _, container := range allContainers {
|
for _, container := range allContainers {
|
||||||
// process requests
|
// process requests
|
||||||
processResourceList(requests, container.Resources.Requests)
|
for name, quantity := range container.Resources.Requests {
|
||||||
|
if !isSupportedQoSComputeResource(name) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if quantity.Cmp(zeroQuantity) == 1 {
|
||||||
|
delta := quantity.DeepCopy()
|
||||||
|
if _, exists := requests[name]; !exists {
|
||||||
|
requests[name] = delta
|
||||||
|
} else {
|
||||||
|
delta.Add(requests[name])
|
||||||
|
requests[name] = delta
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// process limits
|
// process limits
|
||||||
processResourceList(limits, container.Resources.Limits)
|
qosLimitsFound := sets.NewString()
|
||||||
qosLimitResources := getQOSResources(container.Resources.Limits)
|
for name, quantity := range container.Resources.Limits {
|
||||||
if !qosLimitResources.HasAll(string(core.ResourceMemory), string(core.ResourceCPU)) {
|
if !isSupportedQoSComputeResource(name) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if quantity.Cmp(zeroQuantity) == 1 {
|
||||||
|
qosLimitsFound.Insert(string(name))
|
||||||
|
delta := quantity.DeepCopy()
|
||||||
|
if _, exists := limits[name]; !exists {
|
||||||
|
limits[name] = delta
|
||||||
|
} else {
|
||||||
|
delta.Add(limits[name])
|
||||||
|
limits[name] = delta
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !qosLimitsFound.HasAll(string(core.ResourceMemory), string(core.ResourceCPU)) {
|
||||||
isGuaranteed = false
|
isGuaranteed = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -116,11 +116,39 @@ func ComputePodQOS(pod *v1.Pod) v1.PodQOSClass {
|
|||||||
allContainers = append(allContainers, pod.Spec.InitContainers...)
|
allContainers = append(allContainers, pod.Spec.InitContainers...)
|
||||||
for _, container := range allContainers {
|
for _, container := range allContainers {
|
||||||
// process requests
|
// process requests
|
||||||
processResourceList(requests, container.Resources.Requests)
|
for name, quantity := range container.Resources.Requests {
|
||||||
|
if !isSupportedQoSComputeResource(name) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if quantity.Cmp(zeroQuantity) == 1 {
|
||||||
|
delta := quantity.DeepCopy()
|
||||||
|
if _, exists := requests[name]; !exists {
|
||||||
|
requests[name] = delta
|
||||||
|
} else {
|
||||||
|
delta.Add(requests[name])
|
||||||
|
requests[name] = delta
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// process limits
|
// process limits
|
||||||
processResourceList(limits, container.Resources.Limits)
|
qosLimitsFound := sets.NewString()
|
||||||
qosLimitResources := getQOSResources(container.Resources.Limits)
|
for name, quantity := range container.Resources.Limits {
|
||||||
if !qosLimitResources.HasAll(string(v1.ResourceMemory), string(v1.ResourceCPU)) {
|
if !isSupportedQoSComputeResource(name) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if quantity.Cmp(zeroQuantity) == 1 {
|
||||||
|
qosLimitsFound.Insert(string(name))
|
||||||
|
delta := quantity.DeepCopy()
|
||||||
|
if _, exists := limits[name]; !exists {
|
||||||
|
limits[name] = delta
|
||||||
|
} else {
|
||||||
|
delta.Add(limits[name])
|
||||||
|
limits[name] = delta
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !qosLimitsFound.HasAll(string(v1.ResourceMemory), string(v1.ResourceCPU)) {
|
||||||
isGuaranteed = false
|
isGuaranteed = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user