Nejlepší postupy a doporučení pro spuštění kontejnerů a Kubernetes v produkčních prostředích

Nejlepší postupy a doporučení pro spuštění kontejnerů a Kubernetes v produkčních prostředích
Ekosystém technologií kontejnerizace se rychle vyvíjí a mění, a proto v této oblasti chybí dobré pracovní postupy. Nicméně Kubernetes a kontejnery se stále častěji používají — jak pro modernizaci starých aplikací, tak pro vývoj moderních cloudových aplikací. 

Tým Kubernetes aaS od Mail.ru shromáždil předpovědi, rady a nejlepší postupy pro lídry trhu od Gartneru, 451 Research, StacxRoх a dalších. Ty umožní zajistit a urychlit nasazení kontejnerů v produkčních prostředích.

Jak zjistit, zda je vaše firma připravena nasazovat kontejnery v produkčním prostředí

Podle Gartneru, v roce 2022 více než 75 % organizací bude používat kontejnerizované aplikace v produkci. To je výrazně více než v současnosti, kdy tyto aplikace používá méně než 30 % firem. 

Podle 451 Research, předpokládaný trh pro použití kontejnerových technologií v roce 2022 dosáhne 4,3 miliardy USD. To je více než dvojnásobek předpovědí z roku 2019, tempo růstu trhu činí 30 %.

V průzkumu Portworx a Aqua Security 87 % respondentů uvedlo, že v současnosti používají kontejnerové technologie. Pro srovnání — v roce 2017 to bylo 55 % respondentů. 

Navzdory rostoucímu zájmu a nárůstu zavádění kontejnerů vyžaduje jejich uvedení do produkce školení kvůli technologické nezralosti a nedostatku know-how. Organizace by měly realisticky posoudit obchodní procesy, které vyžadují kontejnerizaci aplikací. IT lídři by měli zvážit, zda mají potřebné dovednosti k postupu vpřed s ohledem na potřebu rychlého školení. 

Odborníci Gartner se domnívají, že otázky na níže uvedeném obrázku pomohou pochopit, zda jste připraveni k nasazení kontejnerů v produkci:

Nejlepší postupy a doporučení pro spuštění kontejnerů a Kubernetes v produkčních prostředích

Nejčastější chyby při používání kontejnerů v produkci

Organizace často podceňují úsilí potřebné k provozu kontejnerů v produkci. Gartner zjistil několik běžných chyb ve scénářích klientů při používání kontejnerů v produkčních prostředích:

Nejlepší postupy a doporučení pro spuštění kontejnerů a Kubernetes v produkčních prostředích

Jak zajistit bezpečnost kontejnerů

Bezpečnost nelze řešit "potom". Musí být integrována do procesu DevOps, proto vznikl dokonce speciální termín — DevSecOps. Organizace musí plánovat ochranu kontejnerového prostředí během celého životního cyklu vývoje, který zahrnuje procesy kompilace a vývoje, nasazení a spuštění aplikace.

Doporučení od společnosti Gartner: 

  1. Integrujte proces skenování obrazů aplikací pro vyhledávání zranitelností do kontinuálního integračního / kontinuálního dodávacího (CI/CD) procesu. Aplikace jsou skenovány během fází kompilace a spuštění softwaru. Zdůrazněte potřebu skenování a identifikace komponent open source, knihoven a frameworků. Používání zastaralých zranitelných verzí od vyvojářů je jedním z hlavních důvodů zranitelností kontejnerů.
  2. Zlepšujte konfiguraci pomocí testů Center for Internet Security (CIS), které jsou dostupné jak pro Docker, tak pro Kubernetes.
  3. Nezapomeňte aplikovat kontrolu přístupu, zajistěte oddělení povinností a implementujte politiku správy tajemství. Důvěrné informace, jako jsou klíče Secure Sockets Layer (SSL) nebo databázové přihlašovací údaje, jsou šifrovány orchestrace nebo externími kontrolními službami a poskytovány v době běhu.
  4. Vyvarujte se kontejnerům s vyššími oprávněními pomocí správy bezpečnostních politik, což sníží potenciální rizika napadení.
  5. Používejte bezpečnostní nástroje, které poskytují whitelisty, behaviorální monitorování a detekci anomálií k prevenci zlovolných činností.

Doporučení od společnosti StacxRox:

  1. Využijte integrované funkce Kubernetes. Nastavte přístup pro uživatele pomocí rolí. Ujistěte se, že neposkytujete zbytečná oprávnění jednotlivým subjektům, i když může trvat nějaký čas, než promyslíte minimálně potřebná oprávnění. Může se zdát lákavé dát administrátorovi clustera široká oprávnění, protože to šetří čas v počátečním stádiu. Jakékoli kompromisy nebo chyby v účtech mohou mít v budoucnu katastrofální následky. 
  2. Vyvarujte se duplicitních přístupových oprávnění. Někdy může být užitečné mít různé role se vzájemně překrývajícími se oprávněními, ale to může vést k problémům s provozem a také vytvořit "mrtvé zóny" při odstraňování oprávnění. Kromě toho je důležité odstraňovat nevyužívané a neaktivní role.
  3. Nastavte síťové politiky: izolujte moduly pro omezení přístupu; jasně povolte přístup k internetu těm modulům, které to potřebují, pomocí štítků; jasně povolte komunikaci mezi těmi moduly, které si musí vzájemně komunikovat. 

Jak organizovat monitorování kontejnerů a služeb v nich

Bezpečnost a monitorování — hlavní problémy firem při nasazování clusterů Kubernetes. Vývojáři se vždy více zaměřují na funkce aplikací, které vytvářejí, než na aspekty monitorování těchto aplikací.. 

Doporučení od společnosti Gartner:

  1. Snažte se monitorovat stav kontejnerů nebo služeb v nich společně s monitorováním hostitelských systémů.
  2. Dejte přednost výrobcům a nástrojům s hlubokou integrací do orchestrace kontejnerů, zejména Kubernetes.
  3. Vyberte nástroje, které poskytují detailní protokolování, automatické objevování služeb a doporučení v reálném čase pomocí analýzy a/nebo strojového učení.

V blogu SolarWinds doporučují:

  1. Používat nástroje pro automatické objevování a sledování metriky kontejneru, korelaci metrik výkonnosti, jako je CPU, paměť a doba bezporuchovosti.
  2. Zajistit optimální plánování kapacity předpovídáním termínů vyčerpání kapacity na základě ukazatelů monitorování kontejnerů.
  3. Organizovat monitorování aplikací, které jsou umístěny v kontejnerech, podle parametrů dostupnosti a výkonnosti, což je užitečné jak pro plánování kapacity, tak pro odstraňování problémů s výkonem.
  4. Automatizovat pracovní postupy, poskytovat podporu pro řízení a škálování kontejnerů a jejich prostředí.
  5. Automatizovat kontrolu přístupu k monitorování uživatelských základů, odpojení zastaralých a hostujících účtů, odstraňování nadbytečných oprávnění.
  6. Ujistit se, že váš nástrojový set dokáže sledovat tyto kontejnery a aplikace v různých prostředích (cloudových, místních nebo hybridních) pro vizualizaci a porovnávání výkonu v infrastruktuře, sítích, systémech a aplikacích.

Jak uchovávat data a zajistit jejich bezpečnost

Se zvyšujícím se počtem pracovních kontejnerů se zachováním stavu by si klienti měli být vědomi umístění dat mimo hostitele, stejně jako potřeby ochrany těchto dat. 

Podle údajů ankety Portworx a Aqua Security, bezpečnost dat je na prvním místě v seznamu bezpečnostních problémů, které uvádí většina respondentů (61%). 

Šifrování dat je hlavní strategií bezpečnosti (64%), nicméně respondenti také používají monitorování v reálném čase

(49%), skenování zranitelností v registrech (49%), skenování zranitelností v CI/CD pipeline (49%) a blokaci anomálií prostřednictvím ochrany v reálném čase (48%).

Doporučení od společnosti Gartner:

  1. Vyberte řešení pro ukládání dat, které je založeno na principech mikroslužební architektury. Je lepší zvolit ta, která splňují požadavky na ukládání dat pro kontejnery, jsou hardwarově nezávislá, spravují se pomocí API, mají distribuovanou architekturu, podporují místní nasazení a nasazení v veřejném cloudu.
  2. Vyhněte se proprietárním pluginům a rozhraním. Vyberte výrobce, kteří zajišťují integraci s Kubernetes a podporují standardní rozhraní, jako je CSI (Container Storage Interfaces).

Jak pracovat se sítěmi

Tradiční model podnikové sítě, kde IT specialisté vytvářejí síťová prostředí pro vývoj, testování, zajištění kvality a výrobu pro každý projekt, se ne vždy dobře slučuje s pracovním postupem kontinuálního vývoje. Navíc kontejnerové sítě pokrývají několik úrovní.

V v blogu Magalix shromáždili pravidla na vysoké úrovni, kterým by měla odpovídat implementace clusterového síťového řešení:

  1. Pody naplánované na stejném uzlu by měly mít možnost vyměňovat si data s jinými moduly bez použití NAT (překlad síťových adres).
  2. Všechny systémové démony (běžící procesy, například kubelet) na daném uzlu mohou komunikovat s podami běžícími na tomtéž uzlu.
  3. Pody používající síť hostitele, by měly mít možnost se spojit se všemi ostatními pody na všech ostatních uzlech bez použití NAT. Všimněte si, že síť hostitele je podporována pouze na Linuxových hostitelích.

Síťová řešení by měla být úzce integrována s primitivy a politikami Kubernetes. IT manažeři by se měli snažit o vysokou míru automatizace sítě, poskytovat vývojářům odpovídající nástroje a dostatečnou flexibilitu.

Doporučení od společnosti Gartner:

  1. Zjistěte, zda váš CaaS (kontejner jako služba) nebo vaše síť SDN (Software Defined Network) podporuje sítě Kubernetes. Pokud ne nebo podpora není dostatečná, použijte pro své kontejnery síťové rozhraní CNI (Container Network Interface), které podporuje požadovanou funkcionalitu a politiky.
  2. Ujistěte se, že váš CaaS nebo PaaS (platforma jako služba) podporuje vytváření příchozích řadičů a/nebo vyvažovačů zátěže, kteří rozdělují příchozí provoz mezi uzly clusteru. Pokud tato možnost není k dispozici, zvažte použití externích proxy nebo mechanismů service mesh.
  3. Vyškolte své síťové inženýry k práci se sítěmi Linux a nástroji pro automatizaci sítě, abyste minimalizovali mezery ve dovednostech a zvýšili flexibilitu.

Jak spravovat životní cyklus aplikací

Pro automatizovanou a bezproblémovou dodávku aplikací je třeba doplnit orchestraci kontejnerů dalšími nástroji pro automatizaci, jako jsou produkty infrastruktury jako kód (IaC). Mezi ně patří Chef, Puppet, Ansible a Terraform. 

Také jsou vyžadovány nástroje pro automatizaci sestavení a nasazení aplikací (viz "Magický kvadrant pro orchestraci vydání aplikací"). Kontejnery také poskytují možnosti rozšíření, podobně jako možnosti, které existovaly při nasazení virtuálních strojů (VM). Tím pádem by IT manažeři měli mít nástroje pro správu životního cyklu kontejnerů.

Doporučení od společnosti Gartner:

  1. Stanovte standardy základních obrazů kontejnerů s ohledem na velikost, licencování a flexibilitu pro přidávání komponentů vývojáři.
  2. Používejte systémy pro správu konfigurací k řízení životního cyklu kontejnerů, které ukládají konfiguraci v vrstvách na základě základních obrazů nacházejících se ve veřejných nebo soukromých repozitářích.
  3. Integrujte platformu CaaS s nástroji automatizace, abyste automatizovali celý pracovní tok aplikace.

Jak spravovat kontejnery pomocí orchestrátorů

Hlavní funkce pro nasazení kontejnerů jsou poskytovány na úrovních orchestrace a plánování. Při plánování jsou kontejnery umístěny na nejoptimálnějších hostitelích v clusteru, jak je určeno požadavky úrovně orchestrace. 

Kubernetes se de facto stal standardem orchestrace kontejnerů s aktivní komunitou, kterou podporuje většina předních komerčních poskytovatelů. 

Doporučení od společnosti Gartner:

  1. Definujte základní požadavky na bezpečnostní ovládací prvky, monitorování, správu politik, uchovávání dat, správu sítí a životní cyklus kontejnerů.
  2. Na základě těchto požadavků vyberte nástroj, který nejlépe vyhovuje vašim potřebám a scénářům použití.
  3. Využijte výzkumy společnosti Gartner (viz „Jak vybrat model nasazení Kubernetes“), abyste porozuměli výhodám a nevýhodám různých modelů nasazení Kubernetes a vybrali ten nejvhodnější pro váš úkol.
  4. Vyberte poskytovatele, který může zajistit hybridní orchestrace pro pracovní kontejnery v několika prostředích s těsnou integrací s backendy, sdílenými plány správy a konzistentními modely cenění.

Jak využít možnosti cloudových poskytovatelů

Společnost Gartner se domnívá, že zájem o nasazení kontejnerů v veřejném cloudu IaaS roste díky dostupnosti hotových nabídek CaaS a také těsné integraci těchto nabídek s dalšími produkty nabízenými cloudovými poskytovateli.

Cloudy IaaS nabízejí spotřebu zdrojů na vyžádání, rychlou škálovatelnost a správu služeb, což pomáhá vyhnout se potřebě hlubokých znalostí o infrastruktuře a její údržbě. Většina cloudových poskytovatelů nabízí službu správy kontejnerů a někteří nabízejí několik možností orchestrace. 

Klíčoví poskytovatelé cloudových spravovaných služeb jsou uvedeni v tabulce: 

Cloudový poskytovatel
Typ služby
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

* Nezatajujeme, že jsme se tu sami přidali při překladu 🙂

Poskytovatelé veřejných cloudů také přidávají nové funkce a vydávají místní produkty. V blízké budoucnosti budou poskytovatelé cloudů rozvíjet podporu hybridních a multi-cloudových prostředí. 

Doporučení Gartner:

  1. Objektivně zhodnoťte schopnosti vaší organizace zavádět a spravovat relevantní nástroje a zvažte alternativní služby pro správu cloudových kontejnerů.
  2. Pečlivě vybírejte softwarové řešení, používejte open source tam, kde je to možné.
  3. Vyberte si poskytovatele s jednotným operačním modelem v hybridních prostředích, který nabízí správu sjednocených clustrů z jednoho panelu, a také poskytovatele, kteří usnadňují samostatné využívání IaaS.

Několik rad pro výběr poskytovatele Kubernetes aaS z blogu Replex:

  1. Hledejte distribuce, které podporují vysokou dostupnost hned "z krabice". To zahrnuje podporu pro více základních architektur, vysoce dostupné komponenty etcd, jakož i zálohování a obnovu.
  2. Pro zajištění mobility prostředí Kubernetes je lepší vybírat cloudové poskytovatele, kteří podporují širokou škálu modelů nasazení: od lokálních po hybridní a multi-cloudové. 
  3. Nabídky poskytovatelů je také dobré hodnotit z hlediska jednoduchosti nastavení, instalace a vytvoření clustru, jakož i aktualizací, monitorování a odstraňování problémů. Základní požadavek — podpora plně automatizovaných aktualizací clustru s nulovým výpadkem. Vybrané řešení by mělo také umožňovat spouštění aktualizací ručně. 
  4. Správa identity a přístupu je důležitá jak z hlediska bezpečnosti, tak z hlediska správy. Ujistěte se, že vybraný distribuce Kubernetes podporuje integraci s autentizačními a autorizačními nástroji, které se používají ve společnosti. RBAC a podrobná kontrola přístupu jsou také důležitými soubory funkcí.
  5. Vybraný distribuční systém by měl mít buď vlastní síťové řešení definované softwarem, které pokrývá široké spektrum požadavků různých aplikací nebo infrastruktury, nebo podporovat jednu z oblíbených realizací sítí na základě CNI, včetně Flannel, Calico, kube-router nebo OVN.

Nasazení kontejnerů do produkce se stává hlavním směrem, což dokládají výsledky průzkumu provedeného na sezení Gartner o infrastruktuře, operacích a cloudových strategiích (IOCS) v prosinci 2018:

Nejlepší postupy a doporučení pro spuštění kontejnerů a Kubernetes v produkčních prostředích
Jak vidíme, 27 % respondentů již používá kontejnery v práci a 63 % má v plánu tak učinit.

V průzkumu Portworx a Aqua Security 24 % respondentů uvedlo, že investují více než půl milionu dolarů ročně do kontejnerových technologií, zatímco 17 % respondentů utrácí více než milion dolarů ročně. 

Článek připravila tým cloudové platformy Mail.ru Cloud Solutions.

Co dalšího si přečíst na toto téma:

  1. Nejlepší praktiky DevOps: zpráva DORA.
  2. Kubernetes v pirátském duchu s šablonou pro nasazení.
  3. 25 užitečných nástrojů pro nasazení a implementaci Kubernetes.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster