mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Merge pull request #29246 from Random-Liu/fix-image-remove-bug
Automatic merge from submit-queue Kubelet: Set PruneChildren when removing image. This is a bug introduced during switching to engine-api. https://github.com/kubernetes/kubernetes/issues/23563. When removing image, there is an option `noprune`: ``` If prune is true, ancestor images will each attempt to be deleted quietly. ``` In go-dockerclient, the default value of the option is ["noprune=false"](https://github.com/fsouza/go-dockerclient/blob/master/image.go#L171), which means that ancestor images should be also removed. This is the expected behaviour. However in engine-api, the option is changed to `PruneChildren`, and the default value is `PruneChildren=false`, which means that ancestor images won't be removed. This makes `ImageRemove` only remove the first layer of the image, which causes the image garbage collection not working as expected. This should be fixed in 1.3. And thanks to @ronnielai for finding the bug! :) /cc @kubernetes/sig-node
This commit is contained in:
commit
e2a697db47
@ -863,7 +863,7 @@ func (dm *DockerManager) IsImagePresent(image kubecontainer.ImageSpec) (bool, er
|
||||
// Removes the specified image.
|
||||
func (dm *DockerManager) RemoveImage(image kubecontainer.ImageSpec) error {
|
||||
// TODO(harryz) currently Runtime interface does not provide other remove options.
|
||||
_, err := dm.client.RemoveImage(image.Image, dockertypes.ImageRemoveOptions{})
|
||||
_, err := dm.client.RemoveImage(image.Image, dockertypes.ImageRemoveOptions{PruneChildren: true})
|
||||
return err
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user