diff --git a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go index 52dc35dc9c8..0d8b2e94f26 100644 --- a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go +++ b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go @@ -90,7 +90,6 @@ type podStateProvider interface { func NewDesiredStateOfWorldPopulator( kubeClient clientset.Interface, loopSleepDuration time.Duration, - getPodStatusRetryDuration time.Duration, podManager pod.Manager, podStateProvider podStateProvider, desiredStateOfWorld cache.DesiredStateOfWorld, @@ -101,13 +100,12 @@ func NewDesiredStateOfWorldPopulator( intreeToCSITranslator csimigration.InTreeToCSITranslator, volumePluginMgr *volume.VolumePluginMgr) DesiredStateOfWorldPopulator { return &desiredStateOfWorldPopulator{ - kubeClient: kubeClient, - loopSleepDuration: loopSleepDuration, - getPodStatusRetryDuration: getPodStatusRetryDuration, - podManager: podManager, - podStateProvider: podStateProvider, - desiredStateOfWorld: desiredStateOfWorld, - actualStateOfWorld: actualStateOfWorld, + kubeClient: kubeClient, + loopSleepDuration: loopSleepDuration, + podManager: podManager, + podStateProvider: podStateProvider, + desiredStateOfWorld: desiredStateOfWorld, + actualStateOfWorld: actualStateOfWorld, pods: processedPods{ processedPods: make(map[volumetypes.UniquePodName]bool)}, kubeContainerRuntime: kubeContainerRuntime, @@ -121,22 +119,20 @@ func NewDesiredStateOfWorldPopulator( } type desiredStateOfWorldPopulator struct { - kubeClient clientset.Interface - loopSleepDuration time.Duration - getPodStatusRetryDuration time.Duration - podManager pod.Manager - podStateProvider podStateProvider - desiredStateOfWorld cache.DesiredStateOfWorld - actualStateOfWorld cache.ActualStateOfWorld - pods processedPods - kubeContainerRuntime kubecontainer.Runtime - timeOfLastGetPodStatus time.Time - keepTerminatedPodVolumes bool - hasAddedPods bool - hasAddedPodsLock sync.RWMutex - csiMigratedPluginManager csimigration.PluginManager - intreeToCSITranslator csimigration.InTreeToCSITranslator - volumePluginMgr *volume.VolumePluginMgr + kubeClient clientset.Interface + loopSleepDuration time.Duration + podManager pod.Manager + podStateProvider podStateProvider + desiredStateOfWorld cache.DesiredStateOfWorld + actualStateOfWorld cache.ActualStateOfWorld + pods processedPods + kubeContainerRuntime kubecontainer.Runtime + keepTerminatedPodVolumes bool + hasAddedPods bool + hasAddedPodsLock sync.RWMutex + csiMigratedPluginManager csimigration.PluginManager + intreeToCSITranslator csimigration.InTreeToCSITranslator + volumePluginMgr *volume.VolumePluginMgr } type processedPods struct { @@ -174,17 +170,6 @@ func (dswp *desiredStateOfWorldPopulator) HasAddedPods() bool { func (dswp *desiredStateOfWorldPopulator) populatorLoop() { dswp.findAndAddNewPods() - - // findAndRemoveDeletedPods() calls out to the container runtime to - // determine if the containers for a given pod are terminated. This is - // an expensive operation, therefore we limit the rate that - // findAndRemoveDeletedPods() is called independently of the main - // populator loop. - if time.Since(dswp.timeOfLastGetPodStatus) < dswp.getPodStatusRetryDuration { - klog.V(5).InfoS("Skipping findAndRemoveDeletedPods(). ", "nextRetryTime", dswp.timeOfLastGetPodStatus.Add(dswp.getPodStatusRetryDuration), "retryDuration", dswp.getPodStatusRetryDuration) - return - } - dswp.findAndRemoveDeletedPods() } diff --git a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go index 65dcc9d30a2..a33f4216bb4 100644 --- a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go +++ b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go @@ -1613,13 +1613,12 @@ func createDswpWithVolumeWithCustomPluginMgr(t *testing.T, pv *v1.PersistentVolu csiTranslator := csitrans.New() dswp := &desiredStateOfWorldPopulator{ - kubeClient: fakeClient, - loopSleepDuration: 100 * time.Millisecond, - getPodStatusRetryDuration: 2 * time.Second, - podManager: fakePodManager, - podStateProvider: fakeStateProvider, - desiredStateOfWorld: fakesDSW, - actualStateOfWorld: fakeASW, + kubeClient: fakeClient, + loopSleepDuration: 100 * time.Millisecond, + podManager: fakePodManager, + podStateProvider: fakeStateProvider, + desiredStateOfWorld: fakesDSW, + actualStateOfWorld: fakeASW, pods: processedPods{ processedPods: make(map[types.UniquePodName]bool)}, kubeContainerRuntime: fakeRuntime, diff --git a/pkg/kubelet/volumemanager/volume_manager.go b/pkg/kubelet/volumemanager/volume_manager.go index 460448ded18..7de1d03fbbe 100644 --- a/pkg/kubelet/volumemanager/volume_manager.go +++ b/pkg/kubelet/volumemanager/volume_manager.go @@ -61,12 +61,6 @@ const ( // DesiredStateOfWorldPopulator loop waits between successive executions desiredStateOfWorldPopulatorLoopSleepPeriod = 100 * time.Millisecond - // desiredStateOfWorldPopulatorGetPodStatusRetryDuration is the amount of - // time the DesiredStateOfWorldPopulator loop waits between successive pod - // cleanup calls (to prevent calling containerruntime.GetPodStatus too - // frequently). - desiredStateOfWorldPopulatorGetPodStatusRetryDuration = 2 * time.Second - // podAttachAndMountTimeout is the maximum amount of time the // WaitForAttachAndMount call will wait for all volumes in the specified pod // to be attached and mounted. Even though cloud operations can take several @@ -205,7 +199,6 @@ func NewVolumeManager( vm.desiredStateOfWorldPopulator = populator.NewDesiredStateOfWorldPopulator( kubeClient, desiredStateOfWorldPopulatorLoopSleepPeriod, - desiredStateOfWorldPopulatorGetPodStatusRetryDuration, podManager, podStateProvider, vm.desiredStateOfWorld,