Vuto lakuyeretsa "mwanzeru" pazithunzi za chidebe ndi yankho lake mu werf
Nkhaniyi ikufotokoza za zovuta zotsuka zithunzi zomwe zimachulukana m'mabuku olembera (Docker Registry ndi ma analogues ake) mu zenizeni zamapaipi amakono a CI / CD a mapulogalamu amtundu wamtambo omwe amaperekedwa ku Kubernetes. Njira zazikulu zokhuza kufunikira kwa zithunzi ndi zovuta zomwe zimatsatira pakuyeretsa makina, kusunga malo ndikukwaniritsa zosowa zamagulu zimaperekedwa. Pomaliza, pogwiritsa ntchito chitsanzo cha pulojekiti inayake ya Open Source, tidzakuuzani momwe zovutazi zingagonjetsedwe.
Mau oyamba
Chiwerengero cha zithunzi mu kaundula chidebe akhoza kukula mofulumira, kutenga malo osungira zambiri ndipo motero kwambiri kuwonjezera mtengo wake. Kuwongolera, kuchepetsa kapena kusunga kukula kovomerezeka kwa malo omwe amakhala mu registry, amavomerezedwa:
gwiritsani ntchito ma tag okhazikika pazithunzi;
yeretsani zithunzizo mwanjira ina.
Kuletsa koyamba nthawi zina kumakhala kovomerezeka kwa magulu ang'onoang'ono. Ngati opanga ali ndi ma tag okwanira okhazikika (latest, main, test, boris etc.), kaundula sadzatupa kukula ndipo kwa nthawi yaitali simudzayenera kuganiza zoyeretsa konse. Kupatula apo, zithunzi zonse zopanda ntchito zimafufutidwa, ndipo palibe ntchito yotsala yotsuka (zonse zimachitidwa ndi wotolera zinyalala nthawi zonse).
Komabe, njirayi imachepetsa kwambiri chitukuko ndipo sichigwira ntchito kawirikawiri kumapulojekiti amakono a CI/CD. Mbali yofunika kwambiri ya chitukuko inali zochita zokha, zomwe zimakulolani kuyesa, kutumiza ndi kutumiza zatsopano kwa ogwiritsa ntchito mofulumira kwambiri. Mwachitsanzo, m'mapulojekiti athu onse, payipi ya CI imapangidwa yokha ndikudzipereka kulikonse. Mmenemo, chithunzicho chimasonkhanitsidwa, kuyesedwa, kuthamangitsidwa ku maulendo osiyanasiyana a Kubernetes kuti athetse zolakwika ndi macheke otsala, ndipo ngati zonse zili bwino, zosinthazo zimafika kwa wogwiritsa ntchito. Ndipo iyi sichirinso sayansi ya rocket, koma zochitika za tsiku ndi tsiku kwa ambiri - makamaka kwa inu, popeza mukuwerenga nkhaniyi.
Popeza kukonza nsikidzi ndi kupanga magwiridwe antchito atsopano kumachitika mofananira, ndipo kutulutsa kumatha kuchitidwa kangapo patsiku, zikuwonekeratu kuti chitukukochi chimatsagana ndi kuchuluka kwazinthu, zomwe zikutanthauza. zithunzi zambiri mu registry. Zotsatira zake, nkhani yokonzekera kuyeretsa bwino kwa registry imachokera, i.e. kuchotsa zithunzi zosafunika.
Koma mumadziwa bwanji ngati chithunzi chili choyenera?
2. Chachiwiri (chosawonekeratu, komanso chofunikira kwambiri komanso chikugwirizananso ndi kugwiritsira ntchito) - zithunzi zomwe zofunikira pakubweza ngati muwona zovuta zazikulu mu mtundu wamakono. Mwachitsanzo, pankhani ya Helm, izi ndi zithunzi zomwe zimagwiritsidwa ntchito m'mitundu yosungidwa yotulutsidwa. (Mwa njira, mwachisawawa mu Helm malire ndi kukonzanso 256, koma sizingatheke kuti aliyense afunika kupulumutsa izi Mabaibulo ambiri? "bwererani" kwa iwo ngati kuli kofunikira.
3. Chachitatu - Zofuna mapulogalamu: Zithunzi zonse zomwe zikugwirizana ndi ntchito yawo yamakono. Mwachitsanzo, ngati tikuganiza za PR, ndiye kuti ndizomveka kusiya chithunzi chofanana ndi zomwe tachita kale, tinene, zomwe zidachitika kale: mwanjira iyi wopanga akhoza kubwereranso kuntchito iliyonse ndikugwira ntchito ndi zosintha zaposachedwa.
4. Chachinayi - zithunzi zomwe zimagwirizana ndi mitundu ya pulogalamu yathu,ndi. ndizo zomaliza: v1.0.0, 20.04.01/XNUMX/XNUMX, sierra, etc.
NB: Njira zomwe zafotokozedwa apa zidapangidwa kutengera zomwe zidachitika ndi magulu ambiri achitukuko ochokera kumakampani osiyanasiyana. Komabe, zowonadi, malingana ndi zomwe zimachitika pa chitukuko ndi zomangamanga zomwe zimagwiritsidwa ntchito (mwachitsanzo, Kubernetes sikugwiritsidwa ntchito), izi zikhoza kusiyana.
Kuyenerera ndi mayankho omwe alipo
Ntchito zodziwika bwino zokhala ndi zolembera zotengera, monga lamulo, zimapereka malingaliro awo oyeretsera zithunzi: momwemo mutha kufotokozera momwe tag imachotsedwa pa registry. Komabe, mikhalidwe iyi imachepetsedwa ndi magawo monga mayina, nthawi yolenga, ndi kuchuluka kwa ma tag*.
Chizindikiro chokhala ndi mutu pachithunzichi chikuwonetsa zithunzi za chidebe zomwe zatumizidwa ku Kubernetes kwa ogwiritsa ntchito aliwonse (ogwiritsa ntchito, oyesa, oyang'anira, ndi zina zambiri) kapena amagwiritsidwa ntchito ndi omanga pakuchotsa zolakwika ndi zolinga zofanana.
Kodi chimachitika ndi chiyani ngati malamulo oyeretsa angolola kuti zithunzi zisungidwe (osachotsedwa) ndi mayina opatsidwa?
Kodi chosowa chimenechi chimachokera kuti? Chowonadi ndi chakuti sitili gulu losiyana la omanga, koma gulu lomwe limatumikira ambiri a iwo nthawi imodzi, kuthandiza kuthetsa bwinobwino nkhani za CI/CD. Ndipo chida chachikulu chaukadaulo cha izi ndi Open Source utility werf. Chodabwitsa chake ndi chakuti sichimagwira ntchito imodzi, koma imatsagana ndi njira zoperekera mosalekeza pazigawo zonse: kuchokera ku msonkhano mpaka kutumizidwa.
Kusindikiza zithunzi ku registry * (nthawi yomweyo zitamangidwa) ndi ntchito yodziwikiratu ya zofunikira zotere. Ndipo popeza zithunzizo zimayikidwa pamenepo kuti zisungidwe, ndiye - ngati kusungirako kwanu kulibe malire - muyenera kukhala ndi udindo woyeretsa pambuyo pake. Momwe tidapindulira mu izi, kukwaniritsa zofunikira zonse zomwe zafotokozedwa, tidzakambitsirana mopitilira.
* Ngakhale ma registry omwewo angakhale osiyana (Docker Registry, GitLab Container Registry, Harbor, etc.), ogwiritsa ntchito amakumana ndi mavuto omwewo. Yankho lachilengedwe chonse mwa ife silidalira kukhazikitsidwa kwa registry, chifukwa imayendera kunja kwa zolembera zokha ndipo imapereka machitidwe omwewo kwa aliyense.
Mukachotsa nthambi / tag mu Git, zithunzi zomwe zikugwirizana nazo mu registry zidachotsedwa zokha.
Chiwerengero cha zithunzi zomwe zimagwirizanitsidwa ndi ma tag a Git ndi zochita zitha kuwongoleredwa ndi kuchuluka kwa ma tag omwe amagwiritsidwa ntchito mu schema yosankhidwa ndi nthawi yomwe mgwirizano wogwirizanawo udapangidwa.
Ponseponse, kukhazikitsidwa kotsatirako kunakwaniritsa zosowa zathu, koma vuto lina posachedwa likutiyembekezera. Chowonadi ndi chakuti tikugwiritsa ntchito ma tagging masinthidwe otengera Git primitives, tidakumana ndi zolakwika zingapo. (Popeza mafotokozedwe awo akupitilira m'nkhaniyi, aliyense atha kudziwa zambiri apa.) Chifukwa chake, titaganiza zosinthira ku njira yabwino kwambiri yopangira ma tagging (kulemba zomwe zili), tidayenera kuganiziranso za kuyeretsa zithunzi.
Algorithm yatsopano
Chifukwa chiyani? Ndi ma tag otengera zomwe zili, tag iliyonse imatha kukhutiritsa zochita zingapo mu Git. Mukayeretsa zithunzi, simungathenso kuganiza okha kuchokera pakupanga komwe tag yatsopano idawonjezedwa ku registry.
Kwa algorithm yatsopano yoyeretsera, zidasankhidwa kuti zichoke pamakina oyika ndikumanga ndondomeko ya meta, iliyonse yomwe imasunga mulu wa:
chopereka chomwe chinasindikizidwa (zilibe kanthu kuti chithunzicho chinawonjezedwa, chasinthidwa kapena chikhale chofanana mu kaundula wa zotengera);
ndi chizindikiritso chathu chamkati chogwirizana ndi chithunzi chophatikizidwa.
Mβmawu ena, zinaperekedwa kulumikiza ma tag osindikizidwa ndi mabizinesi mu Git.
Kusintha komaliza ndi ma algorithm ambiri
Pokonza zoyeretsa, ogwiritsa ntchito tsopano ali ndi mwayi wotsatira ndondomeko zomwe zimasankha zithunzi zamakono. Ndondomeko iliyonse yotereyi imatanthauzidwa:
maumboni ambiri, i.e. Ma tag a Git kapena nthambi za Git zomwe zimagwiritsidwa ntchito pakusanthula;
ndi malire a zithunzi zomwe zafufuzidwa pamtundu uliwonse kuchokera pa seti.
Kuti tichitire chitsanzo, umu ndi momwe kasinthidwe ka ndondomeko yosasinthika inayamba kuwoneka: