Commit 1eddab33 authored by David Ashpole's avatar David Ashpole

remove containers of deleted pods once all containers have exited

parent 884c6f91
...@@ -2152,8 +2152,10 @@ func (kl *Kubelet) cleanUpContainersInPod(podID types.UID, exitedContainerID str ...@@ -2152,8 +2152,10 @@ func (kl *Kubelet) cleanUpContainersInPod(podID types.UID, exitedContainerID str
if podStatus, err := kl.podCache.Get(podID); err == nil { if podStatus, err := kl.podCache.Get(podID); err == nil {
removeAll := false removeAll := false
if syncedPod, ok := kl.podManager.GetPodByUID(podID); ok { if syncedPod, ok := kl.podManager.GetPodByUID(podID); ok {
// When an evicted pod has already synced, all containers can be removed. // generate the api status using the cached runtime status to get up-to-date ContainerStatuses
removeAll = eviction.PodIsEvicted(syncedPod.Status) apiPodStatus := kl.generateAPIPodStatus(syncedPod, podStatus)
// When an evicted or deleted pod has already synced, all containers can be removed.
removeAll = eviction.PodIsEvicted(syncedPod.Status) || (syncedPod.DeletionTimestamp != nil && notRunning(apiPodStatus.ContainerStatuses))
} }
kl.containerDeletor.deleteContainersInPod(exitedContainerID, podStatus, removeAll) kl.containerDeletor.deleteContainersInPod(exitedContainerID, podStatus, removeAll)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment