Najbolji primjeri iz prakse i najbolji primjeri iz prakse za pokretanje spremnika i Kubernetesa u produkcijskim okruženjima

Najbolji primjeri iz prakse i najbolji primjeri iz prakse za pokretanje spremnika i Kubernetesa u produkcijskim okruženjima
Tehnološki ekosustav kontejnerizacije brzo se razvija i mijenja, pa u ovom području nedostaje dobrih radnih praksi. Međutim, Kubernetes i spremnici koriste se sve više, kako za modernizaciju naslijeđenih aplikacija tako i za razvoj modernih aplikacija u oblaku. 

Momčad Kubernetes aaS s Mail.ru prikupljene prognoze, savjeti i najbolje prakse za tržišne lidere od Gartnera, 451 Research, StacxRoh i drugih. Oni će omogućiti i ubrzati implementaciju kontejnera u proizvodnim okruženjima.

Kako znati je li vaša tvrtka spremna za implementaciju spremnika u proizvodnom okruženju

Prema Gartneru2022. više od 75% organizacija koristit će kontejnerske aplikacije u proizvodnji. To je znatno više nego sada, kada takve aplikacije koristi manje od 30% tvrtki. 

Prema 451 istraživanjaPredviđeno tržište za aplikacije kontejnerske tehnologije u 2022. iznosit će 4,3 milijarde USD. To je više nego dvostruko više od iznosa predviđenog u 2019., sa stopom rasta tržišta od 30%.

В Portworx i Aqua Security anketa 87% ispitanika reklo je da trenutno koristi kontejnerske tehnologije. Usporedbe radi, 2017. godine takvih je ispitanika bilo 55%. 

Unatoč sve većem interesu i usvajanju spremnika, njihovo uvođenje u proizvodnju zahtijeva krivulju učenja zbog tehnološke nezrelosti i nedostatka znanja. Organizacije moraju biti realne u pogledu poslovnih procesa koji zahtijevaju kontejnerizaciju aplikacija. IT čelnici trebali bi procijeniti posjeduju li vještine potrebne za napredovanje uz potrebu brzog učenja. 

Gartnerovi stručnjaci Mislimo da će vam pitanja na slici u nastavku pomoći da utvrdite jeste li spremni za implementaciju spremnika u produkciji:

Najbolji primjeri iz prakse i najbolji primjeri iz prakse za pokretanje spremnika i Kubernetesa u produkcijskim okruženjima

Najčešće pogreške pri korištenju spremnika u proizvodnji

Organizacije često podcjenjuju napor potreban za upravljanje spremnicima u proizvodnji. Gartner je otkrio Neke uobičajene pogreške u korisničkim scenarijima pri korištenju spremnika u proizvodnim okruženjima:

Najbolji primjeri iz prakse i najbolji primjeri iz prakse za pokretanje spremnika i Kubernetesa u produkcijskim okruženjima

Kako čuvati spremnike sigurnima

Sigurnošću se ne može baviti "kasnije". Mora biti ugrađen u DevOps proces, zbog čega postoji čak i poseban termin - DevSecOps. Organizacije moraju planirati štiteći okolinu vašeg kontejnera kroz cijeli životni ciklus razvoja, što uključuje proces izgradnje i razvoja, implementaciju i pokretanje aplikacije.

Preporuke tvrtke Gartner

  1. Integrirajte proces skeniranja slika aplikacija u potrazi za ranjivostima u svoj cjevovod kontinuirane integracije/stalne isporuke (CI/CD). Aplikacije se skeniraju u fazi izrade i pokretanja softvera. Naglasite potrebu za skeniranjem i identificiranjem komponenti, biblioteka i okvira otvorenog koda. Programeri koji koriste stare, ranjive verzije jedan su od glavnih uzroka ranjivosti spremnika.
  2. Poboljšajte svoju konfiguraciju pomoću Centra za testove internetske sigurnosti (CIS), koji su dostupni i za Docker i za Kubernetes.
  3. Budite sigurni da provodite kontrole pristupa, osiguravate razdvajanje dužnosti i provodite politiku upravljanja tajnama. Osjetljive informacije, kao što su ključevi Secure Sockets Layer (SSL) ili vjerodajnice baze podataka, kriptiraju orkestrator ili usluge upravljanja treće strane i otkrivaju ih tijekom izvođenja
  4. Izbjegavajte povišene spremnike upravljanjem sigurnosnim politikama kako biste smanjili potencijalne rizike od provale.
  5. Koristite sigurnosne alate koji pružaju popis dopuštenih, praćenje ponašanja i otkrivanje anomalija kako biste spriječili zlonamjerne aktivnosti.

Preporuke tvrtke StacxRox:

  1. Iskoristite ugrađene mogućnosti Kubernetesa. Postavite pristup za korisnike koji koriste uloge. Pazite da ne dodijelite nepotrebna dopuštenja pojedinačnim entitetima, iako će možda trebati neko vrijeme da razmislite o minimalnim potrebnim dopuštenjima. Možda je primamljivo administratoru klastera dati široke privilegije jer to u početku štedi vrijeme. Međutim, svaki kompromis ili pogreške u računu kasnije mogu dovesti do razornih posljedica. 
  2. Izbjegavajte dvostruka dopuštenja pristupa. Ponekad može biti korisno da se različite uloge preklapaju, ali to može dovesti do operativnih problema i također stvoriti slijepe točke prilikom uklanjanja dopuštenja. Također je važno ukloniti neiskorištene i neaktivne uloge.
  3. Postavite mrežna pravila: izolirajte module da biste im ograničili pristup; izričito dopustite pristup Internetu onim modulima koji ga trebaju pomoću oznaka; Izričito dopustite komunikaciju između onih modula koji trebaju međusobno komunicirati. 

Kako organizirati nadzor kontejnera i usluga u njima

Sigurnost i nadzor - glavni problemi poduzeća prilikom postavljanja Kubernetes klastera. Programeri su uvijek više usredotočeni na značajke aplikacija koje razvijaju nego na aspekte praćenje ovih aplikacija

Preporuke tvrtke Gartner:

  1. Pokušajte nadzirati stanje spremnika ili usluga u njima u kombinaciji s nadgledanjem host sustava.
  2. Potražite dobavljače i alate s dubokom integracijom u orkestraciju spremnika, posebice Kubernetes.
  3. Odaberite alate koji pružaju detaljno bilježenje, automatsko otkrivanje usluga i preporuke u stvarnom vremenu korištenjem analitike i/ili strojnog učenja.

Blog SolarWinds savjetuje:

  1. Koristite alate za automatsko otkrivanje i praćenje metrike spremnika, povezujući metrike performansi kao što su CPU, memorija i vrijeme rada.
  2. Osigurajte optimalno planiranje kapaciteta predviđanjem datuma iscrpljivanja kapaciteta na temelju metrike praćenja spremnika.
  3. Pratite dostupnost i izvedbu aplikacija u spremnicima, što je korisno i za planiranje kapaciteta i za rješavanje problema s izvedbom.
  4. Automatizirajte tijekove rada pružanjem podrške za upravljanje i skaliranje za spremnike i njihova okruženja za hosting.
  5. Automatizirajte kontrolu pristupa za nadzor svoje korisničke baze, onemogućite zastarjele i gostujuće račune i uklonite nepotrebne privilegije.
  6. Pobrinite se da vaš skup alata može nadzirati te spremnike i aplikacije u više okruženja (oblak, lokalno ili hibridno) kako biste vizualizirali i usporedili performanse u infrastrukturi, mreži, sustavima i aplikacijama.

Kako pohraniti podatke i osigurati njihovu sigurnost

S porastom radnih spremnika sa statusom, klijenti moraju uzeti u obzir prisutnost podataka izvan glavnog računala i potrebu zaštite tih podataka. 

Prema Portworx i Aqua Security anketa, sigurnost podataka je na vrhu popisa sigurnosnih problema koje navodi većina ispitanika (61%). 

Enkripcija podataka je glavna sigurnosna strategija (64%), ali ispitanici također koriste nadzor vremena izvođenja

(49%), skeniranje registara za ranjivosti (49%), skeniranje za ranjivosti u CI/CD cjevovodima (49%) i blokiranje anomalija kroz runtime zaštitu (48%).

Preporuke tvrtke Gartner:

  1. Odaberite rješenja za pohranu izgrađena na načelima arhitektura mikroservisa. Bolje je usredotočiti se na one koji ispunjavaju zahtjeve za pohranu podataka za kontejnerske usluge, neovisni su o hardveru, upravljaju API-jem, imaju distribuiranu arhitekturu, podržavaju lokalnu implementaciju i implementaciju u javnom oblaku.
  2. Izbjegavajte vlasničke dodatke i sučelja. Odaberite dobavljače koji pružaju Kubernetes integraciju i podržavaju standardna sučelja kao što je CSI (Container Storage Interfaces).

Kako raditi s mrežama

Tradicionalni mrežni model poduzeća, gdje IT timovi stvaraju umreženi razvoj, testiranje, osiguranje kvalitete i proizvodna okruženja za svaki projekt, ne uklapa se uvijek dobro u radni tijek kontinuiranog razvoja. Osim toga, kontejnerske mreže obuhvaćaju više slojeva.

В blog Magalix prikupljeni pravila visoke razine s kojima implementacija rješenja mreže klastera mora biti u skladu:

  1. Podovi raspoređeni na istom čvoru moraju moći komunicirati s drugim podovima bez korištenja NAT-a (prijevoda mrežne adrese).
  2. Svi demoni sustava (pozadinski procesi kao što je kubelet) koji se izvode na određenom čvoru mogu komunicirati s podovima koji se izvode na istom čvoru.
  3. Upotreba mahuna host mreža, mora moći komunicirati sa svim ostalim podovima na svim ostalim čvorovima bez korištenja NAT-a. Imajte na umu da je umrežavanje hosta podržano samo na Linux hostovima.

Mrežna rješenja moraju biti usko integrirana s Kubernetes primitivima i pravilima. IT čelnici trebali bi težiti visokom stupnju mrežne automatizacije i omogućiti programerima prave alate i dovoljnu fleksibilnost.

Preporuke tvrtke Gartner:

  1. Saznajte podržava li vaš CaaS (spremnik kao usluga) ili vaš SDN (softverski definirana mreža) Kubernetes mreže. Ako nije ili podrška nije dovoljna, koristite CNI (Container Network Interface) mrežno sučelje za vaše spremnike, koje podržava potrebnu funkcionalnost i pravila.
  2. Provjerite podržava li vaš CaaS ili PaaS (platforma kao usluga) stvaranje ulaznih kontrolera i/ili balansera opterećenja koji distribuiraju dolazni promet među čvorovima klastera. Ako to nije opcija, istražite korištenje proxyja trećih strana ili mreža usluga.
  3. Obučite svoje mrežne inženjere o Linux mrežama i alatima za automatizaciju mreže kako biste smanjili nedostatak vještina i povećali agilnost.

Kako upravljati životnim ciklusom aplikacije

Za automatiziranu i besprijekornu isporuku aplikacija, morate nadopuniti orkestraciju spremnika s drugim alatima za automatizaciju, kao što su proizvodi infrastrukture kao koda (IaC). To uključuje Chef, Puppet, Ansible i Terraform. 

Potrebni su i alati za automatizaciju za izradu i uvođenje aplikacija (pogledajte “Magični kvadrant za orkestraciju izdanja aplikacije"). Kontejneri također pružaju mogućnosti proširivanja slične onima koje su dostupne prilikom postavljanja virtualnih strojeva (VM). Stoga IT lideri moraju imati alati za upravljanje životnim ciklusom spremnika.

Preporuke tvrtke Gartner:

  1. Postavite standarde za osnovne slike spremnika na temelju veličine, licenciranja i fleksibilnosti za razvojne programere da dodaju komponente.
  2. Koristite sustave upravljanja konfiguracijom za upravljanje životnim ciklusom spremnika koji slojevit konfiguraciju temelje na osnovnim slikama smještenim u javnim ili privatnim spremištima.
  3. Integrirajte svoju CaaS platformu s alatima za automatizaciju kako biste automatizirali cijeli tijek rada aplikacije.

Kako upravljati spremnicima s orkestratorima

Temeljna funkcionalnost za postavljanje spremnika pruža se na slojevima orkestracije i planiranja. Tijekom raspoređivanja, spremnici se postavljaju na najoptimalnije hostove u klasteru, kako to diktiraju zahtjevi sloja orkestracije. 

Kubernetes je postao de facto standard za orkestraciju spremnika s aktivnom zajednicom i podržava ga većina vodećih komercijalnih dobavljača. 

Preporuke tvrtke Gartner:

  1. Definirajte osnovne zahtjeve za sigurnosne kontrole, nadzor, upravljanje politikama, postojanost podataka, umrežavanje i upravljanje životnim ciklusom spremnika.
  2. Na temelju ovih zahtjeva odaberite alat koji najbolje odgovara vašim zahtjevima i slučajevima korištenja.
  3. Koristite istraživanje tvrtke Gartner (pogledajte "Kako odabrati model postavljanja Kubernetesa") kako biste razumjeli prednosti i nedostatke različitih modela implementacije Kubernetesa i odabrali najbolji za svoju aplikaciju.
  4. Odaberite dobavljača koji može pružiti hibridnu orkestraciju za radne spremnike u višestrukim okruženjima s čvrstom pozadinskom integracijom, zajedničkim planovima upravljanja i dosljednim modelima cijena.

Kako koristiti mogućnosti pružatelja usluga oblaka

Gartner vjerujeda interes za postavljanje spremnika na javnom oblaku IaaS raste zbog dostupnosti gotovih CaaS ponuda, kao i uske integracije ovih ponuda s drugim proizvodima koje nude pružatelji usluga oblaka.

IaaS oblaci nude potrošnju resursa na zahtjev, brzu skalabilnost i upravljanje uslugama, što će pomoći u izbjegavanju potrebe za dubinskim poznavanjem infrastrukture i njezinog održavanja. Većina pružatelja usluga oblaka nudi uslugu upravljanja spremnikom, a neki nude više opcija orkestracije. 

Ključni pružatelji usluga upravljanih oblakom prikazani su u tablici: 

Cloud provider
Vrsta usluge
Proizvod/usluga

Alibi
Native Cloud Service
Alibaba Cloud Container Service, Alibaba Cloud Container Service za Kubernetes

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

Divovski roj
MSP
Kubernetes infrastruktura kojom upravlja Giant Swarm

Google
Native Cloud Service
Google Container Engine (GKE)

IBM
Native Cloud Service
IBM Cloud Kubernetes usluga

microsoft
Native Cloud Service
Azure Kubernetes usluga, Azure Service Fabric

Proročanstvo
Native Cloud Service
OCI Container Engine za Kubernetes

Platform9
MSP
Upravljao Kubernetesom

Red Hat
Hostirana usluga
OpenShift Namjenski & Online

VMware
Hostirana usluga
Cloud PKS (Beta)

Mail.ru Cloud rješenja*
Native Cloud Service
Mail.ru Cloud Containers

* Nećemo kriti, dodali smo se ovdje tijekom prijevoda :)

