Kubernetes: How to automatically clean up unused images

10/28/2019

Due to some internal issues, we need to remove unused images as soon as they become unused.
I do know it's possible to use Garbage collection but it doesn't offer strict policy as we need. I've come across this solution but

  1. it's deprecated
  2. it also removes containers and possible mounted volumes

I was thinking about setting a cron job directly over the nodes to run docker prune but I hope there is a better way

No idea if it makes a difference but we are using AKS

-- SagiLow
azure-aks
docker
kubernetes

1 Answer

10/28/2019

This doesn't really accomplish much since things will be re-downloaded if they are requested again. But if you insist on a silly thing, best bet is a DaemonSet that runs with the host docker control socket hostPath-mounted in and runs docker system prune as you mentioned. You can't use a cron job so you need to write the loop yourself, probably just bash -c 'while true; do docker system prune && sleep 3600; done' or something.

-- coderanger
Source: StackOverflow