ShĂ«n. pĂ«rk.: Autori i artikullit origjinal â ThĂ©o Chamley, arkitekt i zgjidhjeve cloud nĂ« Google. NĂ« kĂ«tĂ« publikim pĂ«r blogun Google Cloud, ai paraqiti njĂ« pĂ«rmbledhje tĂ« shkurtĂ«r nga njĂ« udhĂ«zues mĂ« i detajuar i kompanisĂ« sĂ« tij tĂ« quajtur «». NĂ« tĂ«, specialistĂ«t e Google kanĂ« mbledhur praktikat mĂ« tĂ« mira pĂ«r pĂ«rdorimin e kontejnerĂ«ve nĂ« kontekstin e pĂ«rdorimit tĂ« Google Kubernetes Engine dhe mĂ« shumĂ«, duke prekur njĂ« gamĂ« tĂ« gjerĂ« temash: nga siguria te monitorimi dhe regjistrimi. Pra, cilat janĂ« praktikat mĂ« tĂ« rĂ«ndĂ«sishme nĂ« punĂ«n me kontejnerĂ«t sipas mendimit tĂ« Google?

(shĂ«rbimi i bazuar nĂ« Kubernetes pĂ«r ekzekutimin e aplikacioneve tĂ« kontejnerizuara nĂ« Google Cloud â shĂ«n. transl.) â Ă«shtĂ« njĂ« nga mĂ«nyrat mĂ« tĂ« mira pĂ«r tĂ« ekzekutuar ngarkesa pune qĂ« kanĂ« nevojĂ« pĂ«r skalim. do tĂ« sigurojĂ« funksionimin pa probleme tĂ« shumicĂ«s sĂ« aplikacioneve, nĂ«se ato janĂ« tĂ« kontejnerizuara. Por nĂ«se dĂ«shiron qĂ« aplikacioni tĂ« menaxhohet lehtĂ«sisht dhe tĂ« pĂ«rfitosh nga tĂ« gjitha pĂ«rfitimet e Kubernetes, duhet tĂ« ndjekĂ«sh praktikat mĂ« tĂ« mira. Ato do tĂ« thjeshtojnĂ« operimin e aplikacionit, monitorimin dhe shkallĂ«zimin e tij, si dhe do tĂ« rrisin sigurinĂ«.
Në këtë artikull do të shqyrtojmë një listë të asaj që duhet të dini dhe të bëni për funksionimin efikas të kontejnerëve në Kubernetes. Ata që dëshirojnë të thellohen në detaje duhet të lexojnë materialin , si dhe të kushtojnë vëmendje postit tonë në lidhje me ndërtimin e kontejnerëve.
1. Përdorni mekanizmat native të kontejnerëve për regjistrimin e logeve
NĂ«se aplikacioni ekzekutohet nĂ« njĂ« klaster Kubernetes, pĂ«r loge nuk Ă«shtĂ« nevoja pĂ«r shumĂ«. NjĂ« sistem i centralizuar i regjistrimit tĂ« logeve ndoshta Ă«shtĂ« tashmĂ« i integruar nĂ« klasterin qĂ« pĂ«rdorni. NĂ« rastin e pĂ«rdorimit tĂ« Kubernetes Engine, kjo menaxhohet nga . (ShĂ«n. pĂ«rk.: dhe pĂ«r njĂ« instalim tĂ« vetĂ«-kontrolluar tĂ« Kubernetes, rekomandojmĂ« tĂ« shqyrtoni zgjidhjen tonĂ« me kod burimor â .) Mos i kompliko vetes jetĂ«n dhe pĂ«rdor mekanizmat native tĂ« regjistrimit tĂ« logeve tĂ« kontejnerĂ«ve. Shkruani loget nĂ« stdout dhe stderr â ato do tĂ« merren automatikisht, ruhen dhe indeksohen.
Nëse dëshironi, mund të shkruani gjithashtu loge në . Ky qasje do të lejojë shtimin e të dhënave meta. Dhe po me to, në Stackdriver Logging do të shfaqet mundësia për të kërkuar në loget duke përdorur këto metadatat.
2. Sigurohuni që kontejnerët të jenë stateless dhe immutable
Për funksionimin e saktë të kontejnerëve në klasterin Kubernetes, ata duhet të jenë stateless dhe immutable. Kur këto kushte përmbushen, Kubernetes do të jetë në gjendje të kryejë punën e tij, duke krijuar dhe shkatërruar entitetet e aplikacionit kur dhe ku është e nevojshme.
Stateless do të thotë që çdo gjendje (të dhënat e vazhdueshme të çdo lloji) ruhet jashtë kontejnerit. Për këtë, në varësi të nevojave, mund të angazhohen lloje të ndryshme të ruajtjes së jashtme: , , , ose baza të tjera të dhënash të menaxhuara. (Shën. përk.: Më shumë rreth kësaj lexoni gjithashtu në artikullin tonë "».)
Immutable do tĂ« thotĂ« qĂ« kontejneri nuk do tĂ« modifikohet gjatĂ« jetĂ«s sĂ« tij: asnjĂ« pĂ«rditĂ«sim, patch, ndryshime nĂ« konfigurim. NĂ«se ju nevojitet tĂ« pĂ«rditĂ«soni kodin e aplikacionit ose tĂ« aplikoni njĂ« patch, krijoni njĂ« imazh tĂ« ri dhe deployeni atĂ«. Rekomandohet qĂ« konfigurimi i kontejnerit (porti pĂ«r dĂ«gjim, opsionet e mjedisit ekzekutiv, etj.) tĂ« nxirret jashtĂ« â nĂ« dhe . Ato mund tĂ« pĂ«rditĂ«sohen pa pasur nevojĂ« tĂ« ndĂ«rtohet njĂ« imazh i ri i kontejnerit. PĂ«r krijimin e thjeshtĂ« tĂ« pipeline-ve pĂ«r ndĂ«rtimin e imazheve mund tĂ« pĂ«rdoret . (ShĂ«n. pĂ«rk.: Ne pĂ«rdorim njĂ« mjet Open Source pĂ«r kĂ«to qĂ«llime .)

Shembulli i përditësimit të konfigurimit të Deployment në Kubernetes duke përdorur ConfigMap, i montuar në pod si konfigurim
3. Shmangni kontejnerët e privilegjuar
SicĂ« e dini, nuk po i drejtoni aplikacionet nĂ«n pĂ«rdoruesin root nĂ« serverat tuaj, apo jo? NĂ«se njĂ« sulmues arrin tĂ« hyjĂ« nĂ« aplikacion, ai do tĂ« ketĂ« akses me tĂ« drejtat e root. TĂ« njĂ«jtat konsiderata vlejnĂ« edhe pĂ«r mos e drejtuar kontejnerĂ«t e privilegjuar. NĂ«se duhet tĂ« ndryshoni cilĂ«simet nĂ« host, mund tâi jepni kontejnerit disa capabilities nĂ«pĂ«rmjet opsionit nĂ« Kubernetes. NĂ«se duhet tĂ« ndryshoni sysctls, Kubernetes ka pĂ«r kĂ«tĂ«. PĂ«r gjithçka, pĂ«rpiquni tĂ« pĂ«rdorni sa mĂ« shumĂ« dhe kontejnerĂ«t sidecar pĂ«r tĂ« kryer operacione tĂ« tilla me privilegje. Ata nuk kĂ«rkojnĂ« akses pĂ«r asnjĂ« lloj trafiku, qoftĂ« tĂ« brendshĂ«m apo tĂ« jashtĂ«m.
Nëse jeni duke administruar një klaster, mund të përdorni për kufizimet në përdorimin e kontejnerëve të privilegjuar.
4. Shmangni drejtpërdrejtë nën root
ĂshtĂ« folur pĂ«r kontejnerĂ«t me privilegje, por do tĂ« ishte edhe mĂ« mirĂ« nĂ«se, pĂ«rveç kĂ«saj, nuk do tĂ« aktivizoni aplikacione brenda kontejnerit si root. NĂ«se njĂ« sulmues gjen njĂ« dobĂ«si tĂ« largĂ«t nĂ« aplikacionin me tĂ« drejta root qĂ« lejon ekzekutimin e kodit, dhe mĂ« pas arrin tĂ« dalĂ« jashtĂ« kontejnerit pĂ«rmes njĂ« dobĂ«sie qĂ« nuk dihet ende, ai do tĂ« fitojĂ« akses root nĂ« host.
Mënyra më e mirë për të evituar këtë është, në radhë të parë, të mos aktivizoni asgjë si root. Për këtë mund të përdorni direktivën USER në Dockerfile ose runAsUser në Kubernetes. Administratori i grumbullit gjithashtu mund të konfigurojë një sjellje të detyruar përmes .
5. Bëni aplikacionin të lehtë për monitorim
Ashtu siç Ă«shtĂ« logimi, monitorimi Ă«shtĂ« njĂ« pjesĂ« thelbĂ«sore e menaxhimit tĂ« aplikacionit. NjĂ« zgjidhje popullore pĂ«r monitorimin nĂ« komunitetin Kubernetes Ă«shtĂ« â njĂ« sistem qĂ« zb discovers (zbulo) automatikisht pod-et dhe shĂ«rbimet qĂ« kĂ«rkojnĂ« monitorim. (ShĂ«n. pĂ«rk.: Shih gjithashtu raportin tonĂ« nĂ« lidhje me monitorimin me Prometheus dhe Kubernetes.) Ă«shtĂ« nĂ« gjendje tĂ« monitorojĂ« grumbujt Kubernetes dhe pĂ«rfshin versionin e tij tĂ« Prometheus pĂ«r monitorimin e aplikacioneve.

Paneli i monitorimit Kubernetes në Stackdriver
Prometheus pret që aplikacioni të hedhë metrikat në endpoint HTTP. Për këtë, janë të disponueshme . I njëjti format përdor edhe mjete të tjera si dhe .
6. Bëni të arritshëm gjendjen e shëndetit të aplikacionit
Menaxhimi i aplikacionit në prodhim ndihmohet nga aftësia e tij për të raportuar mbi gjendjen e tij në të gjithë sistemin. A është e hapur aplikacioni? A është në rregull? A është gati të pranojë trafik? Si po sillet? Mënyra më e zakonshme për të zgjidhur këtë çështje është implementimi i kontrollit të shëndetit (health checks). Kubernetes ka dy lloje të tyre: .
Për liveness probe (kontrolli i jetesës) aplikacioni duhet të ketë një endpoint HTTP që kthen përgjigje "200 OK", nëse ai funksionon dhe varësitë e tij kryesore janë të kënaqura. Për readiness probe (kontrolli i gatishmërisë për shërbim) aplikacioni duhet të ketë një endpoint të ndryshëm HTTP që kthen përgjigjen "200 OK" nëse aplikacioni është në gjendje të shëndetshme, hapat e inicializimit janë përfunduar dhe çdo kërkesë e saktë nuk shkakton një gabim. Kubernetes do të drejtojë trafikun në kontejner vetëm kur aplikacioni të jetë i gatshëm sipas këtyre kontrollove. Dy endpoint mund të bashkohen nëse nuk ka diferencë mes gjendjeve të vitalitetit (liveness) dhe gatishmërisë (readiness).
Më shumë rreth kësaj mund të lexoni në artikullin përkatës nga Sandeep Dinesh, Advocati i Zhvilluesve në Google: "».
7. Zgjidhni me kujdes versionin e imazhit
Shumica e imazheve publike dhe private pĂ«rdorin njĂ« sistem etiketimi tĂ« ngjashĂ«m me atĂ« tĂ« pĂ«rshkruar nĂ« . NĂ«se imazhi pĂ«rdor njĂ« sistem tĂ« ngjashĂ«m me , Ă«shtĂ« e nevojshme tĂ« merren parasysh karakteristikat e etiketimit. PĂ«r shembull, etiketimi latest mund tĂ« lĂ«vizĂ« shpesh nga njĂ« imazh nĂ« njĂ« tjetĂ«r â nuk mund tĂ« mbĂ«shteteni Ă« pĂ«r ndĂ«rtimet dhe instalimet e parashikueshme dhe tĂ« riprodhueshme.
Mund të përdorni etiketën X.Y.Z (ato zakonisht mbeten të pandryshuar), megjithatë në këtë rast, sigurohuni të ndiqni të gjitha patch-et dhe përditësimet për imazhin. Nëse imazhi që përdoret ka një etiketë X.Y, kjo është një variant i mirë përmes qëndresës. Duke e zgjedhur atë, automatikisht merrni patch-et dhe njëkohësisht mbështeteni në një version të stabilizuar të aplikacionit.
P.S. nga përkthyesi
Lexoni gjithashtu në blogun tonë:
- «»;
- «»;
- «»;
- «» (përmbledhje dhe video e prezantimit);
- «» (përmbledhje dhe video e prezantimit);
- «» (përmbledhje dhe video e prezantimit);
- «» (përmbledhje dhe video e prezantimit);
- «».
Burimi: habr.com
