diff --git a/pkg/kubelet/kuberuntime/kuberuntime_manager.go b/pkg/kubelet/kuberuntime/kuberuntime_manager.go index a20c46fb5df..f723040c418 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_manager.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_manager.go @@ -925,7 +925,6 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * } case v1.ResourceMemory: if !setLimitValue { - // Memory requests aren't written to cgroups. return nil } resizedResources.Memory = podResources.Memory @@ -951,11 +950,6 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * // Update our tracking of the current state. currentPodResources = mergedPodResources - if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodLevelResourcesVerticalScaling) { - if err = updateActuatedPodLevelResources(rName); err != nil { - logger.Error(err, "Failed to update pod-level actuated resources", "resource", rName, "pod", klog.KObj(pod)) - } - } return nil } @@ -984,6 +978,7 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * return err } } + // At downsizing, requests should shrink prior to limits in order to keep "requests <= limits". if newPodCgReqValue < currPodCgReqValue { // TODO: Pass logger from context once contextual logging migration is complete @@ -997,6 +992,12 @@ func (m *kubeGenericRuntimeManager) doPodResizeAction(ctx context.Context, pod * return err } } + + if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodLevelResourcesVerticalScaling) && podContainerChanges.UpdatePodLevelResources { + if err = updateActuatedPodLevelResources(rName); err != nil { + logger.Error(err, "Failed to update pod-level actuated resources", "resource", rName, "pod", klog.KObj(pod)) + } + } return err }