
Ekosustav tehnologija kontejnerizacije se brzo razvija i mijenja, tako da u ovom području nedostaje dobrih radnih praksi. Ipak, Kubernetes i kontejneri se sve više koriste - kako za modernizaciju starih aplikacija, tako i za razvoj suvremenih oblaka aplikacija.
Komanda prikupila je prognoze, savjete i najbolje prakse za tržišne lidere od Gartnera, 451 Researcha, StacxRoхa i drugih. Oni će omogućiti i ubrzati implementaciju kontejnera u proizvodnim okruženjima.
Kako saznati je li vaša tvrtka spremna za implementaciju kontejnera u proizvodnom okruženju
, u 2022. godini više od 75% organizacija će koristiti kontejnerizirane aplikacije u proizvodnji. To je znatno više nego sada, kada takve aplikacije koristi manje od 30% tvrtki.
Prema , tržište za primjenu kontejnerskih tehnologija u 2022. godini procjenjuje se na 4,3 milijarde USD. To je više nego dvostruko veći iznos od procjena iz 2019. godine, a stopa rasta tržišta iznosi 30%.
U 87% ispitanika izjavilo je da trenutno koriste kontejnerske tehnologije. U usporedbi s tim, 2017. godine takvih ispitanika je bilo 55%.
Unatoč rastućem interesu i rastu implementacije kontejnera, njihovo uvođenje u proizvodnju zahtijeva obuku zbog tehnološke nezrelosti i nedostatka znanja. Organizacije moraju realno sagledati poslovne procese koji zahtijevaju kontejnerizaciju aplikacija. IT lideri trebaju procijeniti imaju li skup vještina za napredovanje s obzirom na potrebu za brzim učenjem.
smatraju da će pitanja na donjem prikazu pomoći u razumijevanju jeste li spremni na implementaciju kontejnera u proizvodnji:

Najčešće pogreške pri primjeni kontejnera u proizvodnji
Organizacije često podcjenjuju napore potrebne za rad s kontejnerima u proizvodnji. nekoliko uobičajenih pogrešaka u scenarijima klijenata pri primjeni kontejnera u proizvodnim okruženjima:

