Najlepsze rozwiązania dla usługi Azure Container Registry

Postępując zgodnie z tymi najlepszymi rozwiązaniami, możesz pomóc zmaksymalizować wydajność i ekonomiczne wykorzystanie rejestru prywatnego na platformie Azure do przechowywania i wdrażania obrazów kontenerów i innych artefaktów.

Aby zapoznać się z pojęciami dotyczącymi rejestru, zobacz Informacje o rejestrach, repozytoriach i obrazach. Zobacz również Zalecenia dotyczące tagowania i przechowywania wersji obrazów kontenerów , aby zapoznać się ze strategiami tagowania i wersji obrazów w rejestrze.

Wdrażanie w pobliskiej sieci

Utwórz rejestr kontenerów w tym samym regionie świadczenia usług Azure, w którym zostały wdrożone kontenery. Dzięki umieszczeniu rejestru w regionie blisko sieci, w której hostowane są kontenery, można zmniejszyć opóźnienia i obniżyć koszty.

Wdrożenie w pobliskiej sieci jest jednym z głównych powodów używania prywatnego rejestru kontenerów. Obrazy platformy Docker mają wydajną konstrukcję warstw, która umożliwia przeprowadzanie wdrożeń przyrostowych. Jednak nowe węzły muszą ściągać wszystkie warstwy wymagane dla danego obrazu. Ten początkowy docker pull może szybko powiększyć się do wielu gigabajtów. Posiadanie prywatnego rejestru blisko wdrożenia minimalizuje opóźnienia sieci. Ponadto wszystkich chmury publiczne, w tym Azure, stosują opłaty za transfer danych wychodzących z sieci. Ściąganie obrazów z jednego centrum danych do innego skutkuje dodatkowymi opłatami za dane wychodzące z sieci, a poza tym zwiększa opóźnienia.

Replikacja geograficzna wdrożeń w wielu regionach

Użyj funkcji replikacji geograficznej usługi Azure Container Registry, jeśli wdrażasz kontenery w wielu regionach. Bez względu na to, czy obsługujesz globalnych klientów z lokalnych centrów danych, czy też Twój zespół deweloperów znajduje się w różnych lokalizacjach, możesz uprościć zarządzanie rejestrem i zminimalizować opóźnienia dzięki replikacji geograficznej rejestru. Można również skonfigurować regionalne elementy webhook w celu powiadamiania o zdarzeniach w określonych replikach, takich jak wypychanie obrazów.

Replikacja geograficzna jest dostępna w rejestrach w warstwie Premium . Aby dowiedzieć się, jak korzystać z replikacji geograficznej, zobacz trzyczęściowy samouczek Replikacja geograficzna w usłudze Azure Container Registry.

Maksymalizowanie wydajności ściągania

Oprócz umieszczania obrazów w pobliżu wdrożeń cechy samych obrazów mogą mieć wpływ na wydajność ściągania.

  • Rozmiar obrazu — zminimalizuj rozmiary obrazów, usuwając niepotrzebne warstwy lub zmniejszając rozmiar warstw. Jednym ze sposobów zmniejszenia rozmiaru obrazu jest użycie wieloetapowego podejścia do kompilacji platformy Docker w celu uwzględnienia tylko niezbędnych składników środowiska uruchomieniowego.

    Sprawdź również, czy obraz może zawierać jaśniejszy obraz podstawowy systemu operacyjnego. A jeśli używasz środowiska wdrażania, takiego jak Azure Container Instances, które buforuje niektóre obrazy podstawowe, sprawdź, czy możesz zamienić warstwę obrazu dla jednego z buforowanych obrazów.

  • Liczba warstw — równoważenie liczby użytych warstw. Jeśli masz zbyt mało, nie skorzystasz z ponownego użycia warstwy i buforowania na hoście. Zbyt wiele i środowisko wdrażania poświęca więcej czasu na ściąganie i dekompresowanie. Optymalne jest pięć do 10 warstw.

Wybierz również warstwę usługi Azure Container Registry, która spełnia Twoje potrzeby dotyczące wydajności. Warstwa Premium zapewnia największą przepustowość i najwyższą szybkość współbieżnych operacji odczytu i zapisu w przypadku wdrożeń o dużej ilości.

Przestrzenie nazw repozytoriów

Korzystając z przestrzeni nazw repozytorium, można zezwolić na udostępnianie pojedynczego rejestru w wielu grupach w organizacji. Rejestry mogą być współużytkowane przez wdrożenia i zespoły. Usługa Azure Container Registry obsługuje zagnieżdżone przestrzenie nazw, umożliwiając izolację grup. Rejestr zarządza jednak wszystkimi repozytoriami niezależnie, a nie jako hierarchią.

Rozważmy na przykład poniższe znaczniki obrazów kontenera. Obrazy używane w całej firmie, takie jak aspnetcore, są umieszczane w głównej przestrzeni nazw, a obrazy kontenerów należące do grup Products and Marketing używają własnych przestrzeni nazw.

  • contoso.azurecr.io/aspnetcore:2.0
  • contoso.azurecr.io/products/widget/web:1
  • contoso.azurecr.io/products/bettermousetrap/refundapi:12.3
  • contoso.azurecr.io/marketing/2017-fall/concertpromotions/campaign:218.42

Dedykowana grupa zasobów

Ponieważ rejestry kontenerów są zasobami używanymi na wielu hostach kontenerów, rejestr powinien znajdować się we własnej grupie zasobów.

Chociaż po zakończeniu możesz eksperymentować z określonym typem hosta, takim jak Azure Container Instances, prawdopodobnie zechcesz usunąć wystąpienie kontenera. Można jednak również zachować kolekcję obrazów, które zostały wypchnięte do usługi Azure Container Registry. Dzięki umieszczeniu rejestru w jego własnej grupie zasobów można zminimalizować ryzyko przypadkowego usunięcia kolekcji obrazów w rejestrze podczas usuwania grupy zasobów wystąpienia kontenera.

Uwierzytelnianie i autoryzacja

Istnieją dwa podstawowe scenariusze uwierzytelniania w usłudze Azure Container Registry: uwierzytelnianie indywidualne i uwierzytelnianie usługi („bezobsługowe”). Poniższa tabela zawiera krótkie omówienie tych scenariuszy i wskazuje zalecaną metodę uwierzytelniania w przypadku każdego z nich.

Typ Przykładowy scenariusz Zalecana metoda
Indywidualne tożsamości Deweloper ściągający obrazy na swoją maszynę deweloperską lub wypychający z niej obrazy. Polecenie az acr login
Bezobsługowe/tożsamość usługi Potoki kompilacji i wdrażania, w których użytkownik nie bierze bezpośrednio udziału. Jednostka usługi

Aby uzyskać szczegółowe informacje na temat tych i innych scenariuszy uwierzytelniania Azure Container Registry, zobacz Uwierzytelnianie za pomocą rejestru kontenerów platformy Azure.

Azure Container Registry obsługuje praktyki zabezpieczeń w organizacji w celu dystrybuowania obowiązków i uprawnień do różnych tożsamości. Przy użyciu kontroli dostępu opartej na rolach przypisz odpowiednie uprawnienia do różnych użytkowników, jednostek usługi lub innych tożsamości, które wykonują różne operacje rejestru. Na przykład przypisz uprawnienia wypychania do jednostki usługi używanej w potoku kompilacji i przypisz uprawnienia ściągnięcia do innej tożsamości używanej do wdrożenia. Tworzenie tokenów na potrzeby szczegółowego, ograniczonego czasowo dostępu do określonych repozytoriów.

Zarządzanie rozmiarem rejestru

Ograniczenia magazynu każdej warstwy usługi rejestru kontenerów są przeznaczone do dopasowania do typowego scenariusza: Podstawowa dla rozpoczynania pracy, Standardowa dla większości aplikacji produkcyjnych i Premium na potrzeby wydajności i replikacji geograficznej w hiperskalie. W ciągu cyklu życia rejestru należy zarządzać jego rozmiarem, okresowo usuwając nieużywaną zawartość.

Użyj polecenia interfejsu wiersza polecenia platformy Azure az acr show-usage , aby wyświetlić bieżące użycie magazynu i innych zasobów w rejestrze:

az acr show-usage --resource-group myResourceGroup --name myregistry --output table

Przykładowe dane wyjściowe:

NAME                        LIMIT         CURRENT VALUE    UNIT
--------------------------  ------------  ---------------  ------
Size                        536870912000  215629144        Bytes
Webhooks                    500           1                Count
Geo-replications            -1            3                Count
IPRules                     100           1                Count
VNetRules                   100           0                Count
PrivateEndpointConnections  10            0                Count

Bieżące użycie magazynu można również znaleźć w sekcji Przegląd rejestru w Azure Portal:

Informacje o użyciu rejestru w witrynie Azure Portal

Uwaga

W rejestrze replikowanym geograficznie użycie magazynu jest wyświetlane dla regionu macierzystego. Pomnóż przez liczbę replikacji dla całkowitego używanego magazynu rejestru.

Usuwanie danych obrazu

Azure Container Registry obsługuje kilka metod usuwania danych obrazu z rejestru kontenerów. Obrazy można usuwać według tagu lub manifestu albo usunąć całe repozytorium.

Aby uzyskać szczegółowe informacje na temat usuwania danych obrazu z rejestru, w tym nieoznaczonego (czasami nazywanego "zwisającym" lub "oddzielonym") obrazów, zobacz Usuwanie obrazów kontenerów w Azure Container Registry. Można również ustawić zasady przechowywania dla manifestów bez tagów.

Następne kroki

Azure Container Registry jest dostępna w kilku warstwach (nazywanych również jednostkami SKU), które zapewniają różne możliwości. Aby uzyskać szczegółowe informacje na temat dostępnych warstw usług, zobacz Azure Container Registry warstwy usług.

Aby uzyskać zalecenia dotyczące poprawy stanu zabezpieczeń rejestrów kontenerów, zobacz Punkt odniesienia zabezpieczeń platformy Azure dla Azure Container Registry.