Skip to content

Commit 1ec1ef3

Browse files
committed
kubelet: Fix order of resizing pod cgroups in doPodResizeAction()
1 parent f44f7b7 commit 1ec1ef3

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

pkg/kubelet/kuberuntime/kuberuntime_manager.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,7 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(pod *v1.Pod, podStatus *ku
696696
// If an error occurs at any point, abort. Let future syncpod iterations retry the unfinished stuff.
697697
resizeContainers := func(rName v1.ResourceName, currPodCgLimValue, newPodCgLimValue, currPodCgReqValue, newPodCgReqValue int64) error {
698698
var err error
699+
// At upsizing, limits should expand prior to requests in order to keep "requests <= limits".
699700
if newPodCgLimValue > currPodCgLimValue {
700701
if err = setPodCgroupConfig(rName, true); err != nil {
701702
return err
@@ -712,14 +713,17 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(pod *v1.Pod, podStatus *ku
712713
return err
713714
}
714715
}
715-
if newPodCgLimValue < currPodCgLimValue {
716-
err = setPodCgroupConfig(rName, true)
717-
}
716+
// At downsizing, requests should shrink prior to limits in order to keep "requests <= limits".
718717
if newPodCgReqValue < currPodCgReqValue {
719718
if err = setPodCgroupConfig(rName, false); err != nil {
720719
return err
721720
}
722721
}
722+
if newPodCgLimValue < currPodCgLimValue {
723+
if err = setPodCgroupConfig(rName, true); err != nil {
724+
return err
725+
}
726+
}
723727
return err
724728
}
725729
if len(podContainerChanges.ContainersToUpdate[v1.ResourceMemory]) > 0 || podContainerChanges.UpdatePodResources {

0 commit comments

Comments
 (0)