Azure ACR – Az első lépéseid a konténerkezelés világában

  • Erőforrás típus: PaaS
  • Felhő szolgáltató: Microsoft Azure
  • Angol név: Azure Container Registry
  • Magyar név: Tárolóregisztrációs adatbázis
  • Rövidített név (ha van ilyen): ACR

A modern alkalmazásfejlesztés egyik alappillére a konténerizáció. Az olyan eszközök, mint a Docker, lehetővé teszik, hogy alkalmazásainkat izolált, skálázható konténerekben futtassuk. A konténerizációhoz azonban szükség van egy megbízható tárhelyre, ahol a konténerképeket tárolhatjuk, kezelhetjük és megoszthatjuk.

Pontosan ezt a bevezetőt írtam az AWS ECR-ről szóló cikkben is. Úgy gondoltam, hogy ebben sem lesz ez másképp. Most azonban az Azure tárólóregisztrációs adatbázisáról lesz szó, az ACR-ről.

Az Azure Container Registry (ACR) egy teljes mértékben felügyelt, privát konténerregiszter az Azure felhőplatformon, amely lehetővé teszi a Docker és OCI (Open Container Initiative) kompatibilis konténerek tárolását és kezelését. Az ACR különösen hasznos azoknak, akik Kubernetes-t (AKS – Azure Kubernetes Service) vagy más konténeres megoldásokat használnak, de kezdők számára is könnyen érthető és kezelhető.

Miért van szükség az ACR-re?

A konténerizált alkalmazások egyik alapvető eleme a konténerregiszter, amely a konténerképek tárolására és elérhetővé tételére szolgál. Bár használhatunk publikus tárolókat is, például a Docker Hub-ot, a vállalati vagy biztonsági szempontból érzékeny környezetekben érdemes egy privát megoldást választani, mint az ACR.

Előnyei:

  • Privát és biztonságos: Csak az engedélyezett felhasználók és szolgáltatások férhetnek hozzá.
  • Azure integráció: Könnyen csatlakoztatható Azure Kubernetes Service-hez (AKS), App Service-hez és más Azure szolgáltatásokhoz.
  • Automatizált építés és frissítés: Beállíthatunk automatikus képépítést és frissítést webhookok vagy DevOps pipeline-ok segítségével.
  • Geo-replikáció: Több régióban is elérhetővé tehetjük a konténerképeket.

Az ACR struktúrája

Az ACR egy hierarchikus struktúrát követ, amely lehetővé teszi a különböző konténerképek és adattárolók rendezett kezelését:

  • Registry: Az ACR legfelső szintje, amely az összes tárolt képet kezeli.
  • Repository: Egy adott alkalmazás vagy verziótároló helye, ahol különböző verziójú képek találhatók.
  • Tag-ek: A különböző verziókat és build-eket azonosítják, például node-webapp:3.0.0node-webapp:latest.

Hogyan tölthetek fel képet az ACR-be?

Ha van egy helyi Docker image, amelyet szeretnénk az ACR-be feltölteni:

  • Tag-elés az ACR nevével:
docker tag node-webapp:4.0.0 acrregistryneve.azurecr.io/node-webapp:4.0.0
docker tag node-webapp:4.0.0 acrregistryneve.azurecr.io/node-webapp:latest

  • Push-olás (feltöltés) az ACR-be
docker push acrregistryneve.azurecr.io/node-webapp:4.0.0
docker push acrregistryneve.azurecr.io/node-webapp:latest

  • Megtekintés az ACR-ben
az acr repository list --name acrregistryneve --output table

Alkalmazás indítása az ACR-ben tárolt képből

A legegyszerűbb módja egy ACR-ben tárolt konténer futtatásának az Azure Container Instances (ACI) használata. Az ACI lehetővé teszi, hogy néhány parancs segítségével elindítsuk az alkalmazásunkat anélkül, hogy egy teljes Kubernetes klasztert kellene kezelni.

  • ACI erőforrás létrehozása és az ACR-ből való kép futtatása
az container create --resource-group eroforrascsoport --name node-container --image acrregistryneve.azurecr.io/node-webapp:4.0.0 --registry-login-server acrregistryneve.azurecr.io --registry-username $(az acr credential show --name acrregistryneve --query "username" --output tsv) --registry-password $(az acr credential show --name acrregistryneve --query "passwords[0].value" --output tsv) --dns-name-label node-webapp-container --ports 80

  • A konténer állapotának ellenőrzése
az container show --resource-group eroforrascsoport --name node-container --query "{FQDN:ipAddress.fqdn}" --output table


Ez az egyszerű megoldás lehetővé teszi, hogy gyorsan és könnyedén futtassunk egy alkalmazást az ACR-ben tárolt képből anélkül, hogy mélyebb Kubernetes ismeretekre lenne szükség.

Életciklus és tárhely kezelés

Az ACR lehetőséget biztosít az életciklus és tárhely kezelésére:

  • Retention Policies: Beállíthatunk automatikus törlési szabályokat az elavult vagy nem használt képek eltávolítására.
  • Tiered Storage: Az ACR támogatja a különböző szintű tárhelyeket (Basic, Standard, Premium) az igényekhez igazítva.
  • Garbage Collection: Az ACR automatikusan törli a nem használt rétegeket, csökkentve ezzel a tárhelyhasználatot.

ACR integráció más Azure szolgáltatásokkal

Az ACR könnyen integrálható más Azure szolgáltatásokkal:

  • Azure Kubernetes Service (AKS): Automatikusan betölthető konténerképek az ACR-ből.
  • Azure DevOps: Pipeline-ok segítségével automatizálhatjuk a képépítést és publikálást.
  • Azure Functions: Konténerizált funkciók futtatása közvetlenül az ACR-ből.
  • Azure App Service: Webalkalmazások közvetlenül ACR-ből történő futtatása.

Összegzés

Az Azure Container Registry egy kiváló eszköz a konténerizált alkalmazások tárolására és kezelésére az Azure környezetben. Az ACR segítségével biztonságosan és hatékonyan dolgozhatunk konténerképekkel, integrálhatjuk azokat DevOps pipeline-okba, és közvetlenül felhasználhatjuk Azure szolgáltatásokban. Kezdőként érdemes kísérletezni az ACR használatával, és megtapasztalni, hogyan egyszerűsítheti a konténerkezelési folyamatokat.

Szerinted is jobb biztonságosan tárolni az alkalmazásainkat?