Najlepšie praktiky a odporúčania pre spúšťanie kontajnerov a Kubernetes v produkčných prostrediach

Najlepšie praktiky a odporúčania pre spúšťanie kontajnerov a Kubernetes v produkčných prostrediach
Ekosystém technológií kontajnerizácie sa rýchlo vyvíja a mení, a preto v tejto oblasti chýbajú dobré pracovné praktiky. Napriek tomu sa Kubernetes a kontajnery používajú čoraz častejšie – ako pre modernizáciu starých aplikácií, tak aj pre vývoj moderných cloudových aplikácií. 

Tím Kubernetes aaS od Mail.ru zhromaždili predpovede, rady a najlepšie praktiky pre lídrov trhu od Gartner, 451 Research, StacxRoх a ďalších. Tieto poskytnú zabezpečenie a urýchlenie nasadenia kontajnerov v produkčných prostrediach.

Ako zistiť, či je vaša spoločnosť pripravená nasadiť kontajnery v produkčnom prostredí

Podľa Gartnera, v roku 2022 viac ako 75% organizácií bude používať kontajnerizované aplikácie v produkcii. To je výrazne viac ako v súčasnosti, keď takéto aplikácie využíva menej ako 30% spoločností. 

Podľa 451 Research, predpokladaný trh pre aplikáciu kontajnerových technológií v roku 2022 dosiahne 4,3 miliardy dolárov. To je viac ako dvojnásobok predpovedaných súm z roku 2019, pričom tempo rastu trhu dosahuje 30%.

V v prieskume Portworx a Aqua Security 87% respondentov uviedlo, že v súčasnosti používajú kontajnerové technológie. Pre porovnanie – v roku 2017 bolo takých respondentov 55%. 

Napriek rastúcemu záujmu a nárastu zavádzania kontajnerov, ich spustenie v produkcii si vyžaduje školenie z dôvodu technologickej nezrelosti a nedostatku know-how. Organizácie by mali realisticky posúdiť obchodné procesy, ktoré si vyžadujú kontajnerizáciu aplikácií. IT lídri by mali posúdiť, či majú potrebné zručnosti na pokračovanie s ohľadom na potrebu rýchleho učenia. 

Odborníci z Gartnera považujú otázky na obrázku nižšie za pomoc pri vyhodnocovaní, či ste pripravení na nasadenie kontajnerov v produkcii:

Najlepšie praktiky a odporúčania pre spúšťanie kontajnerov a Kubernetes v produkčných prostrediach

Najčastejšie chyby pri aplikácii kontajnerov v produkcii

Organizácie často podceňujú úsilie potrebné na prevádzkovanie kontajnerov v produkcii. Gartner zistil niekoľko bežných chýb v scenároch zákazníkov pri aplikácii kontajnerov v produkčných prostrediach:

Najlepšie praktiky a odporúčania pre spúšťanie kontajnerov a Kubernetes v produkčných prostrediach

Ako zabezpečiť bezpečnosť kontajnerov

Bezpečnosť nie je niečo, čím sa dá zaoberať „nielen tak“. Musí byť zakomponovaná do procesu DevOps, preto sa objavil aj špeciálny termín — DevSecOps. Organizácie musia plánovať ochranu kontajnerového prostredia počas celého životného cyklu vývoja, ktorý zahŕňa proces zostavovania a vývoja, nasadenie a spustenie aplikácie.

