Javaslatok tárolólemezképek címkézéséhez és verziószámozásához
Amikor tárolórendszerképeket küld le egy tárolóregisztrációs adatbázisba, majd üzembe helyezi őket, a rendszerképek címkézésére és verziószámozására vonatkozó stratégiára van szükség. Ez a cikk két megközelítést tárgyal, és hogy hol illeszkednek a tároló életciklusa során:
- Stabil címkék – Olyan címkék, amelyeket újra felhasználhat például egy fő- vagy alverzió, például a mycontainerimage:1.0 jelzésére.
- Egyedi címkék – A beállításjegyzékbe leküldendő minden képhez más címke, például mycontainerimage:abc123.
Stabil címkék
Javaslat: Használjon stabil címkéket a tároló buildjeihez tartozó alaprendszerképek karbantartásához. Kerülje a stabil címkékkel rendelkező üzemelő példányokat, mert ezek a címkék továbbra is frissítéseket kapnak, és inkonzisztenciákat okozhatnak éles környezetekben.
A stabil címkék azt jelentik, hogy egy fejlesztő vagy egy buildrendszer továbbra is lekérhet egy adott címkét, amely továbbra is frissítéseket kap. A stabil nem jelenti azt, hogy a tartalom le van fagyasztva. A stabil azt jelenti, hogy a rendszerképnek stabilnak kell lennie az adott verzió szándékához. A "stabil" állapot megőrzése érdekében előfordulhat, hogy biztonsági javításokat vagy keretrendszerfrissítéseket kell alkalmazni.
Példa
A keretrendszer csapata az 1.0-s verziót szállítja. Tudják, hogy frissítéseket fognak szállítanának, beleértve az apró frissítéseket is. Egy adott fő- és alverzió stabil címkéinek támogatása érdekében két stabil címkével rendelkeznek.
:1
– a főverzió stabil címkéje.1
a "legújabb" vagy "legújabb" 1.* verziót jelöli.:1.0
- egy stabil címke az 1.0-s verzióhoz, amely lehetővé teszi a fejlesztők számára, hogy az 1.0-s frissítésekhez kössenek, és a kiadásukkor ne legyenek továbbítva az 1.1-es verzióra.
Ha rendelkezésre állnak alaprendszerkép-frissítések, vagy a keretrendszer bármilyen karbantartási kiadása, a stabil címkékkel rendelkező rendszerképek a legújabb kivonatra frissülnek, amely az adott verzió legújabb stabil kiadását képviseli.
Ebben az esetben mind a fő, mind az alcímkék folyamatosan szervizelve vannak. Alaprendszerkép-forgatókönyv esetén ez lehetővé teszi, hogy a rendszerkép tulajdonosa szervizelt lemezképeket biztosítson.
Nem megjelölt jegyzékfájlok törlése
Ha egy stabil címkével rendelkező kép frissül, a korábban címkézett kép címkézetlen lesz, ami árva képet eredményez. Az előző rendszerkép jegyzékfájlja és egyedi rétegadatai a beállításjegyzékben maradnak. A beállításjegyzék méretének fenntartása érdekében rendszeres időközönként törölheti a stabil rendszerkép-frissítésekből származó, nem megjelölt jegyzékfájlokat. Például automatikusan törli a megadott időtartamnál régebbi, nem megjelölt jegyzékfájlokat, vagy beállíthat egy adatmegőrzési szabályzatot a nem megjelölt jegyzékfájlokhoz.
Egyedi címkék
Javaslat: Használjon egyedi címkéket az üzemelő példányokhoz, különösen olyan környezetben, amely több csomóponton is méretezhető. Valószínűleg az összetevők konzisztens verziójának szándékos üzembe helyezését szeretné. Ha a tároló újraindul, vagy egy vezénylő több példányt skáláz fel, a gazdagépek nem fognak véletlenül újabb verziót lekérni, amely nem konzisztens a többi csomóponttal.
Az egyedi címkézés egyszerűen azt jelenti, hogy a beállításjegyzékbe leküldett összes rendszerkép egyedi címkével rendelkezik. A címkék nem lesznek újra felhasználva. Az egyedi címkék létrehozásához számos mintát követhet, többek között a következőket:
Dátum-idő bélyeg – Ez a módszer meglehetősen gyakori, mivel egyértelműen megállapíthatja, hogy mikor készült a rendszerkép. De hogyan lehet korrelálni a buildrendszerrel? Meg kell találnia az egyidejűleg befejezett buildet? Melyik időzónában van? Minden buildrendszer utc-ra van kalibrálva?
Git commit – Ez a módszer addig működik, amíg el nem kezdi támogatni az alaprendszerkép-frissítéseket. Ha alaprendszerkép-frissítés történik, a buildrendszer ugyanazzal a Git-véglegesítéssel indul el, mint az előző build. Az alaprendszerkép azonban új tartalommal rendelkezik. A Git-véglegesítések általában egy félig stabil címkét biztosítanak.
Jegyzék-kivonat – A tárolóregisztrációs adatbázisba leküldett tárolórendszerképek egy egyedi SHA-256 kivonat vagy kivonat által azonosított jegyzékfájlhoz vannak társítva. Bár egyedi, a kivonat hosszú, nehezen olvasható, és nem felel meg a buildkörnyezetnek.
Buildazonosító – Ez a beállítás lehet a legjobb, mivel valószínűleg növekményes, és lehetővé teszi az adott buildhez való visszatérést az összes összetevő és napló megkereséséhez. A jegyzék-kivonathoz hasonlóan azonban nehéz lehet elolvasni az embert.
Ha a szervezet több buildrendszerrel is rendelkezik, a címke a buildrendszernévvel való előtagja a következő beállítás egyik változata:
<build-system>-<build-id>
. Megkülönböztetheti például a buildeket az API-csapat Jenkins buildrendszerétől és a webcsapat Azure Pipelines-buildrendszerétől.
Telepített rendszerképcímkék zárolása
Ajánlott eljárásként javasoljuk, hogy zárolja az üzembe helyezett rendszerképcímkét úgy, hogy attribútumát értékre false
állítjawrite-enabled
. Ez a gyakorlat megakadályozza, hogy véletlenül eltávolítson egy lemezképet a beállításjegyzékből, és esetleg megzavarja az üzemelő példányokat. A zárolási lépést belefoglalhatja a kiadási folyamatba.
Az üzembe helyezett rendszerképek zárolásával továbbra is eltávolíthat más, üzembe nem helyezett lemezképeket a beállításjegyzékből Azure Container Registry funkciókkal a beállításjegyzék fenntartásához. Például automatikusan kiürítheti a nem megjelölt jegyzékfájlokat vagy a nem zárolt képeket, amelyek régebbiek egy megadott időtartamnál, vagy beállíthat egy adatmegőrzési szabályzatot a nem megjelölt jegyzékfájlokhoz.
Következő lépések
A cikkben szereplő fogalmak részletesebb ismertetését a Docker-címkézés: Ajánlott eljárások a Docker-rendszerképek címkézéséhez és verziószámozásához című blogbejegyzésben találja.
Az Azure-tárolóregisztrációs adatbázis teljesítményének és költséghatékony használatának maximalizálása érdekében tekintse meg a Azure Container Registry ajánlott eljárásait.