Doporučené postupy a doporučené postupy pro spouštění kontejnerů a Kubernetes v produkčním prostředí

Doporučené postupy a doporučené postupy pro spouštění kontejnerů a Kubernetes v produkčním prostředí
Ekosystém technologie kontejnerizace se rychle vyvíjí a mění, takže v této oblasti chybí dobré pracovní postupy. Kubernetes a kontejnery se však stále více používají, a to jak pro modernizaci starších aplikací, tak pro vývoj moderních cloudových aplikací. 

Tým Kubernetes aaS z Mail.ru shromáždili předpovědi, rady a osvědčené postupy pro lídry na trhu od společností Gartner, 451 Research, StacxRoх a dalších. Umožní a urychlí nasazení kontejnerů v produkčním prostředí.

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

Podle společnosti Gartner, v roce 2022 bude více než 75 % organizací využívat kontejnerové aplikace ve výrobě. To je výrazně více než v současnosti, kdy takové aplikace využívá méně než 30 % firem. 

Podle 451 VýzkumPředpokládaný trh s aplikacemi kontejnerové technologie v roce 2022 bude činit 4,3 miliardy USD. To je více než dvojnásobek částky předpokládané v roce 2019 s tempem růstu trhu o 30 %.

В Průzkum Portworx a Aqua Security 87 % respondentů uvedlo, že v současné době používá kontejnerové technologie. Pro srovnání, v roce 2017 bylo takových respondentů 55 %. 

Navzdory rostoucímu zájmu a přijetí kontejnerů vyžaduje jejich uvedení do výroby křivku učení kvůli technologické nezralosti a nedostatku know-how. Organizace musí být realistické ohledně obchodních procesů, které vyžadují kontejnerizaci aplikací. Vedoucí IT by měli vyhodnotit, zda mají dovednosti potřebné k tomu, aby se mohli rychle učit. 

Odborníci společnosti Gartner Myslíme si, že otázky na obrázku níže vám pomohou určit, zda jste připraveni nasadit kontejnery v produkci:

Doporučené postupy a doporučené postupy pro spouštění kontejnerů a Kubernetes v produkčním prostředí

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

Organizace často podceňují úsilí potřebné pro provoz kontejnerů ve výrobě. Gartner objevil Některé běžné chyby v zákaznických scénářích při používání kontejnerů v produkčním prostředí:

Doporučené postupy a doporučené postupy pro spouštění kontejnerů a Kubernetes v produkčním prostředí

Jak udržet kontejnery v bezpečí

Bezpečnost nelze řešit „později“. Musí být zabudován do procesu DevOps, a proto existuje dokonce speciální termín – DevSecOps. Organizace musí plánovat ochrana životního prostředí vašeho kontejneru po celý životní cyklus vývoje, který zahrnuje proces sestavení a vývoje, nasazení a spuštění aplikace.

Doporučení od společnosti Gartner

  1. Integrujte proces skenování obrazů aplikací z hlediska zranitelnosti do svého kanálu průběžné integrace/průběžného doručování (CI/CD). Aplikace jsou skenovány ve fázích sestavení a spuštění softwaru. Zdůrazněte potřebu skenovat a identifikovat open source komponenty, knihovny a frameworky. Vývojáři používající staré zranitelné verze jsou jednou z hlavních příčin zranitelnosti kontejnerů.
  2. Vylepšete svou konfiguraci pomocí testů Center for Internet Security (Společenství nezávislých států), které jsou dostupné pro Docker i Kubernetes.
  3. Ujistěte se, že vynucujete kontroly přístupu, zajistěte oddělení povinností a implementujte politiku správy tajemství. Citlivé informace, jako jsou klíče SSL (Secure Sockets Layer) nebo přihlašovací údaje k databázi, jsou zašifrovány orchestrátorem nebo službami správy třetích stran a vystaveny za běhu.
  4. Vyhněte se zvýšeným kontejnerům správou bezpečnostních zásad, abyste snížili potenciální rizika narušení.
  5. Použijte bezpečnostní nástroje, které poskytují whitelisting, sledování chování a detekci anomálií, abyste zabránili škodlivé činnosti.

Doporučení od StacxRox:

  1. Využijte vestavěné možnosti Kubernetes. Nastavte přístup pro uživatele pomocí rolí. Ujistěte se, že neudělujete zbytečná oprávnění jednotlivým entitám, i když může nějakou dobu trvat, než si promyslíte minimální požadovaná oprávnění. Může být lákavé poskytnout správci clusteru široká oprávnění, protože to zpočátku šetří čas. Jakýkoli kompromis nebo chyby v účtu však mohou mít později zničující následky. 
  2. Vyhněte se duplicitním přístupovým oprávněním. Někdy může být užitečné, aby se různé role překrývaly, ale to může vést k provozním problémům a také vytvářet slepá místa při odebírání oprávnění. Je také důležité odstranit nepoužívané a neaktivní role.
  3. Nastavte zásady sítě: izolujte moduly, abyste k nim omezili přístup; explicitně povolit přístup k internetu těm modulům, které to potřebují, pomocí značek; Explicitně povolit komunikaci mezi těmi moduly, které spolu potřebují komunikovat. 

Jak organizovat monitoring kontejnerů a služeb v nich

Zabezpečení 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é vyvíjejí, než na aspekty sledování těchto aplikací

Doporučení od společnosti Gartner:

  1. Zkuste sledovat stav kontejnerů nebo služeb v nich ve spojení s monitorováním hostitelských systémů.
  2. Hledejte dodavatele a nástroje s hlubokou integrací do orchestrace kontejnerů, zejména Kubernetes.
  3. Vyberte si nástroje, které poskytují podrobné protokolování, automatické zjišťování služeb a doporučení v reálném čase pomocí analýzy a/nebo strojového učení.

Blog SolarWinds radí:

  1. Pomocí nástrojů můžete automaticky zjišťovat a sledovat metriky kontejnerů, korelující metriky výkonu, jako je CPU, paměť a doba provozu.
  2. Zajistěte optimální plánování kapacity předpovídáním dat vyčerpání kapacity na základě metrik monitorování kontejnerů.
  3. Monitorujte dostupnost a výkon kontejnerizovaných aplikací, což je užitečné pro plánování kapacity i řešení problémů s výkonem.
  4. Automatizujte pracovní postupy poskytováním podpory pro správu a škálování kontejnerů a jejich hostitelských prostředí.
  5. Automatizujte řízení přístupu pro sledování vaší uživatelské základny, deaktivujte zastaralé účty a účty hostů a odeberte zbytečná oprávnění.
  6. Zajistěte, aby vaše sada nástrojů mohla monitorovat tyto kontejnery a aplikace v různých prostředích (cloud, místní nebo hybridní), abyste mohli vizualizovat a porovnávat výkon napříč infrastrukturou, sítí, systémy a aplikacemi.

Jak ukládat data a zajistit jejich bezpečnost

S nárůstem stavových pracovních kontejnerů musí klienti zvážit přítomnost dat mimo hostitele a potřebu tato data chránit. 

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

Šifrování dat je hlavní bezpečnostní strategií (64 %), ale respondenti využívají i sledování běhu

(49 %), skenování zranitelností v registrech (49 %), skenování zranitelností v kanálech CI/CD (49 %) a blokování anomálií prostřednictvím ochrany za běhu (48 %).

Doporučení od společnosti Gartner:

  1. Vybírejte úložná řešení postavená na principech architektura mikroslužeb. Je lepší se zaměřit na ty, které splňují požadavky na úložiště dat pro kontejnerové služby, jsou hardwarově nezávislé, řízené API, mají distribuovanou architekturu, podporují lokální nasazení a nasazení ve veřejném cloudu.
  2. Vyhněte se proprietárním pluginům a rozhraním. Vyberte si dodavatele, kteří poskytují integraci 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 týmy vytvářejí síťově propojená vývojová, testovací, kvalitativní a produkční prostředí pro každý projekt, se ne vždy dobře hodí k nepřetržitému vývojovému workflow. Kromě toho kontejnerové sítě pokrývají více vrstev.

В blog Magalix shromážděný pravidla vysoké úrovně, která musí implementace klastrového síťového řešení splňovat:

  1. Moduly naplánované ve stejném uzlu musí být schopny komunikovat s ostatními moduly bez použití NAT (Network Address Translation).
  2. Všichni systémoví démoni (procesy na pozadí, jako je kubelet) běžící na konkrétním uzlu mohou komunikovat s moduly běžícími na stejném uzlu.
  3. Použití podů hostitelská síť, musí být schopen komunikovat se všemi ostatními moduly na všech ostatních uzlech bez použití NAT. Vezměte prosím na vědomí, že síť hostitelů je podporována pouze na hostitelích Linux.

Síťová řešení musí být těsně integrována s primitivy a zásadami Kubernetes. IT lídři by se měli snažit o vysoký stupeň automatizace sítě a poskytovat vývojářům ty správné 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 SDN (Software Defined Network) podporuje sítě Kubernetes. Pokud ne nebo je podpora nedostatečná, použijte pro své kontejnery síťové rozhraní CNI (Container Network Interface), které podporuje potřebné funkce a zásady.
  2. Ujistěte se, že váš CaaS nebo PaaS (platforma jako služba) podporuje vytváření řadičů vstupu a/nebo vyrovnávačů zátěže, které rozdělují příchozí provoz mezi uzly clusteru. Pokud to není možné, prozkoumejte použití serverů proxy třetích stran nebo servisních sítí.
  3. Vyškolte své síťové inženýry v sítích Linux a nástrojích pro automatizaci sítí, abyste snížili mezeru v dovednostech a zvýšili flexibilitu.

Jak řídit životní cyklus aplikace

Pro automatizované a bezproblémové doručování aplikací je třeba doplnit orchestraci kontejnerů o další automatizační nástroje, jako jsou produkty infrastruktury jako kód (IaC). Patří mezi ně Chef, Puppet, Ansible a Terraform. 

Jsou také vyžadovány automatizační nástroje pro vytváření a zavádění aplikací (viz „Magický kvadrant pro Orchestraci vydávání aplikací"). Kontejnery také poskytují možnosti rozšiřitelnosti podobné těm, které jsou k dispozici při nasazování virtuálních strojů (VM). Proto musí mít IT lídři nástroje pro správu životního cyklu kontejnerů.

Doporučení od společnosti Gartner:

  1. Nastavte standardy pro obrazy základních kontejnerů na základě velikosti, licencování a flexibility pro vývojáře při přidávání komponent.
  2. Použijte systémy pro správu konfigurace ke správě životního cyklu kontejnerů, které vrství konfiguraci na základě základních obrazů umístěných ve veřejných nebo soukromých úložištích.
  3. Integrujte svou platformu CaaS s automatizačními nástroji pro automatizaci celého pracovního postupu vaší aplikace.

Jak spravovat kontejnery s orchestrátory

Základní funkce pro nasazení kontejnerů je poskytována ve vrstvách orchestrace a plánování. Během plánování jsou kontejnery umístěny na nejoptimálnější hostitele v clusteru, jak to vyžadují požadavky na orchestrační vrstvu. 

Kubernetes se stal de facto standardem orchestrace kontejnerů s aktivní komunitou a je podporován většinou předních komerčních prodejců. 

Doporučení od společnosti Gartner:

  1. Definujte základní požadavky na bezpečnostní kontroly, monitorování, správu zásad, perzistenci dat, síťování a správu životního cyklu kontejnerů.
  2. Na základě těchto požadavků vyberte nástroj, který nejlépe vyhovuje vašim požadavkům a případům použití.
  3. Použijte průzkum 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 nejlepší pro svou aplikaci.
  4. Vyberte poskytovatele, který může poskytnout hybridní orchestraci pro pracovní kontejnery napříč různými prostředími s úzkou integrací backendu, společnými plány správy a konzistentními cenovými modely.

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

Gartner věříže zájem o nasazení kontejnerů ve 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 poskytovateli cloudu.

Cloudy IaaS nabízejí spotřebu zdrojů na vyžádání, rychlou škálovatelnost a řízení služeb, což pomůže vyhnout se nutnosti hloubkových znalostí infrastruktury a její údržby. Většina poskytovatelů cloudu nabízí službu správy kontejnerů a někteří nabízejí více možností orchestrace. 

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

Poskytovatel cloudu
Typ služby
Produkt/služba

Alibaba
Nativní cloudová služba
Alibaba Cloud Container Service, Alibaba Cloud Container Service pro Kubernetes

Amazon Web Services (AWS)
Nativní cloudová služba
Amazon Elastic Container Services (ECS), Amazon ECS pro Kubernetes (EKS), AWS Fargate

Obří roj
MSP
Giant Swarm Managed Infrastructure Kubernetes

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

IBM
Nativní cloudová služba
Služba IBM Cloud Kubernetes

Microsoft
Nativní cloudová služba
Azure Kubernetes Service, Azure Service Fabric

Věštec
Nativní cloudová služba
OCI Container Engine pro Kubernetes

Platform9
MSP
Spravovaný Kubernetes

Red Hat
Hostovaná služba
OpenShift Dedicated & Online

VMware
Hostovaná služba
Cloud PKS (Beta)

Cloudová řešení Mail.ru*
Nativní cloudová služba
Cloudové kontejnery Mail.ru

* Nebudeme to skrývat, přidali jsme se sem během překladu :)