Odporúčania od Gartner: 

  1. Integrujte proces skenovania obrazov aplikácií na vyhľadávanie zraniteľností do pipeline kontinuálnej integrácie/kontinuálneho dodávania (CI/CD). Aplikácie sa skenujú počas fázy zostavovania a spúšťania softvéru. Zdôraznite potrebu skenovania a identifikácie komponentov s otvoreným zdrojovým kódom, knižníc a rámcov. Používanie starších zraniteľných verzií vývojármi je jednou z hlavných príčin zraniteľností kontajnerov.
  2. Zlepšujte konfiguráciu pomocou testov Center for Internet Security (CIS), ktoré sú dostupné pre Docker aj pre Kubernetes.
  3. Určite implementujte kontrolu prístupu, zabezpečte rozdelenie povinností a zavádzaním politiky správy tajomstiev. Dôverné informácie, ako sú kľúče Secure Sockets Layer (SSL) alebo poverenia databázy, sú šifrované orchestrátorom alebo externými službami správy a poskytnuté počas behu
  4. Vyhnite sa kontajnerom s privilégiami pomocou správy bezpečnostných politík, to znižuje potenciálne riziko hackerstva.
  5. Používajte bezpečnostné nástroje, ktoré poskytujú biele zoznamy, behaviorálne monitorovanie a detekciu anomálií na prevenciu škodlivých činností.

Odporúčania od StacxRox:

  1. Využívajte vstavané funkcie Kubernetes. Nastavte prístup pre používateľov pomocou rolí. Uistite sa, že neposkytujete zbytočné povolenia jednotlivým subjektom, aj keď môže trvať určitý čas na premyslenie minimálne potrebných povolení. Môže sa zdať lákavé dať správcovi klastra široké privilégiá, pretože to šetrí čas v počiatočnej fáze. Avšak akýkoľvek kompromis alebo chyba v účte môže mať zničujúce následky v budúcnosti. 
  2. Vyhnite sa duplicitnému udeľovaniu prístupových práv. Niekedy môže byť užitočné, aby sa rôzne úlohy prekrývali, ale to môže viesť k problémom s prevádzkou a vytvoriť "mŕtve zóny" pri odstraňovaní prístupových práv. Okrem toho je dôležité odstraňovať nepoužívané a neaktívne úlohy.
  3. Nastavte sieťové politiky: izolujte moduly, aby ste obmedzili k nim prístup; jasne povoľte prístup na internet tým modulom, ktoré to potrebujú, pomocou štítkov; jasne povoľte komunikáciu medzi tými modulmi, ktoré si potrebujú navzájom komunikovať. 

Ako usporiadať monitorovanie kontajnerov a služieb v nich

Bezpečnosť a monitoring — hlavné problémy spoločností pri nasadzovaní klastrov Kubernetes. Vývojári sa vždy viac zameriavajú na funkcie aplikácií, ktoré vyvíjajú, než na aspekty monitorovania týchto aplikácií.. 

Odporúčania od Gartner:

  1. Snažte sa monitorovať stav kontajnerov alebo služieb v nich spolu s monitoringom hostiteľských systémov.
  2. Uprednostňujte výrobcov a nástroje s hlbokou integráciou do orchestrácie kontajnerov, najmä Kubernetes.
  3. Vyberte si nástroje, ktoré poskytujú podrobné logovanie, automatické objavovanie služieb a odporúčania v reálnom čase s použitím analytiky a/alebo strojového učenia.

V blogu SolarWinds odporúčajú:

  1. Používať nástroje na automatické zistenie a sledovanie metriky kontajnera, koreláciu metrík výkonu, ako je procesor, pamäť a doba bezporuchovosti.
  2. Zabezpečte optimálne plánovanie kapacity predpovedaním termínov vyčerpania kapacity na základe ukazovateľov monitorovania kontajnerov.
  3. Organizujte monitorovanie aplikácií umiestnených v kontajneroch podľa parametrov dostupnosti a výkonu, čo je užitočné ako na plánovanie kapacity, tak na odstraňovanie problémov s výkonom.
  4. Automatizujte pracovné postupy, poskytovaním podpory riadenia a škálovania pre kontajnery a ich prostredia nasadenia.
  5. Automatizujte kontrolu prístupu, aby ste sledovali databázu používateľov, vypínali zastarané a hostiteľské účty, odstraňovali zbytočné privilégia.
  6. Uistite sa, že váš nástrojový súbor dokáže sledovať tieto kontajnery a aplikácie v rôznych prostrediach (súčasných, lokálnych alebo hybridných) na vizualizáciu a porovnávanie výkonu v infrastrukтурe, sieti, systémoch a aplikáciách.

Ako uchovávať údaje a zabezpečiť ich bezpečnosť

S narastajúcim počtom pracovných kontajnerov so zachovaním stavu by mali zákazníci zvážiť umiestnenie údajov mimo hostiteľa, ako aj potrebu chrániť tieto údaje. 

Podľa prieskumu Portworx a Aqua Security, bezpečnosť údajov sa umiestňuje na prvom mieste medzi bezpečnostnými problémami, ktoré uviedlo väčšina respondentov (61%). 

Šifrovanie údajov je základnou bezpečnostnou stratégiou (64%), avšak respondenti tiež využívajú monitorovanie prevádzky

(49%), skenovanie zraniteľností v registroch (49%), skenovanie zraniteľností v CI/CD pipeline (49%) a blokovanie anomálií prostredníctvom ochrany v reálnom čase (48%).

Odporúčania od Gartner:

  1. Vyberte si riešenia na uchovávanie údajov, ktoré sú postavené na princípoch mikroslužbovej architektúry. Je lepšie zvoliť tie, ktoré spĺňajú požiadavky na uchovávanie údajov pre kontajnerové služby, sú hardvérovo nezávislé, spravované prostredníctvom API, majú distribuovanú architektúru a podporujú lokálne a verejné nasadenia v cloude.
  2. Vyhnite sa proprietárnym pluginom a rozhraním. Vyberte si výrobcov, ktorí poskytujú integráciu s Kubernetes a podporujú štandardné rozhrania, ako CSI (Container Storage Interfaces).

Ako pracovať so sieťami

Tradičný model podnikovej siete, kde odborníci na IT vytvárajú sieťové prostredia pre vývoj, testovanie, zabezpečenie kvality a výrobu pre každý projekt, sa nie vždy dobre zhoduje s pracovným tokom nepretržitého vývoja. Okrem toho sa kontajnerové siete týkajú viacerých úrovní.

V v blogu Magalix zhromaždili všeobecné pravidlá, ktorým by mala zodpovedať implementácia klustrového sieťového riešenia:

  1. Pod, ktoré sú naplánované na jednom a tom istom uzle, by mali mať možnosť vymieňať si dáta s ostatnými modulmi bez použitia NAT (prekladu sieťových adries).
  2. Všetky systémové démony (procesy na pozadí, ako napríklad kubelet) bežiace na konkrétnom uzle môžu interagovať s podmi, ktoré bežia na tom istom uzle.
  3. Pody, ktoré používajú hostiteľskú sieť, by mali byť schopné komunikovať so všetkými ostatnými podmi na všetkých ostatných uzloch bez použitia NAT. Upozorňujeme, že hostiteľská sieť je podporovaná iba na Linuxových hostiteľoch.

Sieťové riešenia by mali byť úzko integrované s primitívami a politikami Kubernetes. IT manažéri by mali usilovať o vysokú úroveň automatizácie siete, poskytovať vývojárom správne nástroje a dostatočnú flexibilitu.

Odporúčania od Gartner:

  1. Zistite, či váš CaaS (kontajner ako služba) alebo vaša sieť SDN (Software Defined Network) podporuje Kubernetes siete. Ak nie, alebo ak je podpora nedostatočná, použite pre svoje kontajnery sieťové rozhranie CNI (Container Network Interface), ktoré podporuje potrebnú funkčnosť a politiky.
  2. Uistite sa, že váš CaaS alebo PaaS (platforma ako služba) podporuje vytváranie prichádzajúcich kontrolórov a/alebo vyvažovačov zaťaženia, ktoré rozdeľujú prichádzajúci tok medzi uzlami klastru. Ak takáto možnosť neexistuje, zvážte použitie externých proxy alebo mechanizmov service mesh.
  3. Vyškolte svojich sieťových inžinierov na prácu so sieťami Linux a nástrojmi na automatizáciu siete, aby ste znížili zručnostný rozdiel a zvýšili flexibilitu.

Ako spravovať životný cyklus aplikácií

Pre automatizované a plynulé doručovanie aplikácií je potrebné doplniť orchestráciu kontajnerov ďalšími nástrojmi automatizácie, ako sú produkty infraštruktúry ako kód (IaC). Patrí sem Chef, Puppet, Ansible a Terraform. 

Tiež sú potrebné prostriedky na automatizáciu zostavenia a nasadenia aplikácií (pozri "Magický kvadrant pre orchestráciu vydania aplikácií"). Kontajnery tiež poskytujú možnosti pre škálovanie, podobné možnostiam, ktoré existovali pri nasadzovaní virtuálnych strojov (VM). Tým pádom by mali IT manažéri mať nástroje na správu životného cyklu kontajnerov.

Odporúčania od Gartner:

  1. Stanovte štandardy základných obrazov kontajnerov z hľadiska veľkosti, licencovania a flexibility na pridávanie komponentov vývojármi.
  2. Používajte systémy na správu konfigurácie na riadenie životného cyklu kontajnerov, ktoré uchovávajú konfiguráciu v vrstvách na základe základných obrazov nachádzajúcich sa v verejných alebo súkromných repozitároch.
  3. Integrujte platformu CaaS s automatizačnými nástrojmi na automatizáciu celého pracovného procesu aplikácie.

Ako spravovať kontajnery pomocou orchestrátorov

Základné funkcie na nasadenie kontajnerov sú poskytované na úrovniach orchesterovania a plánovania. Pri plánovaní sú kontajnery umiestnené na najoptimálnejších hostiteľoch v klastre, ako stanovujú požiadavky úrovne orchesterovania. 

Kubernetes sa de facto stal štandardom orchestrácie kontajnerov s aktívnou komunitou, ktorú podporuje väčšina popredných komerčných poskytovateľov. 

Odporúčania od Gartner:

  1. Definujte základné požiadavky na prvky správy bezpečnosti, monitorovanie, správu politík, uchovávanie údajov, správu sietí a životný cyklus kontajnerov.
  2. Na základe týchto požiadaviek vyberte nástroj, ktorý najlepšie vyhovuje vašim potrebám a scenárom použitia.
  3. Využite výskumy Gartner (pozri „Ako zvoliť model nasadenia Kubernetes“), aby ste pochopili výhody a nevýhody rôznych modelov nasadenia Kubernetes a vybrali ten najvhodnejší pre vašu úlohu.
  4. Vyberte poskytovateľa, ktorý môže zabezpečiť hybridné orchesterovanie pracovných kontajnerov v rôznych prostrediach s tesnou integráciou s backendmi, spoločnými plánmi správy a konzistentnými modelmi cenotvorby.

Ako využiť kapacity poskytovateľov cloudu

V Gartneri sa považuje, že záujem o nasadenie kontajnerov v verejnom cloude IaaS rastie kvôli dostupnosti hotových ponúk CaaS a tiež tesnej integrácii týchto ponúk s inými produktmi, ktoré ponúkajú poskytovatelia cloudu.

Cloude IaaS ponúkajú konzumáciu zdrojov na požiadanie, rýchlu škálovateľnosť a správu služieb, ktorá pomáha vyhnúť sa potrebe hlbokých znalostí o infraštruktúre a jej údržbe. Väčšina poskytovateľov cloudu ponúka službu správy kontajnerov a niektorí ponúkajú niekoľko možností orchestrácie. 

Kľúčoví poskytovatelia spravovaných cloudových služieb sú uvedení v tabuľke: 

Cloudový poskytovateľ
Typ služieb
Produkt/služba

Alibaba
Native Cloud Service
Alibaba Cloud Container Service, Alibaba Cloud Container Service for Kubernetes

Amazon Web Services (AWS)
Native Cloud Service
Amazon Elastic Container Services (ECS), Amazon ECS for Kubernetes (EKS), AWS Fargate

Giant Swarm
MSP
Giant Swarm Managed Kubernetes Infrastructure

Google
Native Cloud Service
Google Container Engine (GKE)

IBM
Native Cloud Service
IBM Cloud Kubernetes Service

Microsoft
Native Cloud Service
Azure Kubernetes Service, Azure Service Fabric

Oracle
Native Cloud Service
OCI Container Engine for Kubernetes