Kako osigurati sigurnost kontejnera
Sigurnošću se ne može baviti "kasnije". Ona mora biti ugrađena u DevOps proces, stoga je nastao čak i poseban termin - DevSecOps. Organizacije moraju planirati kroz cijeli životni ciklus razvoja, koji uključuje proces izrade i razvoja, implementaciju i pokretanje aplikacije.
:
- Integrirajte proces skeniranja slika aplikacija za pronalaženje ranjivosti u CI/CD cjevovod. Aplikacije se skeniraju tijekom faza izrade i pokretanja softvera. Naglasite potrebu za skeniranjem i identifikacijom komponenti s otvorenim izvorom, biblioteka i okvira. Korištenje starih ranjivih verzija od strane developera jedna je od glavnih uzroka ranjivosti kontejnera.
- Unaprijedite konfiguraciju pomoću testova Center for Internet Security (), dostupnih za Docker i Kubernetes.
- Obavezno primijenite kontrolu pristupa, osigurajte razdvajanje dužnosti i implementirajte politiku upravljanja tajnama. Povjerljive informacije, poput SSL ključeva ili vjerodajnica baze podataka, šifriraju se od strane orkestratora ili vanjskih usluga za upravljanje te se pružaju tijekom izvođenja.
- Izbjegavajte kontejnere s povišenim privilegijama koristeći upravljanje sigurnosnim politikama, to će smanjiti potencijalne rizike od provale.
- Koristite sigurnosne alate koji pružaju bijele liste, ponašajno praćenje i otkrivanje anomalija kako biste spriječili zlonamjerne radnje.
:
- Iskoristite ugrađene mogućnosti Kubernetes-a. Postavite pristup za korisnike koristeći uloge. Pobrinite se da ne pružate nepotrebna dopuštenja pojedinim subjektima, čak i ako može potrajati neko vrijeme za razmatranje minimalno potrebnih dopuštenja. Može se činiti primamljivim dati administratoru klastera široke privilegije jer to štedi vreme u početnoj fazi. Međutim, svaki kompromis ili pogreška u računu mogu imati katastrofalne posljedice kasnije.
- Izbjegavajte dupliciranje dopuštenja. Ponekad može biti korisno učiniti tako da se različite uloge preklapaju, ali to može dovesti do problema s operacijom i stvoriti 'mrtve zone' prilikom uklanjanja dopuštenja. Osim toga, važno je ukloniti neiskorištene i neaktivne uloge.
- Postavite mrežne politike: izolirajte module kako biste ograničili pristup; izričito dopustite pristup internetu onim modulima kojima je to potrebno, koristeći oznake; izričito dopustite komunikaciju između onih modula koji trebaju međusobno komunicirati.
Kako organizirati praćenje kontejnera i servisa unutar njih
Sigurnost i praćenje — prilikom implementacije Kubernetes klastera. Razvijatelji su uvijek više fokusirani na funkcionalnosti aplikacija koje razvijaju nego na aspekte .
:
- Pokušajte pratiti stanje kontejnera ili servisa unutar njih zajedno s praćenjem host sustava.
- Dajte prednost proizvođačima i alatima s dubokom integracijom u orkestraciju kontejnera, posebno Kubernetes.
- Odaberite alate koji pružaju detaljno evidentiranje, automatsko otkrivanje usluga i preporuke u stvarnom vremenu koristeći analitiku i/ili strojno učenje.
:
- Upotrebu alata za automatsko otkrivanje i praćenje metrika kontejnera, korelaciju metrika performansi, kao što su procesor, memorija i vrijeme bez kvarova.
- Osigurati optimalno planiranje kapaciteta predviđanjem rokova za iscrpljivanje kapaciteta na temelju pokazatelja praćenja kontejnera.
- Organizirati praćenje aplikacija smještenih u kontejnerima prema parametrima dostupnosti i performansi, što je korisno kako za planiranje kapaciteta, tako i za rješavanje problema s performansama.
- Automatizirati radne tokove, pružajući podršku upravljanju i skaliranju za kontejnere i njihova okruženja smještaja.
- Automatizirati kontrolu pristupa kako biste pratili bazu korisnika, onemogućili zastarjele i gostujuće račune, uklonili nepotrebna prava.
- Osigurati da vaš skup alata može pratiti te kontejnere i aplikacije u različitim okruženjima (oblačnim, lokalnim ili hibridnim) radi vizualizacije i usporedbe performansi u infrastrukturi, mreži, sustavima i aplikacijama.
Kako pohraniti podatke i osigurati njihovu sigurnost.
S povećanjem broja radnih kontejnera s očuvanjem stanja, korisnici moraju uzeti u obzir mjesto podataka izvan hosta, kao i potrebu za zaštitom tih podataka.
Prema podacima , sigurnost podataka je na prvom mjestu na popisu sigurnosnih problema koje je većina ispitanika navela (61%).
Šifriranje podataka je osnovna sigurnosna strategija (64%), međutim ispitanici također koriste praćenje izvedbe
(49%), skeniranje ranjivosti u registrima (49%), skeniranje ranjivosti u CI/CD cjevovodima (49%) i blokiranje anomalija putem zaštite od vremena izvođenja (48%).
:
- Birajte rješenja za pohranu podataka koja su izgrađena na načelima . Bolje je odabrati ona koja zadovoljavaju zahtjeve za pohranu podataka za kontejnerske usluge, su neovisna o hardveru, upravljaju API-jem, imaju distribuiranu arhitekturu, podržavaju lokalno implementiranje i implementaciju u javnom oblaku.
- Izbjegavajte proprietarne dodatke i sučelja. Birajte proizvođače koji osiguravaju integraciju s Kubernetesom i podržavaju standardna sučelja, kao što je CSI (Container Storage Interfaces).
Kako raditi s mrežama
Tradicionalni model korporativne mreže, gdje IT stručnjaci stvaraju mrežne okoline za razvoj, testiranje, osiguravanje kvalitete i proizvodnju za svaki projekt, ne uvijek se dobro uklapa u radni proces neprekidnog razvoja. Osim toga, kontejnerske mreže obuhvaćaju više razina.
U visokog nivoa pravila kojima bi se trebala pridržavati implementacija mrežnog rješenja klastera:
- Podovi planirani na istom čvoru trebaju biti u mogućnosti razmjenjivati podatke s drugim modulima bez korištenja NAT (prevođenje mrežnih adresa).
- Svi sistemski demoni (pozadinski procesi, poput kubeleta) koji rade na određenom čvoru mogu komunicirati s podovima koji rade na tom istom čvoru.
- Podovi koji koriste moraju biti u mogućnosti povezati se sa svim drugim podovima na svim ostalim čvorovima bez korištenja NAT-a. Imajte na umu da se mreža domaćina podržava samo na Linux domaćinima.
Mrešna rješenja trebaju biti blisko integrirana s Kubernetes primitivima i politikama. IT vođe trebaju težiti visokoj razini automatizacije mreže, pružiti developerima odgovarajuće alate i dovoljnu fleksibilnost.
:
- Provjerite podržava li vaš CaaS (konteiner kao usluga) ili vaša SDN (Softverski definirana mreža) Kubernetes mreže. Ako ne ili podrška nije dovoljna, koristite mrežni sučelje CNI (Container Network Interface) koje podržava potrebnu funkcionalnost i politike za vaše kontejnere.
- Osigurajte da vaš CaaS ili PaaS (platforma kao usluga) podržava kreiranje ulaznih kontrolera i/ili balansirača opterećenja koji raspoređuju dolazni promet između čvorova u klasteru. Ako ta mogućnost ne postoji, istražite korištenje vanjskih proxy poslužitelja ili mehanizama service mesh.
- Obučite svoje mrežne inženjere u radu s Linux mrežama i alatima za mrežnu automatizaciju kako biste smanjili razliku u vještinama i povećali fleksibilnost.
Kako upravljati životnim ciklusom aplikacija
Za automatiziranu i neprekidnu isporuku aplikacija potrebno je dopuniti orkestraciju kontejnera drugim alatima za automatizaciju, poput alata za infrastrukturu kao kod (IaC). Uključuju Chef, Puppet, Ansible i Terraform.
Također su potrebni alati za automatizaciju izrade i isporuke aplikacija (vidi ""). Kontejnere također pružaju mogućnosti skaliranja, slične onima koje su postojale pri implementaciji virtualnih strojeva (VM). Stoga, IT vođe moraju imati .
:
- Postavite standarde osnovnih slika kontejnera uzimajući u obzir veličinu, licenciranje i fleksibilnost za dodavanje komponenti od strane developera.
- Koristite sustave za upravljanje konfiguracijom za upravljanje životnim ciklusom kontejnera koji pohranjuju konfiguraciju u slojevima temeljenim na osnovnim slikama, nalazeći se u javnim ili privatnim repozitorijima.
- Integrirajte CaaS platformu s alatima za automatizaciju kako biste automatizirali cijeli radni tijek aplikacije.
Kako upravljati kontejnerima pomoću orkestratora
Osnovne funkcionalnosti za implementaciju kontejnera pružaju se na razinama orkestracije i planiranja. Tijekom planiranja kontejneri se smještaju na najoptimalnije hostove u klasteru, prema zahtjevima razine orkestracije.
Kubernetes je de facto postao standard za orkestraciju kontejnera s aktivnom zajednicom, a podržava ga većina vodećih komercijalnih dobavljača.
:
- Definirajte osnovne zahtjeve za elemente kontrole sigurnosti, nadzor, upravljanje politikama, pohranu podataka, upravljanje mrežama i životnim ciklusom kontejnera.
- Na temelju tih zahtjeva odaberite alat koji najbolje odgovara vašim potrebama i scenarijima korištenja.
- Iskoristite istraživanja Gartnera (vidi «») kako biste razumjeli prednosti i nedostatke različitih modela implementacije Kubernetes i odabrali onaj koji najviše odgovara vašem zadatku.
- Odaberite dobavljača koji može osigurati hibridnu orkestraciju za radne kontejnerske aplikacije u više okruženja s uskom integracijom s backend sustavima, zajedničkim planovima upravljanja i dosljednim modelima cijena.
Kako iskoristiti mogućnosti pružatelja oblaka
, da interes za implementaciju kontejnera u javnom oblaku IaaS raste zbog dostupnosti gotovih CaaS ponuda, kao i uske integracije tih ponuda s drugim proizvodima koje nude pružatelji oblaka.
IaaS oblaci nude potrošnju resursa na zahtjev, brzu skalabilnost i , što pomaže u izbjegavanju potrebe za dubokim znanjem o infrastrukturi i njenom održavanju. Većina pružatelja oblaka nudi uslugu upravljanja kontejnerima, a neki nude više opcija za orkestraciju.
Ključni dobavljači usluga u oblaku su predstavljeni u tablici:
Pružatelj oblaka
Tip usluge
Proizvod/usluga
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
* Nećemo sakriti, sami smo se dodali u prijevodu 🙂
Pružatelji javnih oblaka također dodaju nove mogućnosti i izbacuju lokalne proizvode. U bliskoj budućnosti pružatelji oblaka će razvijati podršku za hibridne oblake i multi-cloud okruženja.
:
- Objektivno procijenite mogućnosti vaše organizacije u primjeni i upravljanju relevantnim alatima, kao i razmotrite alternativne usluge za upravljanje oblacima.
- Pažljivo birajte softver, koristite open source gdje god je to moguće.
- Birajte pružatelje s jedinstvenim operativnim modelima u hibridnim okruženjima, koji nude upravljanje objedinjeni klastera iz jedinstvene upravljačke ploče, kao i pružatelje koji olakšavaju samostalno korištenje IaaS-a.
:
- Treba tražiti distribucije koje podržavaju visoku dostupnost iz kutije. To uključuje podršku za više osnovnih arhitektura, visoko dostupne komponente etcd, kao i sigurnosno kopiranje i oporavak.
- Kako bi se osigurala mobilnost Kubernetes okruženja, bolje je birati pružatelje oblaka koji podržavaju širok spektar modela implementacije: od lokalnih do hibridnih i multi-cloud.
- Ponude pružatelja također treba ocijeniti uzimajući u obzir jednostavnost konfiguracije, instalacije i izrade klastera, kao i ažuriranja, nadzor i rješavanje problema. Osnovni zahtjev je podrška potpuno automatiziranim ažuriranjima klastera s nultim vremenom zastoja. Odabrano rješenje također bi trebalo omogućiti ručno pokretanje ažuriranja.
- Upravljanje identitetom i pristupom je važno i s aspekta sigurnosti i upravljanja. Osigurajte da odabrana distribucija Kubernetes podržava integraciju s autentifikacijskim i autorizacijskim sredstvima koja se koriste unutar tvrtke. RBAC i detaljna kontrola pristupa također su važni skupovi funkcija.
- Odabrani distribucijski paket mora imati vlastito mrežno rješenje koje određuje softver i obuhvaća širok spektar zahtjeva različitih aplikacija ili infrastrukture, ili podržavati jednu od popularnih implementacija mreža temeljenih na CNI, uključujući Flannel, Calico, kube-router ili OVN.
Uvođenje kontejnera u produkciju postaje glavna tendencija, što pokazuju rezultati ankete provedene na o infrastrukturi, operacijama i oblačnim strategijama (IOCS) u prosincu 2018. godine:

Kao što vidimo, 27% ispitanika već koristi kontejnere u radu, dok 63% planira to učiniti.
U 24% ispitanika izvijestilo je da ulaže više od pola milijuna dolara godišnje u kontejnerske tehnologije, dok 17% ispitanika troši više od milijun dolara godišnje.
Članak je pripremila ekipa oblaka platforme .
Što još pročitati o temi:
- .
- .
- .
Izvor: habr.com
