Dies ist der zweite Artikel in einer Artikelserie, die sich mit den Einschränkungen beim Herunterladen von Containerbildern befasst.
В
Einschränkungen der Downloadhäufigkeit wurden bereits in unserem angekündigt
Kostenloser Plan, anonyme Benutzer: 100 Downloads in 6 Stunden
Kostenloser Plan, autorisierte Benutzer: 200 Downloads in 6 Stunden
Pro-Plan: Unbegrenzt
Team-Tarifplan: unbegrenzt
Die Docker-Download-Häufigkeit ist definiert als die Anzahl der Manifest-Anfragen an Docker Hub. Die Beschränkungen, wie oft Bilder heruntergeladen werden können, basieren auf der Art des Kontos, das das Bild anfordert, und nicht auf der Art des Kontos, dem das Bild gehört. Bei anonymen (nicht autorisierten) Benutzern ist die Downloadhäufigkeit an die IP-Adresse gebunden.
NB Sie erhalten weitere Feinheiten und Best-Practice-Fälle
Wir erhalten Fragen von Kunden und der Community zu Container-Image-Ebenen. Bei der Begrenzung der Downloadhäufigkeit zählen wir keine Bildebenen, da wir Manifest-Downloads begrenzen und die Anzahl der Ebenen (Blob-Anfragen) derzeit unbegrenzt ist. Diese Änderung basiert auf dem Feedback der Community, um sie benutzerfreundlicher zu gestalten, sodass Benutzer nicht bei jedem verwendeten Bild die Ebenen zählen müssen.
Detaillierte Analyse der Downloadraten von Docker Hub-Bildern
Wir haben viel Zeit damit verbracht, Image-Downloads vom Docker Hub zu analysieren, um herauszufinden, was die Ratenbegrenzung verursacht hat und wie genau sie begrenzt werden sollte. Was wir gesehen haben, bestätigte, dass praktisch alle Benutzer Bilder mit vorhersehbarer Geschwindigkeit für typische Arbeitsabläufe heruntergeladen haben. Allerdings ist ein Einfluss einer geringen Anzahl anonymer Nutzer spürbar, so stammen beispielsweise etwa 30 % aller Downloads von nur 1 % anonymer Nutzer.
Die neuen Einschränkungen basieren auf dieser Analyse, sodass die meisten unserer Benutzer nicht betroffen sein werden. Diese Einschränkungen spiegeln die übliche Verwendung durch Entwickler wider – Erlernen von Docker, Entwickeln von Code, Erstellen von Bildern usw.
Helfen Sie Entwicklern, die Begrenzung der Download-Rate besser zu verstehen
Nachdem wir nun die Auswirkungen verstanden hatten und wussten, wo die Grenzen liegen sollten, mussten wir die technischen Bedingungen für die Anwendung dieser Beschränkungen festlegen. Das Herunterladen von Bildern aus der Docker-Registrierung zu begrenzen, ist ziemlich schwierig. In der Registrierungsbeschreibung finden Sie keine Upload-API – sie ist einfach nicht vorhanden. Tatsächlich ist das Herunterladen eines Bildes eine Kombination aus Manifestanforderungen und Blobs in der API, die je nach Status unterschiedlich ausgeführt werden Client und das angeforderte Bild.
Wenn Sie beispielsweise bereits über ein Image verfügen, gibt Docker Engine eine Manifest-Anfrage aus, erkennt, dass es bereits alle erforderlichen Ebenen basierend auf dem akzeptierten Manifest hat, und stoppt dann. Wenn Sie andererseits ein Image herunterladen, das mehrere Architekturen unterstützt, gibt die Manifest-Abfrage eine Liste von Image-Manifesten für jede unterstützte Architektur zurück. Die Docker Engine sendet dann eine weitere Manifest-Anfrage für die spezifische Architektur, auf der sie ausgeführt wird, und erhält im Gegenzug eine Liste aller Ebenen im Image. Anschließend wird nach jeder fehlenden Ebene (Blob) gefragt.
NB Dieses Thema wird ausführlicher behandelt in
Es stellt sich heraus, dass das Herunterladen eines Bildes tatsächlich eine oder zwei Manifest-Anfragen sowie von Null bis Unendlich sind – Ebenen-Anfragen (Blob). In der Vergangenheit hat Docker die Download-Häufigkeit Schicht für Schicht verfolgt, da diese vor allem mit der Bandbreitennutzung zusammenhängt. Dennoch haben wir der Community zugehört, dass dies schwieriger ist, da man die erforderliche Anzahl von Ebenen verfolgen muss, was dazu führt, dass Best Practices für die Arbeit mit Dockerfile ignoriert werden, und dass es auch intuitiver für Benutzer ist, die einfach nur damit arbeiten möchten die Registrierung, ohne viel Verständnis für die Details.
Daher begrenzen wir die Anzahl der Anfragen basierend auf Manifestanfragen. Dies hängt direkt mit dem Herunterladen von Bildern zusammen, was für Benutzer leicht zu verstehen ist. Es gibt jedoch eine kleine Nuance: Wenn Sie versuchen, ein bereits vorhandenes Bild herunterzuladen, wird die Anfrage trotzdem berücksichtigt, auch wenn Sie die Ebenen nicht herunterladen. Wir hoffen auf jeden Fall, dass diese Methode zur Begrenzung der Downloadhäufigkeit sowohl fair als auch bequem für die Benutzer ist.
Wir warten auf Ihr Feedback
Wir werden die Einschränkungen überwachen und auf der Grundlage typischer Anwendungsfälle entsprechende Anpassungen vornehmen, um sicherzustellen, dass die Einschränkungen für jeden Benutzertyp angemessen sind, und insbesondere werden wir versuchen, Entwickler niemals an ihrer Arbeit zu hindern.
Bleiben Sie in den kommenden Wochen auf dem Laufenden für einen weiteren Artikel über die Einrichtung von CI- und Kampfsystemen angesichts dieser Änderungen.
Schließlich werden wir im Rahmen unserer Unterstützung für die Open-Source-Community bis zum 1. November neue Preispläne für Open-Source bereitstellen. Um sich zu bewerben, füllen Sie bitte das Formular aus
Weitere Informationen zu den neuesten Änderungen der Nutzungsbedingungen finden Sie unter
Für diejenigen, die das Limit für das Herunterladen von Bildern erhöhen müssen, bietet Docker als Funktion unbegrenzte Bild-Downloads an
Source: habr.com