Osvedčené postupy a osvedčené postupy pre spustenie kontajnerov a Kubernetes v produkčných prostrediach

Osvedčené postupy a osvedčené postupy pre spustenie kontajnerov a Kubernetes v produkčných prostrediach
Ekosystém kontajnerových technológií sa rýchlo vyvíja a mení, takže v tejto oblasti chýbajú dobré pracovné postupy. Kubernetes a kontajnery sa však stále viac používajú, a to ako na modernizáciu starších aplikácií, tak aj na vývoj moderných cloudových aplikácií. 

Tím Kubernetes aaS z Mail.ru zhromaždili predpovede, rady a osvedčené postupy pre lídrov na trhu od spoločností Gartner, 451 Research, StacxRoх a ďalších. Umožnia a urýchlia nasadenie kontajnerov v produkčných prostrediach.

Ako zistiť, či je vaša spoločnosť pripravená na nasadenie kontajnerov v produkčnom prostredí

Podľa spoločnosti Gartner, v roku 2022 bude viac ako 75 % organizácií využívať vo výrobe kontajnerové aplikácie. To je výrazne viac ako v súčasnosti, keď takéto aplikácie využíva menej ako 30 % firiem. 

Podľa 451 VýskumPredpokladaný trh s aplikáciami kontajnerových technológií v roku 2022 bude 4,3 miliardy USD. To je viac ako dvojnásobok sumy plánovanej v roku 2019 s mierou rastu trhu 30 %.

В Prieskum Portworx a Aqua Security 87 % opýtaných uviedlo, že v súčasnosti používa kontajnerové technológie. Pre porovnanie, v roku 2017 bolo takýchto respondentov 55 %. 

Napriek rastúcemu záujmu o kontajnery a ich osvojeniu si ich uvedenie do výroby vyžaduje zaučenie kvôli technologickej nezrelosti a nedostatku know-how. Organizácie musia byť realistické, pokiaľ ide o obchodné procesy, ktoré vyžadujú kontajnerizáciu aplikácií. IT lídri by mali zhodnotiť, či majú schopnosti napredovať s potrebou rýchlo sa učiť. 

Odborníci Gartner Myslíme si, že otázky na obrázku nižšie vám pomôžu určiť, či ste pripravení nasadiť kontajnery v produkcii:

Osvedčené postupy a osvedčené postupy pre spustenie kontajnerov a Kubernetes v produkčných prostrediach

Najčastejšie chyby pri používaní kontajnerov vo výrobe

Organizácie často podceňujú úsilie potrebné na obsluhu kontajnerov vo výrobe. Gartner objavil Niektoré bežné chyby v zákazníckych scenároch pri používaní kontajnerov v produkčnom prostredí:

Osvedčené postupy a osvedčené postupy pre spustenie kontajnerov a Kubernetes v produkčných prostrediach

Ako udržať kontajnery v bezpečí

Bezpečnosť sa nedá riešiť „neskôr“. Musí byť zabudovaný do procesu DevOps, a preto existuje dokonca špeciálny termín - DevSecOps. Organizácie musia plánovať ochrana životného prostredia vášho kontajnera počas celého životného cyklu vývoja, ktorý zahŕňa proces zostavenia a vývoja, nasadenie a spustenie aplikácie.