Pružatelji usluga javnog oblaka također dodaju nove mogućnosti i izdaju lokalne proizvode. U bliskoj budućnosti pružatelji usluga oblaka će razviti podršku za hibridne oblake i okruženja s više oblaka. 

Preporuke Gartnera:

  1. Objektivno procijenite sposobnost svoje organizacije da implementira odgovarajuće alate i upravlja njima te razmotrite alternativne usluge upravljanja spremnikom u oblaku.
  2. Pažljivo birajte softver, koristite otvoreni kod gdje je to moguće.
  3. Odaberite pružatelje s uobičajenim operativnim modelima u hibridnim okruženjima koji nude jedinstveno upravljanje udruženim klasterima, kao i pružatelje koji olakšavaju samostalno hostiranje IaaS-a.

Nekoliko savjeta za odabir pružatelja usluge Kubernetes aaS s bloga Replex:

  1. Vrijedno je potražiti distribucije koje podržavaju visoku dostupnost odmah po otvaranju. To uključuje podršku za višestruke glavne arhitekture, visoko dostupne etcd komponente te sigurnosno kopiranje i oporavak.
  2. Kako biste osigurali mobilnost u svojim Kubernetes okruženjima, najbolje je odabrati pružatelje usluga oblaka koji podržavaju širok raspon modela implementacije, od lokalnih preko hibridnih do multi-oblaka. 
  3. Ponude pružatelja također treba ocijeniti na temelju jednostavnosti postavljanja, instalacije i stvaranja klastera, kao i ažuriranja, praćenja i rješavanja problema. Osnovni zahtjev je podrška za potpuno automatizirano ažuriranje klastera bez prekida rada. Rješenje koje odaberete također bi vam trebalo omogućiti ručno pokretanje ažuriranja. 
  4. Upravljanje identitetom i pristupom važno je iz perspektive sigurnosti i upravljanja. Provjerite podržava li distribucija Kubernetesa koju odaberete integraciju s alatima za provjeru autentičnosti i autorizaciju koje koristite interno. RBAC i precizna kontrola pristupa također su važni skupovi značajki.
  5. Distribucija koju odaberete mora imati izvorno softverski definirano mrežno rješenje koje pokriva širok raspon različitih aplikacija ili infrastrukturnih zahtjeva ili mora podržavati jednu od popularnih mrežnih implementacija temeljenih na CNI-ju, uključujući Flannel, Calico, kube-router ili OVN.

Uvođenje kontejnera u proizvodnju postaje glavni smjer, o čemu svjedoče i rezultati ankete provedene na Gartner sesije o infrastrukturi, operacijama i strategijama u oblaku (IOCS) u prosincu 2018.:

Najbolji primjeri iz prakse i najbolji primjeri iz prakse za pokretanje spremnika i Kubernetesa u produkcijskim okruženjima
Kao što vidite, 27% ispitanika već koristi kontejnere u svom radu, a 63% to planira učiniti.

В Portworx i Aqua Security anketa 24% ispitanika izjavilo je da ulažu više od pola milijuna dolara godišnje u kontejnerske tehnologije, a 17% ispitanika je na njih potrošilo više od milijun dolara godišnje. 

Članak pripremio tim za platformu u oblaku Mail.ru Cloud rješenja.

Što još pročitati na temu:

  1. Najbolji primjeri iz prakse za DevOps: izvješće DORA.
  2. Kubernetes u duhu piratstva s predloškom za implementaciju.
  3. 25 korisnih alata za implementaciju i usvajanje Kubernetesa.

Izvor: www.habr.com

Dodajte komentar