
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 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í
, 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 , 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 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í.
se domnívají, že otázky na níže uvedeném obrázku pomohou pochopit, zda jste připraveni k nasazení kontejnerů v produkci:

Nejčastější chyby při používání kontejnerů v produkci
Organizace často podceňují úsilí potřebné k provozu kontejnerů v produkci. několik běžných chyb ve scénářích klientů při používání kontejnerů 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 během celého životního cyklu vývoje, který zahrnuje procesy kompilace a vývoje, nasazení a spuštění aplikace.
:
- 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ů.
- Zlepšujte konfiguraci pomocí testů Center for Internet Security (), které jsou dostupné jak pro Docker, tak pro Kubernetes.
- 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.
- Vyvarujte se kontejnerům s vyššími oprávněními pomocí správy bezpečnostních politik, což sníží potenciální rizika napadení.
- Používejte bezpečnostní nástroje, které poskytují whitelisty, behaviorální monitorování a detekci anomálií k prevenci zlovolných činností.
:
- 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.
- 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.
- 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í — 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 .
:
- Snažte se monitorovat stav kontejnerů nebo služeb v nich společně s monitorováním hostitelských systémů.
- Dejte přednost výrobcům a nástrojům s hlubokou integrací do orchestrace kontejnerů, zejména Kubernetes.
- 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í.
:
- Používat nástroje pro automatické objevování a sledování metriky kontejneru, korelaci metrik výkonnosti, jako je CPU, paměť a doba bezporuchovosti.
- 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ů.
- 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.
- Automatizovat pracovní postupy, poskytovat podporu pro řízení a škálování kontejnerů a jejich prostředí.
- 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í.
- 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ů , 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%).
:
- Vyberte řešení pro ukládání dat, které je založeno na principech . 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.
- 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 pravidla na vysoké úrovni, kterým by měla odpovídat implementace clusterového síťového řešení:
- 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).
- 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.
- Pody používající 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.
:
- 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.
- 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.
- 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 ""). 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 .
:
- Stanovte standardy základních obrazů kontejnerů s ohledem na velikost, licencování a flexibilitu pro přidávání komponentů vývojáři.
- 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.
- 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ů.
:
- 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ů.
- 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í.
- Využijte výzkumy společnosti Gartner (viz „“), abyste porozuměli výhodám a nevýhodám různých modelů nasazení Kubernetes a vybrali ten nejvhodnější pro váš úkol.
- 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ů
, ž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 , 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í.
:
- 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ů.
- Pečlivě vybírejte softwarové řešení, používejte open source tam, kde je to možné.
- 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.
:
- 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.
- 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é.
- 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ě.
- 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í.
- 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 o infrastruktuře, operacích a cloudových strategiích (IOCS) v prosinci 2018:

Jak vidíme, 27 % respondentů již používá kontejnery v práci a 63 % má v plánu tak učinit.
V 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 .
Co dalšího si přečíst na toto téma:
- .
- .
- .
Zdroj: habr.com
