Programovanie

Pochopenie Azure Container Registry

Keď sa dostanete na koniec potrubia zostavy devops, zostane vám sada artefaktov: binárne súbory, konfiguračné súbory, webové stránky, dokonca aj virtuálne stroje a kontajnery. Sú to komponenty, ktoré spolu vytvárajú modernú aplikáciu. Zabalenie čo najväčšieho počtu týchto komponentov do kontajnera má veľký zmysel a poskytuje vám jednoduchší model nasadenia. Ale to ponecháva novú skupinu otázok: Ako spravujete tieto kontajnery a ako ich nasadzujete v cloudovej aplikácii v globálnom meradle?

Služby ako GitHub ponúkajú súkromné ​​a verejné registre pre vaše artefakty zostavenia pomocou otvorených štandardov a otvoreného zdrojového kódu. To isté urobila aj spoločnosť Azure, ktorá ako základ pre svoj vlastný register kontajnerov použila open source Docker Registry 2.0 v súlade s iniciatívou Open Container Initiative. Nie je určené len na kontajnery; s rastúcim významom cloudových natívnych aplikácií založených na Kubernetes to malo byť univerzálnym úložiskom pre všetky vaše artefakty zostavenia kompatibilné s OCI. To teraz zahŕňa Helmove grafy, takže môžete použiť Azure Container Registry (ACR) ako centrum nasadenia pre vaše aplikácie, pomocou Helm 3.0 na doručenie do inštancií Kubernetes.

Začíname s ACR

Nástroje ako Azure Container Registry sa najlepšie považujú za súkromné ​​registre. Prístup k vášmu registru máte iba vy a váš tím a služby, ktoré automatizujú doručovanie do služieb Azure, ktoré používajú kontajnery. Známe nástroje, ako sú Azure DevOps a Jenkins, je možné nakonfigurovať tak, aby používali register ako koncový bod zostavenia, takže môžete prejsť priamo zo zlúčenia požiadavky na načítanie do kontajnera v Azure, ktorý je pripravený na nasadenie.

Microsoft v súčasnosti ponúka tri verzie ACR: Basic, Standard a Premium v ​​troch rôznych cenových bodoch. Všetci pracujú s webovými háčikmi, na overenie používajú Azure Active Directory a majú schopnosť mazať obrázky. Basic má najmenšiu kapacitu; Premium obsahuje podporu pre replikáciu naprieč regiónmi a pridáva podporu podpisu obrázkov. S najväčšou pravdepodobnosťou použijete verziu Standard, ktorá vám poskytne 100 GB úložného priestoru, šírku pásma sťahovania 60 Mb / s a ​​podporuje až 10 webových pripojení. Cena je za register za deň, s ďalšími sieťovými nákladmi a samostatným poplatkom za využitie procesora pri vytváraní nových obrazov kontajnerov.

Vytvorenie nového registra kontajnerov je pomerne jednoduché, a to pomocou rozhrania Azure CLI alebo portálu. Inštancie ACR sú viazané na skupiny prostriedkov, takže môžete mať samostatný register pre každú aplikáciu spustenú v Azure. Po vytvorení registra dostanete adresu URL servera na prihlásenie. Toto je koncový bod pre integráciu s nástrojmi devops alebo inštanciami Docker vašich vývojárov na pracovnej ploche.

Interakcia s registrom ACR

Azure CLI akr príkaz je pravdepodobne najužitočnejším spôsobom interakcie s registrom. Prihláste sa a môžete do neho začať tlačiť obrázky kontajnera. Je dobré začať pracovať na pracovnej ploche, aby ste získali predstavu o tom, ako to funguje, a to tak, že označíte lokálny obraz Dockeru názvom servera ACR a potom použijete docker push príkaz na odoslanie obrázka do registra ACR, čím sa automaticky vytvorí príslušné úložisko v Azure. Akonáhle je obraz v úložisku ACR, môžete pomocou nástrojov príkazového riadku vypísať súbory, odstrániť ich a na ich spustenie dokonca použiť aj príkazy Dockeru.

Automatizácia ACR môže pomocou aplikácie ACR Tasks výrazne znížiť vaše pracovné zaťaženie. Úlohy zhromažďujú to, čo by bola sada skriptov Azure CLI, do jednoduchých pracovných postupov, ktoré spravujú bežné operácie. Napríklad ponúkajú sériu spúšťačov, ktoré automatizujú vytváranie nových obrazov, keď dôjde k zmenám vo vašom potrubí zostavovania alebo vo vašom systéme nepretržitej integrácie / nepretržitého doručovania (CI / CD).

Jedna z možností, rýchla úloha, zabalí všetky fázy použité na zostavenie sady súborov do kontajnera do jedného príkazu. Potrebujete iba pracovný adresár so svojimi súbormi, existujúci register ACR a súbor Dockerfile. Jediný príkaz tieto súbory vezme a použije súbor Docker na vytvorenie obrázka, ktorý sa automaticky uloží do úložiska ACR. Ďalšia rýchla úloha spustí obraz na vami vybranom hostiteľovi.

Dajte ich dokopy a máte základnú sadu nástrojov na testovanie obrázkov kontajnerov. Zložitejšie nasadenia budú vyžadovať zložitejšie skripty - napríklad nasadenie kontajnera do spravovanej inštancie Kubernetes pomocou AKS. Prípadne môžete celý proces zautomatizovať, vytvoriť úlohu, ktorá monitoruje repo GitHub na zmeny vo vetve nasadenia, vytvoriť nový obraz, keď zlúčite požiadavku na stiahnutie do vetvy alebo vykonáte potvrdenie.

Zaistenie kontajnerov v AČR

Práca s ACR má bezpečnostné výhody. Jedným z veľkých problémov, s ktorými sa stretáva každý, kto vytvára moderné aplikácie, je pochopenie a správa vášho stromu závislostí. Ako zistíte, či je nová verzia knižnice kľúčov alebo zakrytý komponent bezpečný? Musíte byť schopní dôverovať svojim kontajnerom a ACR ponúka dva spôsoby, ako zabezpečiť, aby ste vždy nasadili dôveryhodný kód.

Najskôr poskytuje podpísané obrázky kontajnera, takže váš klaster Kubernetes môže overiť, či je jeho spustený kód kód, ktorý ste do svojho registra vložili z vášho systému zostavovania. Podpísané obrázky zabezpečujú, že nikto počas manipulácie s obsahom kontajnera nemanipuloval. Po druhé, ACR sa môže integrovať do centra zabezpečenia Azure. To vám umožňuje skenovať obrázky, ktoré sú uložené v registri, a kontrolovať nielen chyby zabezpečenia v kóde a v základnom obrázku, ale aj vo všetkých závislostiach, ktoré sú obsiahnuté alebo odkazované zo súboru s obrázkom. Pomocou skenera Qualys vám správy z Centra zabezpečenia pomôžu identifikovať zraniteľné miesta s odporúčaniami na opravy.

Veci budú zaujímavé, keď začnete používať svoje inštancie ACR na viac ako kontajnery. Spoločnosť OCI začala otvárať štandard registra pre artefakty, pričom Helm, de facto nástroj na nasadenie aplikácií Kubernetes, ho používa v najnovšom vydaní. V tomto priemysle došlo k množeniu registrov a úložísk a má zmysel štandardizovať jeden pre všetky komponenty vašej aplikácie, najmä ak sú všetky súčasťou tej istej cloudovej natívnej aplikácie.

ACR teraz podporuje OCI register ako úložisko (ORAS). Pomocou nástroja ORAS môžete tlačiť a vytiahnuť všetky svoje artefakty z rovnakého úložiska ACR. Nainštalujte ORAS na svoje vývojárske stroje alebo pridajte podporu do svojho kanálu zostavovania. Po prihlásení do svojho registra pomocou principála služby Azure Active Directory, ktorý má práva push, použite nástroj príkazového riadku ORAS na odoslanie nových artefaktov do registra.

Používanie nástroja príkazového riadku v rozhraní Azure CLI vám dáva flexibilitu pri vytváraní nástroja ORAS push do vášho výberu nástrojov na zostavenie ako skriptu, ktorý je možné volať podľa potreby. Rovnaký nástroj príkazového riadku môže načítať artefakty a môžete ho zabudovať do svojich skriptov nasadenia, aby sa všetky komponenty, ktoré tvoria vaše aplikácie, mohli automaticky nasadiť, keď nová zostava postúpi do vašich úložísk ACR.

Súkromný kód potrebuje súkromné ​​úložiská a udržiavanie vašich kontajnerov a ďalších artefaktov zostavovania v Azure ich dáva tam, kde sú potrebné. Kompletný proces zostavenia devops by mal prejsť od odovzdania kódu k spusteniu aplikácie bez ľudského zásahu, pričom nástroje, ako je Azure Container Registry a jej pridružená automatizácia úloh, by mali byť základnými komponentmi v akomkoľvek potrubí zameranom na Azure. Nielenže sa kód automaticky ukladá a nasadzuje v globálnom meradle, ale tiež sa pri každej zmene skenuje z hľadiska bezpečnostných rizík.

$config[zx-auto] not found$config[zx-overlay] not found