Added a scheduled Kubernetes CronJob named containerd-image-prune in namespace autocoder-engine to prune unused CRI images from the single production node.
Disk investigation showed significant node storage consumption under /var/lib/containerd, including retained historical immutable deployment images and unpacked snapshots. The goal is prevention of future accumulation, not a one-time cleanup.
k8s/09-containerd-image-prune-cronjob.yamlk8s/overlays/with-cronjobs/kustomization.yamlCronJob/containerd-image-pruneautocoder-engine30 2 * * *crictl --runtime-endpoint unix:///run/containerd/containerd.sock --image-endpoint unix:///run/containerd/containerd.sock rmi --prune/run/containerd/containerd.sock/usr/bin/crictlkubectl kustomize --load-restrictor=LoadRestrictionsNone k8s/overlays/with-cronjobs rendered successfully.kubectl get cronjob containerd-image-prune -n autocoder-engine confirmed the object exists and is not suspended.A one-time job was created from the CronJob on 2026-05-04:
containerd-image-prune-manual-20260504-1029Complete, 1/1, duration 6s166G used, 74G available, 70% used97G used, 142G available, 41% usedautocoder-engine and bodylog.dev images/var/lib/containerd: about 59G2.8G36GThe job log included multiple DeadlineExceeded messages from crictl while removing image references, but the Kubernetes Job completed successfully and the node storage usage dropped substantially.
The scheduled CronJob remains enabled and will run daily at 02:30.