Poskytovatelé veřejného cloudu také přidávají nové funkce a uvolňují místní produkty. V blízké budoucnosti poskytovatelé cloudu vyvinou podporu pro hybridní cloudy a multicloudová prostředí. 

Doporučení Gartner:

  1. Objektivně zhodnoťte schopnost vaší organizace nasadit a spravovat vhodné nástroje a zvažte alternativní služby správy cloudových kontejnerů.
  2. Software vybírejte pečlivě, používejte open source, kde je to možné.
  3. Vyberte si poskytovatele s běžnými provozními modely v hybridních prostředích, kteří nabízejí správu federovaných clusterů na jediném panelu, a také poskytovatele, kteří usnadňují vlastní hostování IaaS.

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

  1. Vyplatí se hledat distribuce, které podporují vysokou dostupnost ihned po vybalení. To zahrnuje podporu pro více hlavních architektur, vysoce dostupné komponenty etcd a zálohování a obnovu.
  2. Pro zajištění mobility ve vašich prostředích Kubernetes je nejlepší vybrat si poskytovatele cloudu, kteří podporují širokou škálu modelů nasazení, od místních přes hybridní až po multicloud. 
  3. Nabídky poskytovatelů by měly být také hodnoceny na základě snadnosti nastavení, instalace a vytváření clusteru, stejně jako aktualizací, monitorování a odstraňování problémů. Základním požadavkem je podpora plně automatizovaných aktualizací clusteru s nulovými prostoji. Zvolené řešení by vám také mělo umožnit spouštět aktualizace 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 distribuce Kubernetes, kterou si vyberete, podporuje integraci s nástroji pro ověřování a autorizaci, které používáte interně. Důležitými sadami funkcí jsou také RBAC a jemnozrnné řízení přístupu.
  5. Distribuce, kterou si vyberete, musí mít buď nativní softwarově definované síťové řešení, které pokrývá širokou škálu různých požadavků na aplikace nebo infrastrukturu, nebo musí podporovat jednu z populárních síťových implementací založených na CNI, včetně Flannel, Calico, kube-router nebo OVN.

Hlavním směrem se stává zavádění kontejnerů do výroby, jak dokládají výsledky průzkumu provedeného dne Sezení Gartner o infrastruktuře, operacích a cloudových strategiích (IOCS) v prosinci 2018:

Doporučené postupy a doporučené postupy pro spouštění kontejnerů a Kubernetes v produkčním prostředí
Jak je vidět, kontejnery při své práci využívá již 27 % respondentů a 63 % se tak chystá.

В Průzkum Portworx a Aqua Security 24 % respondentů uvedlo, že do kontejnerových technologií investuje více než půl milionu dolarů ročně a 17 % respondentů za ně utratí více než milion dolarů ročně. 

Článek připravil tým cloudové platformy Cloudová řešení Mail.ru.

Co si k tématu ještě přečíst:

  1. DevOps Best Practices: DORA Report.
  2. Kubernetes v pirátském duchu se šablonou pro implementaci.
  3. 25 Užitečné nástroje pro nasazení a přijetí Kubernetes.

Zdroj: www.habr.com

Přidat komentář