Merge pull request #125708 from hshiina/dopodresizeaction-error

[FG:InPlacePodVerticalScaling] Fix order of resizing pod cgroups in doPodResizeAction()
This commit is contained in:
Kubernetes Prow Robot
2024-10-30 01:21:25 +00:00
committed by GitHub

View File

@@ -684,6 +684,7 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(pod *v1.Pod, podStatus *ku
// If an error occurs at any point, abort. Let future syncpod iterations retry the unfinished stuff. // If an error occurs at any point, abort. Let future syncpod iterations retry the unfinished stuff.
resizeContainers := func(rName v1.ResourceName, currPodCgLimValue, newPodCgLimValue, currPodCgReqValue, newPodCgReqValue int64) error { resizeContainers := func(rName v1.ResourceName, currPodCgLimValue, newPodCgLimValue, currPodCgReqValue, newPodCgReqValue int64) error {
var err error var err error
// At upsizing, limits should expand prior to requests in order to keep "requests <= limits".
if newPodCgLimValue > currPodCgLimValue { if newPodCgLimValue > currPodCgLimValue {
if err = setPodCgroupConfig(rName, true); err != nil { if err = setPodCgroupConfig(rName, true); err != nil {
return err return err
@@ -700,14 +701,17 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(pod *v1.Pod, podStatus *ku
return err return err
} }
} }
if newPodCgLimValue < currPodCgLimValue { // At downsizing, requests should shrink prior to limits in order to keep "requests <= limits".
err = setPodCgroupConfig(rName, true)
}
if newPodCgReqValue < currPodCgReqValue { if newPodCgReqValue < currPodCgReqValue {
if err = setPodCgroupConfig(rName, false); err != nil { if err = setPodCgroupConfig(rName, false); err != nil {
return err return err
} }
} }
if newPodCgLimValue < currPodCgLimValue {
if err = setPodCgroupConfig(rName, true); err != nil {
return err
}
}
return err return err
} }
if len(podContainerChanges.ContainersToUpdate[v1.ResourceMemory]) > 0 || podContainerChanges.UpdatePodResources { if len(podContainerChanges.ContainersToUpdate[v1.ResourceMemory]) > 0 || podContainerChanges.UpdatePodResources {