Odporúčania od spoločnosti Gartner

  1. Integrujte proces skenovania obrázkov aplikácií z hľadiska slabých miest do svojho kanála nepretržitej integrácie/kontinuálneho doručovania (CI/CD). Aplikácie sa kontrolujú vo fáze vytvárania a spúšťania softvéru. Zdôraznite potrebu skenovania a identifikácie open source komponentov, knižníc a rámcov. Vývojári používajúci staré zraniteľné verzie sú jednou z hlavných príčin zraniteľnosti kontajnerov.
  2. Zlepšite svoju konfiguráciu pomocou testov Center for Internet Security (CIS), ktoré sú dostupné pre Docker aj Kubernetes.
  3. Nezabudnite vynútiť kontroly prístupu, zabezpečiť oddelenie povinností a implementovať politiku správy tajomstiev. Citlivé informácie, ako sú kľúče SSL (Secure Sockets Layer) alebo poverenia databázy, sú zašifrované orchestrátorom alebo službami správy tretích strán a vystavené za behu.
  4. Vyhnite sa zvýšeným kontajnerom spravovaním bezpečnostných politík, aby ste znížili potenciálne riziká narušenia.
  5. Použite bezpečnostné nástroje, ktoré poskytujú bielu listinu, monitorovanie správania a detekciu anomálií, aby ste zabránili škodlivej činnosti.

Odporúčania od StacxRox:

  1. Využite vstavané možnosti Kubernetes. Nastavte prístup pre používateľov pomocou rolí. Uistite sa, že neudeľujete zbytočné povolenia jednotlivým entitám, aj keď môže chvíľu trvať, kým si premyslíte minimálne požadované povolenia. Môže byť lákavé poskytnúť správcovi klastra široké privilégiá, pretože to spočiatku šetrí čas. Akýkoľvek kompromis alebo chyby v účte však môžu mať neskôr zničujúce následky. 
  2. Vyhnite sa duplicitným prístupovým povoleniam. Niekedy môže byť užitočné, ak sa rôzne roly prekrývajú, ale to môže viesť k prevádzkovým problémom a tiež vytvárať slepé miesta pri odstraňovaní povolení. Je tiež dôležité odstrániť nepoužívané a neaktívne roly.
  3. Nastavte sieťové politiky: izolujte moduly, aby ste k nim obmedzili prístup; explicitne povoliť prístup na internet tým modulom, ktoré to potrebujú, pomocou značiek; Explicitne povoliť komunikáciu medzi tými modulmi, ktoré spolu potrebujú komunikovať. 

Ako organizovať monitorovanie kontajnerov a služieb v nich

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

Odporúčania od spoločnosti Gartner:

  1. Pokúste sa monitorovať stav kontajnerov alebo služieb v nich v spojení s monitorovaním hostiteľských systémov.
  2. Hľadajte dodávateľov a nástroje s hlbokou integráciou do orchestrácie kontajnerov, najmä Kubernetes.
  3. Vyberte si nástroje, ktoré poskytujú podrobné protokolovanie, automatické zisťovanie služieb a odporúčania v reálnom čase pomocou analýzy a/alebo strojového učenia.

Blog SolarWinds radí:

  1. Použite nástroje na automatické zisťovanie a sledovanie metrík kontajnerov, korelujúcich metrík výkonu, ako sú CPU, pamäť a doba prevádzky.
  2. Zabezpečte optimálne plánovanie kapacity predpovedaním dátumov vyčerpania kapacity na základe metrík monitorovania kontajnerov.
  3. Monitorujte dostupnosť a výkon kontajnerovaných aplikácií, čo je užitočné pri plánovaní kapacity a riešení problémov s výkonom.
  4. Automatizujte pracovné toky poskytnutím podpory správy a škálovania kontajnerov a ich hostiteľských prostredí.
  5. Automatizujte riadenie prístupu na monitorovanie používateľskej základne, deaktivujte zastarané účty a účty hostí a odstráňte nepotrebné privilégiá.
  6. Zaistite, aby vaša sada nástrojov mohla monitorovať tieto kontajnery a aplikácie vo viacerých prostrediach (cloud, lokálne alebo hybridné), aby ste mohli vizualizovať a porovnávať výkon v rámci infraštruktúry, siete, systémov a aplikácií.

Ako uchovávať dáta a zabezpečiť ich bezpečnosť

S nárastom stavových pracovných kontajnerov musia klienti zvážiť prítomnosť údajov mimo hostiteľa a potrebu chrániť tieto údaje. 

Podľa Prieskum Portworx a Aqua Security, bezpečnosť údajov je na prvom mieste v zozname bezpečnostných obáv, ktoré uvádza väčšina respondentov (61 %). 

Šifrovanie dát je hlavnou bezpečnostnou stratégiou (64 %), no respondenti využívajú aj runtime monitoring

(49 %), skenovanie zraniteľností v registroch (49 %), skenovanie zraniteľností v kanáloch CI/CD (49 %) a blokovanie anomálií prostredníctvom ochrany pri spustení (48 %).

Odporúčania od spoločnosti Gartner:

  1. Vyberte si úložné riešenia postavené na princípoch architektúra mikroslužieb. Je lepšie zamerať sa na tie, ktoré spĺňajú požiadavky na ukladanie dát pre kontajnerové služby, sú hardvérovo nezávislé, riadené API, majú distribuovanú architektúru, podporujú lokálne nasadenie a nasadenie vo verejnom cloude.
  2. Vyhnite sa proprietárnym doplnkom a rozhraniam. Vyberte si dodávateľov, ktorí poskytujú integráciu Kubernetes a podporujú štandardné rozhrania, ako je CSI (Container Storage Interfaces).

Ako pracovať so sieťami

Tradičný model podnikovej siete, kde IT tímy vytvárajú pre každý projekt sieťový vývoj, testovanie, zabezpečenie kvality a produkčné prostredia, nie vždy dobre zapadá do pracovného toku nepretržitého vývoja. Okrem toho kontajnerové siete zahŕňajú viacero vrstiev.

В blog Magalix zhromaždené pravidlá na vysokej úrovni, ktoré musí spĺňať implementácia klastrového sieťového riešenia:

  1. Moduly naplánované v rovnakom uzle musia byť schopné komunikovať s inými modulmi bez použitia NAT (Network Address Translation).
  2. Všetky systémové démony (procesy na pozadí ako kubelet) spustené na určitom uzle môžu komunikovať s modulmi bežiacimi na rovnakom uzle.
  3. Použitie strukov hostiteľská sieť, musí byť schopný komunikovať so všetkými ostatnými modulmi na všetkých ostatných uzloch bez použitia NAT. Upozorňujeme, že sieť hostiteľov je podporovaná iba na hostiteľoch Linux.

Sieťové riešenia musia byť úzko integrované s primitívami a politikami Kubernetes. IT lídri by sa mali snažiť o vysoký stupeň automatizácie siete a poskytnúť vývojárom tie správne nástroje a dostatočnú flexibilitu.

Odporúčania od spoločnosti Gartner:

  1. Zistite, či váš CaaS (kontajner ako služba) alebo vaša SDN (softvérom definovaná sieť) podporuje siete Kubernetes. Ak nie alebo je podpora nedostatočná, použite pre svoje kontajnery sieťové rozhranie CNI (Container Network Interface), ktoré podporuje potrebné funkcie a zásady.
  2. Uistite sa, že váš CaaS alebo PaaS (platforma ako služba) podporuje vytváranie kontrolórov vstupu a/alebo vyrovnávačov záťaže, ktoré distribuujú prichádzajúcu prevádzku medzi uzly klastra. Ak to nie je možné, preskúmajte použitie serverov proxy tretích strán alebo servisných sietí.
  3. Vyškolte svojich sieťových inžinierov o sieťach Linux a nástrojoch na automatizáciu siete, aby ste znížili medzeru v zručnostiach a zvýšili obratnosť.

Ako riadiť životný cyklus aplikácie

Pre automatizované a bezproblémové poskytovanie aplikácií je potrebné doplniť orchestráciu kontajnerov o ďalšie automatizačné nástroje, ako sú produkty infraštruktúry ako kód (IaC). Patria sem Chef, Puppet, Ansible a Terraform. 

Vyžadujú sa aj automatizačné nástroje na vytváranie a zavádzanie aplikácií (pozri „Magický kvadrant pre organizáciu vydávania aplikácií"). Kontajnery tiež poskytujú možnosti rozšírenia podobné tým, ktoré sú k dispozícii pri nasadzovaní virtuálnych počítačov (VM). Preto musia mať IT lídri nástroje na správu životného cyklu kontajnerov.

Odporúčania od spoločnosti Gartner:

  1. Nastavte štandardy pre obrázky základných kontajnerov na základe veľkosti, licencovania a flexibility pre vývojárov pri pridávaní komponentov.
  2. Použite systémy na správu konfigurácie na správu životného cyklu kontajnerov, ktoré vrstvia konfiguráciu na základe základných obrázkov umiestnených vo verejných alebo súkromných archívoch.
  3. Integrujte svoju platformu CaaS s automatizačnými nástrojmi na automatizáciu celého pracovného toku aplikácie.

Ako spravovať kontajnery pomocou orchestrátorov

Základná funkcia pre nasadenie kontajnerov je poskytovaná na úrovni orchestrácie a plánovania. Počas plánovania sú kontajnery umiestnené na najoptimálnejších hostiteľoch v klastri, ako to diktujú požiadavky na vrstvu orchestrácie. 

Kubernetes sa stal de facto štandardom orchestrácie kontajnerov s aktívnou komunitou a je podporovaný väčšinou popredných komerčných predajcov. 

Odporúčania od spoločnosti Gartner:

  1. Definujte základné požiadavky na bezpečnostné kontroly, monitorovanie, správu politík, perzistenciu údajov, sieťovanie a správu životného cyklu kontajnerov.
  2. Na základe týchto požiadaviek vyberte nástroj, ktorý najlepšie vyhovuje vašim požiadavkám a prípadom použitia.
  3. Použite prieskum Gartner (pozrite si "Ako si vybrať model nasadenia Kubernetes"), aby ste pochopili výhody a nevýhody rôznych modelov nasadenia Kubernetes a vybrali ten najlepší pre svoju aplikáciu.
  4. Vyberte poskytovateľa, ktorý môže poskytnúť hybridnú orchestráciu pre pracovné kontajnery vo viacerých prostrediach s úzkou integráciou backendu, spoločnými plánmi správy a konzistentnými cenovými modelmi.

Ako využiť možnosti cloudových poskytovateľov

Gartner veríže záujem o nasadenie kontajnerov vo verejnom cloude IaaS rastie vďaka dostupnosti hotových ponúk CaaS, ako aj tesnej integrácii týchto ponúk s inými produktmi, ktoré ponúkajú poskytovatelia cloudu.

Cloudy IaaS ponúkajú spotrebu zdrojov na požiadanie, rýchlu škálovateľnosť a riadenie služieb, čo pomôže vyhnúť sa potrebe hĺbkových znalostí infraštruktúry a jej údržby. Väčšina poskytovateľov cloudu ponúka službu správy kontajnerov a niektorí ponúkajú viacero možností orchestrácie. 

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

Poskytovateľ cloudu
Typ služby
Produkt/služba

Alibaba
Natívna cloudová služba
Alibaba Cloud Container Service, Alibaba Cloud Container Service pre Kubernetes

Amazon Web Services (AWS)
Natívna cloudová služba
Amazon Elastic Container Services (ECS), Amazon ECS pre Kubernetes (EKS), AWS Fargate

Obrovský roj
MSP
Giant Swarm Managed Infrastructure Kubernetes

Google
Natívna cloudová služba
Google Container Engine (GKE)

IBM
Natívna cloudová služba
Služba IBM Cloud Kubernetes

Microsoft
Natívna cloudová služba
Služba Azure Kubernetes, Azure Service Fabric

veštec
Natívna cloudová služba
OCI kontajnerový engine pre Kubernetes

Platform9
MSP
Spravovaný Kubernetes

Red Hat
Hosťovaná služba
OpenShift Dedicated & Online

VMware
Hosťovaná služba
Cloud PKS (Beta)

Cloudové riešenia Mail.ru*
Natívna cloudová služba
Cloudové kontajnery Mail.ru

* Nebudeme to skrývať, pridali sme sa sem počas prekladu :)

Poskytovatelia verejného cloudu tiež pridávajú nové možnosti a vydávajú lokálne produkty. V blízkej budúcnosti poskytovatelia cloudu vyvinú podporu pre hybridné cloudy a multi-cloudové prostredia. 

Odporúčania Gartner:

  1. Objektívne zhodnoťte schopnosť vašej organizácie nasadiť a spravovať vhodné nástroje a zvážiť alternatívne služby správy cloudových kontajnerov.
  2. Softvér vyberajte opatrne, ak je to možné, používajte open source.
  3. Vyberte si poskytovateľov s bežnými operačnými modelmi v hybridných prostrediach, ktorí ponúkajú správu združených klastrov na jednom paneli, ako aj poskytovateľov, ktorí uľahčujú vlastné hosťovanie IaaS.

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

  1. Oplatí sa hľadať distribúcie, ktoré podporujú vysokú dostupnosť hneď po vybalení. To zahŕňa podporu viacerých hlavných architektúr, vysoko dostupné komponenty etcd a zálohovanie a obnovu.
  2. Na zabezpečenie mobility vo vašich prostrediach Kubernetes je najlepšie vybrať si poskytovateľov cloudu, ktorí podporujú širokú škálu modelov nasadenia, od lokálnych cez hybridné až po multicloud. 
  3. Ponuky poskytovateľov by sa mali hodnotiť aj na základe jednoduchosti nastavenia, inštalácie a vytvorenia klastra, ako aj aktualizácií, monitorovania a riešenia problémov. Základnou požiadavkou je podpora plne automatizovaných aktualizácií klastrov s nulovými prestojmi. Riešenie, ktoré si vyberiete, by vám malo umožniť aj manuálne spúšťanie aktualizácií. 
  4. Správa identity a prístupu je dôležitá z hľadiska bezpečnosti aj správy. Uistite sa, že distribúcia Kubernetes, ktorú si vyberiete, podporuje integráciu s nástrojmi overovania a autorizácie, ktoré používate interne. RBAC a jemnozrnné riadenie prístupu sú tiež dôležité sady funkcií.
  5. Distribúcia, ktorú si vyberiete, musí mať buď natívne softvérovo definované sieťové riešenie, ktoré pokrýva široký rozsah rôznych požiadaviek na aplikácie alebo infraštruktúru, alebo musí podporovať jednu z populárnych sieťových implementácií na báze CNI, vrátane Flannel, Calico, kube-router alebo OVN.

Hlavným smerom sa stáva zavádzanie kontajnerov do výroby, o čom svedčia aj výsledky prieskumu uskutočneného dňa Relácie Gartner o infraštruktúre, prevádzke a cloudových stratégiách (IOCS) v decembri 2018:

Osvedčené postupy a osvedčené postupy pre spustenie kontajnerov a Kubernetes v produkčných prostrediach
Ako vidíte, kontajnery pri svojej práci využíva už 27 % opýtaných a 63 % to plánuje.

В Prieskum Portworx a Aqua Security 24 % respondentov uviedlo, že investuje viac ako pol milióna dolárov ročne do kontajnerových technológií a 17 % respondentov na ne minulo viac ako milión dolárov ročne. 

Článok pripravil tím cloudovej platformy Cloudové riešenia Mail.ru.

Čo si ešte prečítať k téme:

  1. DevOps Best Practices: DORA Report.
  2. Kubernetes v duchu pirátstva so šablónou na implementáciu.
  3. 25 užitočných nástrojov na nasadenie a prijatie Kubernetes.

Zdroj: hab.com

Pridať komentár