Speicher und Bereinigung
Alles unter deinem Registry-Namespace zählt: jeder Tag jedes Repositories. Das Feld Nutzung auf dem Tab Übersicht liest den aktuellen Wert live, und einmal pro Stunde läuft eine Messung im Hintergrund. Dieser stündliche Wert ist der, auf den Abrechnung und Speicherlimit reagieren.
Das Kontingent
| Tarif | Inklusivspeicher | Über dem Kontingent |
|---|---|---|
| Free | 1 GB (1.024 MB) | Pushes werden blockiert |
| Bezahlt | 1 GB (1.024 MB) | 0,015 € pro GB und Monat |
Eine bezahlte Registry hat keine harte Obergrenze. Sie nimmt weiter Pushes an, und der Speicher jenseits des ersten Gigabytes wird nach Verbrauch abgerechnet.
Wenn eine kostenlose Registry voll ist
Der Status auf dem Tab Übersicht wechselt auf Speicher voll, und die Seite erklärt: Dein kostenloses Speicherkontingent ist aufgebraucht. Neue Pushes sind gesperrt, Pulls laufen weiter. Lösche Images, um wieder unter das Limit zu kommen.
Dass Pulls weiterlaufen, ist Absicht. Das Limit betrifft gespeicherte Bytes, also müssen die Schreibzugriffe stoppen, und ein plötzlich scheiterndes Pull-Secret würde deine laufenden Workloads beim nächsten Pod-Neustart mitreißen, was weit schwerer wiegt als die Überschreitung, die es ausgelöst hat.
Zum Erholen löschst du Images, bis du wieder unter dem Limit bist. Die nächste stündliche Messung setzt die Registry von selbst zurück auf Aktiv. Nichts sonst räumt diesen Zustand ab, eine über dem Limit liegengelassene Registry bleibt also schreibgeschützt.
Images löschen
Öffne auf dem Tab Übersicht unter Repositories ein Repository, um seine Tags zu sehen. Du kannst einen einzelnen Tag oder das ganze Repository löschen, beides endgültig. Löschen geht auch, während die Registry über ihrem Limit ist, genau das macht die Erholung möglich.
Bereinigungsregeln
Der Tab Bereinigungsregeln wendet Aufbewahrung automatisch an. Jede Regel nennt ein Repository, einen Typ und einen Wert:
| Regeltyp | Der Wert ist | Was gelöscht wird |
|---|---|---|
| Letzte N Tags behalten | wie viele Tags bleiben | getaggte Images jenseits der N zuletzt aktualisierten |
| Tags nach N Tagen löschen | ein Alter in Tagen | Tags, die so lange nicht aktualisiert wurden |
| Ungetaggte nach N Tagen löschen | ein Alter in Tagen | Manifeste ohne Tag, die älter sind |
Repository steht standardmäßig auf *, das erfasst jedes Repository der Registry, auch später angelegte. Ein einzelner Repository-Name beschränkt die Regel darauf.
Behalten-Muster und Löschen-Muster sind kommagetrennte Glob-Muster, die gegen den Tag geprüft werden, zum Beispiel v*,latest,main. Ein Tag, der auf ein Behalten-Muster passt, wird nie gelöscht. Sobald ein Löschen-Muster gesetzt ist, kommen überhaupt nur passende Tags in Frage. Auf ungetaggte Manifeste wirken die Muster nicht, eine Ungetaggte löschen-Regel entfernt also alles ausreichend Alte, egal was du eingetragen hast.
Die Regeln laufen einmal täglich um 03:00 UTC. Das Anlegen löscht sofort nichts.
Tags nach N Tagen löschen zählt Alter, nicht Nutzung
Gemessen wird ab dem letzten Push, nicht ab dem letzten Pull. Ein Tag, der seit N Tagen nicht neu gebaut wurde, wird gelöscht, auch wenn genau er in deinem Produktions-Deployment läuft, und der nächste Pod-Neustart scheitert dann beim Pull. Schütz deine Release-Tags mit einem Behalten-Muster wie v*,latest,main, bevor du eine solche Regel aktivierst.
Die Liste zeigt nur Regeln für alle Repositories
Der Tab Bereinigungsregeln listet Regeln, deren Repository * ist. Eine Regel, die du für ein einzelnes benanntes Repository anlegst, wird gespeichert und läuft planmäßig, taucht aber nie in dieser Liste auf. Dadurch legt man leicht versehentlich eine zweite an, und aus dem Portal lässt sie sich weder bearbeiten noch löschen.
Eine Regel Letzte N Tags behalten hängt daran, dass die Registry meldet, wann jeder Tag zuletzt aktualisiert wurde. Fehlen diese Zeitstempel für ein Repository, überspringt die Regel dieses Repository in diesem Lauf, statt zu raten, welche Tags die neuesten sind, ein Lauf kann also gelegentlich nichts löschen.
Wie es weitergeht
- Zugriffs-Token für die Zugangsdaten, die Pushes und Pulls nutzen
- Container-Registry für den Registry-Namespace und den ersten Push