To jest drugi artykuł z serii artykułów, które omówią ograniczenia podczas pobierania obrazów kontenerów.
В
Limity częstotliwości pobierania zostały wcześniej ogłoszone w naszym
Darmowy abonament, anonimowi użytkownicy: 100 pobrań w ciągu 6 godzin
Darmowy abonament, autoryzowani użytkownicy: 200 pobrań w ciągu 6 godzin
Plan Pro: bez ograniczeń
Plan zespołu: nieograniczony
Częstotliwość pobierania Dockera jest zdefiniowana jako liczba żądań manifestu do Docker Hub. Limity częstotliwości pobierania obrazu zależą od typu konta żądającego obrazu, a nie typu konta właściciela obrazu. W przypadku anonimowych (nieautoryzowanych) użytkowników częstotliwość pobierania jest powiązana z adresem IP.
NB Otrzymasz więcej subtelności i przykładów najlepszych praktyk
Otrzymujemy pytania od klientów i społeczności dotyczące warstw obrazu kontenera. Podczas ograniczania częstotliwości pobierania nie uwzględniamy warstw obrazu, ponieważ ograniczamy pobieranie manifestów, a liczba warstw (żądań obiektów blob) jest obecnie nieograniczona. Ta zmiana jest oparta na opiniach społeczności, aby uczynić ją bardziej przyjazną dla użytkownika, dzięki czemu użytkownicy nie muszą liczyć warstw na każdym wyglądzie, którego używają.
Szczegółowa analiza częstotliwości pobierania obrazów Docker Hub
Spędziliśmy dużo czasu analizując pobieranie obrazów z Docker Hub, aby ustalić przyczynę ograniczenia prędkości, a także dokładnie to, jak je ograniczyć. To, co zobaczyliśmy, potwierdziło, że praktycznie wszyscy użytkownicy pobierają obrazy z przewidywalną szybkością dla typowych przepływów pracy. Zauważalny jest jednak wpływ niewielkiej liczby anonimowych użytkowników, na przykład około 30% wszystkich pobrań pochodzi od zaledwie 1% anonimowych użytkowników.
Nowe limity są oparte na tej analizie, więc nie będzie to miało wpływu na większość naszych użytkowników. Te ograniczenia mają na celu odzwierciedlenie normalnego użytkowania przez programistów — naukę platformy Docker, opracowywanie kodu, tworzenie obrazów i tak dalej.
Pomaganie programistom w lepszym zrozumieniu limitów częstotliwości pobierania
Teraz, gdy zrozumieliśmy wpływ, a także, gdzie powinny znajdować się granice, musieliśmy określić techniczne warunki działania tych ograniczeń. Ograniczenie pobierania obrazów z rejestru Dockera jest dość trudne. W opisie rejestru nie znajdziesz interfejsu API do pobierania - po prostu nie istnieje.W rzeczywistości pobieranie obrazu jest kombinacją żądań manifestu i obiektów blob w interfejsie API i są one wykonywane w różny sposób, w zależności od stanu klienta i żądanego obrazu.
Na przykład, jeśli masz już obraz, Docker Engine wyśle żądanie manifestu, zrozumie, że ma już wszystkie niezbędne warstwy na podstawie zaakceptowanego manifestu, a następnie zatrzyma się. Z drugiej strony, jeśli pobierasz obraz obsługujący wiele architektur, żądanie manifestu zwróci listę manifestów obrazów dla każdej obsługiwanej architektury. Następnie Docker Engine wyśle kolejne żądanie manifestu dla konkretnej architektury, na której działa, w zamian otrzyma listę wszystkich warstw obrazu. Następnie wyśle zapytanie o każdą brakującą warstwę (blob).
NB Ten temat jest szerzej omówiony w
Okazuje się, że pobranie obrazu to tak naprawdę jedno lub dwa żądania manifestu, a także od zera do nieskończoności – żądania warstw (blob). W przeszłości Docker śledził częstotliwość pobierania warstwa po warstwie, ponieważ jest to najbardziej związane z wykorzystaniem przepustowości. Niemniej jednak posłuchaliśmy społeczności, co jest trudniejsze, ponieważ trzeba śledzić żądaną liczbę warstw, co doprowadzi do ignorowania najlepszych praktyk dotyczących pracy z plikiem Dockerfile, a także bardziej intuicyjne dla użytkowników, którzy chcą po prostu pracować z rejestrem bez większego zrozumienia szczegółów.
Dlatego ograniczamy liczbę żądań na podstawie żądań manifestu. Jest to bezpośrednio związane z pobieraniem obrazów, co jest łatwe do zrozumienia dla użytkowników. Jest naprawdę mały niuans - jeśli spróbujesz pobrać obraz, który już istnieje, prośba zostanie wzięta pod uwagę, nawet jeśli nie pobierzesz warstw. W każdym razie mamy nadzieję, że ta metoda ograniczania częstotliwości pobierania będzie zarówno uczciwa, jak i przyjazna dla użytkownika.
Czekamy na Twoją opinię
Będziemy monitorować ograniczenia i wprowadzać odpowiednie korekty w oparciu o typowe przypadki użycia, aby upewnić się, że ograniczenia są odpowiednie dla każdego typu użytkownika, aw szczególności postaramy się nigdy nie przeszkadzać programistom w wykonywaniu ich pracy.
W nadchodzących tygodniach czekajcie na kolejny artykuł na temat ulepszania CI i systemów walki w świetle tych zmian.
Wreszcie, w ramach naszego wsparcia dla społeczności open source, będziemy dostarczać nowe plany cenowe dla open source do 1 listopada. Aby się zgłosić, wypełnij formularz
Aby uzyskać więcej informacji o najnowszych zmianach warunków korzystania z usługi, odwiedź stronę
Dla tych, którzy muszą zwiększyć limity częstotliwości pobierania obrazów, Docker oferuje nieograniczoną liczbę pobrań obrazów jako funkcję.
Źródło: www.habr.com