Re: Tipps fürs Lifecylemanagement von Containerimages
"Stefan Majewsky" <[email protected]> Wed, 11 Mar 2026 22:37:51 +0000
| Newsgroups | gmane.user-groups.linux.dresden |
|---|---|
| Message-ID | <DH0BA58DKGLS.2MLQSNR5JBHBD@arcturus> |
Moin, On Wed Mar 11, 2026 at 9:52 PM CET, N. Schwirz wrote: > Welche Erfahrungen habt ihr bisher mit der Gestaltung von Lebenszyklen > von Images gemacht? Wenn Nutzer ein bestimmtes Containerimage mit > bestimmten Tags wollen, ist es ja schnell in der Containerregistry > bereit gestellt. Doch wie werde ich veraltete/ nicht mehr verwendete > Images wieder los, wenn sie die entsprechenden Nutzer nicht selbst > wieder l=C3=B6schen? Macht es vielleicht Sinn, Jedes Tag oder wenigstens > jedes Containerimage mit einem Ablaufdatum zu versehen? W=C3=A4re eine > regelm=C3=A4=C3=9Fige Brauche-ich-noch Best=C3=A4tigung durch Nutzer bess= er? Oh hey, mein Fachgebiet. Quelle: Ich bin Lead-Developer und Service-Owner f=C3=BCr (unter anderem) eine selbstentwickelte Registry. <https://github.com/sapcc/keppel> Was auf jeden Fall stimmt, ist, dass man darauf vorbereitet sein muss, dass Nutzer ihre Images selbst nicht l=C3=B6schen. Das passiert faktisch ni= e. F=C3=BCr unsere eigenen Repos haben wir GC-Policies in der Form: (aus dem Ged=C3=A4chtnis, aus didaktischen Gr=C3=BCnden leicht vereinfacht) - L=C3=B6sche alle ungetaggten Images, die =C3=A4lter als 3h sind - Sch=C3=BCtze alle Images, die als /.*latest/ getaggt sind - Sch=C3=BCtze die f=C3=BCnf neuesten Images pro Repo (nach Push-Timestamp) - L=C3=B6sche alle Images, die l=C3=A4nger als 28 Tage nicht gepullt wurden Hierbei gewinnt pro Image die erste passende Regel in der pr=C3=A4sentierte= n Reihenfolge. Mit der letzten Regel sch=C3=BCtzen wir alle Images, die aktiv im Einsatz sind, weil Audit-Prozesse alle Images von aktiven Containern regelm=C3=A4=C3=9Fig auf bekannte Sicherheitsl=C3=BCcken untersuchen. Also = anstatt der expliziten "Brauche-ich-noch-Best=C3=A4tigung" reicht halt aktiver Einsatz = in einem Kubernetes-Cluster. Das ist kein perfektes System, weil Images auch woanders eingesetzt werden k=C3=B6nnen, sei es auf Workstations oder i= n CI-Pipelines. Aber es ist im Gro=C3=9Fen und Ganzen gut genug. Das alles ist empirisch ausreichend, um das Wachstum der Image-Menge auf sinnvolle Ma=C3=9Fe zu begrenzen (f=C3=BCr unsere Organisationseinheit mit = mehreren hundert Entwicklern und Admins sind wir bei Gr=C3=B6=C3=9Fenordnung 10k-20k= Images). Eventuell muss ich irgendwann mal die "sch=C3=BCtze die f=C3=BCnf neuesten Images"-Regel fallen lassen, aber ich glaube, dass die der wesentliche Grund ist, dass es auch mit dem Usecase "Image l=C3=A4uft nur auf Workstations oder in CI-Pipelines" gut geht, weil dort meistens die neuesten Images eingesetzt werden. F=C3=BCr die Accounts von Kunden trifft das alles nat=C3=BCrlich nicht zu. = Da l=C3=B6sen wir das Problem haupts=C3=A4chlich dadurch, dass Storage Geld ko= stet und die Kunden damit zumindest ein bisschen einen Anreiz haben, sich ebenfalls GC-Policies einzurichten. Wir haben einen automatischen Alarm, wenn Kunden mehr als 100k Images haben, und initiieren dann aktiv eine Kommunikation von unserer Seite, sofern die Kunden noch keine GC-Policies eingerichtet sind oder die Policies nicht optimal formuliert sind. Das wird meistens dankend angenommen. Hope that helps. Sch=C3=B6ne Gr=C3=BC=C3=9Fe Stefan