Platform9
MSP
Managed Kubernetes

Red Hat
Hosted Service
OpenShift Dedicated & Online

VMware
Hosted Service
Cloud PKS (Beta)

Mail.ru Cloud Solutions*
Native Cloud Service
Mail.ru Cloud Containers

* Nebudeme skrývať, my sme sa tu sami pridali pri preklade 🙂

Poskytovatelia verejných cloudov tiež pridávajú nové funkcie a vydávajú lokálne produkty. V najbližšej budúcnosti budú poskytovatelia cloudov rozvíjať podporu hybridných cloudov a multi-cloudových prostredí. 

Odporúčania Gartner:

  1. Objektívne zhodnoťte možnosti vašej organizácie nasadzovať a spravovať relevantné nástroje a zvážte alternatívne služby na správu cloudových kontajnerov.
  2. Dôkladne vyberajte softvér, používajte open source tam, kde je to možné.
  3. Vyberajte poskytovateľov s jednotnými operačnými modelmi v hybridných prostrediach, ktorí ponúkajú správu zjednotených klastrov z jednej konzoly a tiež poskytovateľov, ktorí uľahčujú samostatné využívanie IaaS.

Niekoľko tipov na výber poskytovateľa Kubernetes aaS z blogu Replex:

  1. Hľadajte distribúcie, ktoré podporujú vysokú dostupnosť priamo z krabice. To zahŕňa podporu viacerých základných architektúr, vysoko dostupné komponenty etcd a tiež zálohovanie a obnovu.
  2. Aby ste zabezpečili mobilitu prostredí Kubernetes, je lepšie vyberať cloudových poskytovateľov, ktorí podporujú široké spektrum modelov nasadenia: od lokálnych cez hybridné po multi-cloudové. 
  3. Ponuky poskytovateľov tiež stojí za to hodnotiť s ohľadom na jednoduchosť nastavenia, inštalácie a vytvorenia klastru, ako aj aktualizácií, monitorovania a odstraňovania problémov. Základnou požiadavkou je podpora plne automatizovaných aktualizácií klastru s nulovým časom výpadku. Vybrané riešenie by malo umožniť aj manuálne spustenie aktualizácií. 
  4. Správa identity a prístupu je dôležitá z hľadiska bezpečnosti aj správy. Uistite sa, že vybraný Kubernetes distribúcia podporuje integráciu s autentifikačnými a autorizačnými prostriedkami, ktoré sa používajú vo vnútri spoločnosti. RBAC a podrobná kontrola prístupu sú tiež dôležitými funkciami.
  5. Vybraný distribúcia by mala mať vlastné sieťové riešenie, definované softvérom a pokrývajúce široké spektrum požiadaviek, ktoré kladú rôzne aplikácie alebo infraštruktúra, alebo by mala podporovať jednu z populárnych implementácií sietí založených na CNI, vrátane Flannel, Calico, kube-router alebo OVN.

Zavádzanie kontajnerov do výroby sa stáva hlavným trendom, čo dokazujú výsledky prieskumu, ktorý bol uskutočnený na sesiách Gartner o infraštruktúre, operáciách a cloudových stratégiách (IOCS) v decembri 2018:

Najlepšie praktiky a odporúčania pre spúšťanie kontajnerov a Kubernetes v produkčných prostrediach
Ako vidíme, 27% respondentov už používa kontajnery v praxi, zatiaľ čo 63% plánuje ich zaviesť.

V v prieskume Portworx a Aqua Security 24% respondentov uviedlo, že investujú viac ako pol milióna dolárov ročne do kontajnerových technológií, a 17% respondentov míňa na tieto technológie viac ako milión dolárov ročne. 

Článok pripravil tím cloudovej platformy Mail.ru Cloud Solutions.

Čo ďalšie si prečítať na túto tému:

  1. Najlepšie praktiky DevOps: správa DORA.
  2. Kubernetes v duchu pirátstva s šablónou na zavedenie.
  3. 25 užitočných nástrojov pre nasadenie a implementáciu Kubernetes.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster