Dela via


Metodtips för Azure Container Registry

Genom att följa dessa metodtips kan du maximera prestanda och kostnadseffektiv användning av ditt privata register i Azure för att lagra och distribuera containeravbildningar och andra artefakter.

Bakgrund om registerbegrepp finns i Om register, lagringsplatser och avbildningar. Se även Rekommendationer för taggning och versionshantering av containeravbildningar för strategier för taggning och versionsavbildningar i registret.

Nätverksnära distribution

Skapa ditt containerregister i samma Azure-region där du distribuerar containrar. Om du placerar registret i en region som är nätverksnära till dina containervärdar kan du sänka både svarstid och kostnad.

Nära nätverksutplacering är en av de främsta orsakerna till att använda ett privat containerregister. Docker-avbildningar har en effektiv skiktkonstruktion som möjliggör inkrementella distributioner. Nya noder måste dock hämta alla lager som krävs för en viss avbildning. Den initiala datamängden docker pull kan snabbt växa till flera gigabyte. Om du har ett privat register nära distributionen minimeras nätverksfördröjningen. Dessutom implementerar alla offentliga moln, inklusive Azure, avgifter för utgående nätverk. Att överföra avbildningar från ett datacenter till ett annat medför avgifter för datautgång, förutom fördröjningen.

Geo-replikera distributioner över flera regioner

Använd Azure Container Registrys geo-replikeringsfunktion om du distribuerar containrar till flera regioner. Oavsett om du betjänar globala kunder från lokala datacenter eller utvecklingsteamet finns på olika platser kan du förenkla registerhanteringen och minimera svarstiden genom att georeplikera registret. Du kan också konfigurera regionala webhooks för att meddela dig om händelser i specifika repliker, till exempel när bilder skickas.

Geo-replikering är tillgänglig med Premium-register. Mer information om hur du använder geo-replikering finns i självstudien i tre delar, Geo-replikering i Azure Container Registry.

Maximera dragprestanda

Förutom att placera avbildningar nära dina distributioner kan egenskaperna för själva avbildningarna påverka pull-prestanda.

  • Bildstorlek – Minimera storleken på dina bilder genom att ta bort onödiga lager eller minska storleken på lagren. Ett sätt att minska avbildningsstorleken är att använda docker-kompileringsmetoden i flera steg för att endast inkludera nödvändiga körningskomponenter.

    Kontrollera också om avbildningen kan innehålla en ljusare basoperativsystemavbildning. Och om du använder en distributionsmiljö, till exempel Azure Container Instances som cachelagrar vissa basavbildningar, kontrollerar du om du kan byta ett avbildningslager mot en av de cachelagrade avbildningarna.

  • Antal lager – Balansera antalet skikt som används. Om du har för få resurser kan du inte dra nytta av återanvändning och cachelagring av lager på värdenheten. Om det är för många, kommer din distributionsmiljö att ägna mer tid åt att hämta och dekomprimera. Fem till tio lager är optimala.

Välj även en tjänstnivå för Azure Container Registry som uppfyller dina prestandabehov. Premium-nivån ger den största bandbredden och högsta frekvens av samtidiga läs- och skrivåtgärder när du har distributioner med stora volymer.

Namnområden för lagringsplats

Genom att använda lagringsplatsens namnområden kan du tillåta delning av ett enskilt register mellan flera grupper i din organisation. Register kan delas mellan de olika distributionerna och de olika teamen. Azure Container Registry stöder kapslade namnområden, vilket aktiverar gruppisolering. Registret hanterar dock alla lagringsplatser oberoende av varandra, inte som en hierarki.

Tänk till exempel på följande containerbildtaggar. Bilder som används i hela företaget, till exempel aspnetcore, placeras i rotnamnområdet, medan containeravbildningar som ägs av grupperna Produkter och marknadsföring använder sina egna namnområden.

  • 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

Dedikerad resursgrupp

Eftersom containerregister är resurser som används i flera containervärdar bör ett register finnas i en egen resursgrupp.

Även om du kan experimentera med en viss värdtyp, till exempel Azure Container Instances, vill du förmodligen ta bort containerinstansen när du är klar. Men du kanske också vill behålla samlingen av avbildningar som du skickade till Azure Container Registry. Genom att placera registret i en egen resursgrupp minimerar du risken för att oavsiktligt ta bort samlingen av avbildningar i registret när du tar bort resursgruppen för containerinstansen.

Autentisering och auktorisering

När du autentiserar med ett Azure-containerregister finns det två primära scenarier: individuell autentisering och tjänstautentisering (eller "huvudlös"). Följande tabell innehåller en kort översikt över dessa scenarier och den rekommenderade autentiseringsmetoden för var och en.

Typ Exempelscenario Rekommenderad metod
Individuell identitet En utvecklare som hämtar bilder till eller lägger upp bilder från sin utvecklingsdator. az acr login
Huvudlös/tjänstidentitet Skapa och distribuera pipelines där användaren inte är direkt involverad. Tjänstens huvudnamn

Mer detaljerad information om dessa och andra Azure Container Registry-autentiseringsscenarier finns i Autentisera med ett Azure-containerregister.

Azure Container Registry har stöd för säkerhetsrutiner i din organisation för att distribuera uppgifter och behörigheter till olika identiteter. Använd rollbaserad åtkomstkontroll och tilldela lämpliga behörigheter till olika användare, tjänstens huvudnamn eller andra identiteter som utför olika registeråtgärder. Du kan till exempel tilldela push-behörigheter till ett tjänsthuvudnamn som används i en bygg-pipeline och tilldela pull-behörigheter till en annan identitet som används för distribution. Använd Microsoft Entra-baserade lagringsplatsbehörigheter för detaljerad åtkomst till specifika lagringsplatser. Du kan också använda icke-Microsoft Entra-tokenbaserade lagringsplatsbehörigheter.

Hantera registerstorlek

Lagringsbegränsningarna för varje tjänstnivå för containerregister är avsedda att anpassas till ett typiskt scenario: Grundläggande för att komma igång, Standard för de flesta produktionsprogram och Premium för prestanda i hyperskala och geo-replikering. Under hela registrets livslängd bör du hantera dess storlek genom att regelbundet ta bort oanvänt innehåll.

Använd Azure CLI-kommandot az acr show-usage för att visa den aktuella förbrukningen av lagring och andra resurser i registret:

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

Exempel på utdata:

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

Du kan också hitta den aktuella lagringsanvändningen i Översikt över ditt register i Azure-portalen:

Information om registeranvändning i Azure-portalen

Anmärkning

I ett geo-replikerat register visas lagringsanvändningen för hemregionen. Multiplicera med antalet replikeringar för totalt förbrukad registerlagring.

Ta bort bilddata

Azure Container Registry har stöd för flera metoder för att ta bort avbildningsdata från containerregistret. Du kan ta bort bilder med tagg eller manifestsammandrag eller ta bort en hel lagringsplats.

Mer information om hur du tar bort avbildningsdata från registret, inklusive otaggade (kallas ibland "dinglande" eller "överblivna") avbildningar finns i Ta bort containeravbildningar i Azure Container Registry. Du kan också ange en kvarhållningsprincip för otaggade manifest.

Nästa steg

Azure Container Registry är tillgängligt på flera nivåer (kallas även SKU:er) som tillhandahåller olika funktioner. Mer information om tillgängliga tjänstnivåer finns i Tjänstnivåer för Azure Container Registry.

Rekommendationer för att förbättra säkerhetsstatusen för dina containerregister finns i Azure Security Baseline for Azure Container Registry.