GitLab Garbage Collection
Die GitLab Container Registry kann eine beträchtliche Menge an Speicherplatz auf Ihrem GitLab-Server beanspruchen. Um den durch die Container Registry verbrauchten Speicherplatz effektiv freizugeben, enthält GitLab einen Garbage Collector. Mit dem Garbage Collector können nicht referenzierte Image Layer, als auch Manifeste ohne Tags vollautomatisch entfernt werden.
Garbage Collection manuell durchführen
Nicht referenzierte Ebenen entfernen
Image-Layer machen den größten Teil des Speicherplatzes in der Containerregistrierung aus. Ein Image gilt als nicht referenziert, wenn kein Image-Manifest auf sie verweist. Nicht referenzierte Layer sind das Standardziel des Garbage Collectors der Container-Registry.
sudo gitlab-ctl registry-garbage-collect
Entfernen von nicht gekennzeichneten Manifesten und nicht referenzierten Layern
Standardmäßig ignoriert der Garbage Collector der Containerregistrierung nicht gekennzeichnete Images. Um nicht gekennzeichnete Images per Garbage Collection zu entfernen, kann dem Befehl der Parameter -m
hinzugefügt werden.
sudo gitlab-ctl registry-garbage-collect -m
Garbage Collection vollautomatisch per Cronjob einrichten
Um die Garbage Collection vollautomatisch per zeitgesteuerter Aufgabe durchführen zu lassen, können Sie einen entsprechender Cronjob für Ihren Systembenutzer auf Ihrem GitLab-Server hinterlegen.
Cronjob Editor öffnen
crontab -e
Cronjob zur vollautomatischen Garbage Collection anlegen
Mit folgendem Cronjob wird die Garbage Collection täglich um 0.00 Uhr durchgeführt.
Bitte ersetzen Sie im folgenden Befehl
Da der Crontab Service über keine Bash Environments verfügt, muss im Cronjob der absolute Pfad zur Binary angeben werden /usr/bin/gitlab-ctl
, anstelle von gitlab-ctl
.
0 0 * * * sudo /usr/bin/gitlab-ctl registry-garbage-collect -m 2>&1 | /usr/bin/logger -t GITLAB
Logs überprüfen:
journalctl -f -t GITLAB