From e6ba49a1af18708daed9ad52135eeb213829e21f Mon Sep 17 00:00:00 2001 From: chemavx Date: Wed, 12 Aug 2026 20:17:09 +0000 Subject: [PATCH] gitea-runner: el janitor deja el uso del volumen en su log MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tras el desalojo del 2026-08-12 no quedaba nada que mirar: el emptyDir muere con el pod, así que la causa hubo que deducirla por descarte. Ahora el janitor mide /dind (montado en solo lectura) antes y después de cada barrido y lo escribe en su log, cada 6h. La próxima vez habrá curva de crecimiento medida en vez de conjeturas. No se usa Prometheus porque no puede verlo: kubelet_volume_stats_* solo emite series para PVCs y container_fs_usage_bytes viene vacío en k3s. Co-Authored-By: Claude Opus 5 --- gitea/deployment-gitea-runner.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gitea/deployment-gitea-runner.yaml b/gitea/deployment-gitea-runner.yaml index 1b70cf0..772ae0e 100644 --- a/gitea/deployment-gitea-runner.yaml +++ b/gitea/deployment-gitea-runner.yaml @@ -109,11 +109,20 @@ spec: # anterior (1,5G) queda colgada y nadie la borra. # prune SIN -a a propósito: borra solo las dangling, jamás una imagen con tag, # así que no vacía la caché de act ni la de buildkit y los builds no se frenan. + # Además deja el uso del volumen en su propio log cada vuelta. El emptyDir + # muere con el pod, así que tras un desalojo no queda nada que inspeccionar: + # el 2026-08-12 hubo que deducir la causa por descarte. Con esto, la próxima + # vez `kubectl logs -c janitor` da la curva de crecimiento ya medida. + # Prometheus no vale para esto: kubelet_volume_stats_* solo cubre PVCs. - args: - | + sleep 30 while true; do + antes=$(du -sm /dind 2>/dev/null | cut -f1) + docker image prune -f >/dev/null 2>&1 || true + ahora=$(du -sm /dind 2>/dev/null | cut -f1) + echo "[janitor] $(date -Iseconds) dind ${ahora}MB de 10240MB (antes del barrido ${antes}MB)" sleep 21600 - docker image prune -f || true done command: - /bin/sh @@ -131,6 +140,10 @@ spec: requests: cpu: 10m memory: 32Mi + volumeMounts: + - mountPath: /dind + name: dind-storage + readOnly: true dnsPolicy: ClusterFirst nodeSelector: kubernetes.io/hostname: chemavx-k8