Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?

Remak. trad.: materyèl sa a soti nan yon pwojè edikasyon aprannk8s se repons lan nan yon kesyon popilè lè konsepsyon enfrastrikti ki baze sou Kubernetes. Nou espere ke deskripsyon jistis detaye nan avantaj yo ak dezavantaj nan chak opsyon pral ede w fè chwa ki pi bon pou pwojè ou a.

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?

TL; DR: menm seri chaj travay yo ka kouri sou plizyè gwoup gwo (chak gwoup pral gen yon gwo kantite chaj travay) oswa sou anpil ti (avèk yon ti kantite chaj nan chak gwoup).

Anba a se yon tablo ki evalye avantaj ak dezavantaj chak apwòch:

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?

Lè w ap itilize Kubernetes kòm yon platfòm pou kouri aplikasyon yo, plizyè kesyon fondamantal souvan parèt sou konplisite ki genyen nan etabli gwoup:

  • Konbyen grap mwen ta dwe itilize?
  • Ki jan gwo mwen ta dwe fè yo?
  • Kisa chak gwoup dwe genyen ladan l?

Nan atik sa a, mwen pral eseye reponn tout kesyon sa yo nan analize avantaj ak dezavantaj chak apwòch.

Deklarasyon yon kesyon

Kòm yon devlopè lojisyèl, ou gen anpil chans devlope ak opere anpil aplikasyon an menm tan.

Anplis de sa, anpil ka nan aplikasyon sa yo gen chans rive nan kouri nan diferan anviwònman - pou egzanp, sa yo ka dev, tès и Prod.

Rezilta a se yon matris antye nan aplikasyon ak anviwònman:

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?
Aplikasyon ak anviwònman

Egzanp ki anwo a reprezante 3 aplikasyon ak 3 anviwònman, sa ki lakòz yon total 9 opsyon posib.

Chak egzanp aplikasyon se yon inite deplwaman endepandan ki ka travay avèk poukont lòt moun.

sonje ke egzanp aplikasyon an ka konpoze de anpil eleman, tankou frontend, backend, baz done, elatriye. Nan ka yon aplikasyon mikwosèvis, egzanp lan ap gen ladan tout mikwosèvis yo.

Kòm yon rezilta, itilizatè Kubernetes gen plizyè kesyon:

  • Èske yo ta dwe mete tout aplikasyon yo nan yon gwoup?
  • Èske li vo gen yon gwoup separe pou chak egzanp aplikasyon?
  • Oswa petèt yon konbinezon de apwòch ki anwo yo ta dwe itilize?

Tout opsyon sa yo byen solid, depi Kubernetes se yon sistèm fleksib ki pa limite kapasite itilizatè a.

Men kèk nan fason posib:

  • yon sèl gwo grap komen;
  • anpil ti grap trè espesyalize;
  • yon gwoup pou chak aplikasyon;
  • yon gwoup pou chak anviwònman.

Jan yo montre pi ba a, de premye apwòch yo nan bout opoze nan echèl opsyon yo:

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?
Soti nan kèk gwo grap (agòch) rive nan anpil ti (adwat)

An jeneral, yon gwoup konsidere kòm "pi gwo" pase yon lòt si li gen yon pi gwo sòm nœuds ak gous. Pa egzanp, yon gwoup ki gen 10 nœuds ak 100 gous pi gwo pase yon gwoup ki gen 1 nœuds ak 10 gous.

Oke, ann kòmanse!

1. Yon gwo grap komen

Premye opsyon a se mete tout chaj travay nan yon gwoup:

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?
Yon gwo grap

Nan apwòch sa a, gwoup la itilize kòm yon inivèsèl platfòm enfrastrikti — ou senpleman deplwaye tout sa ou bezwen nan yon gwoup Kubernetes ki egziste deja.

Espas non yo Kubernetes pèmèt pati nan gwoup la lojikman separe youn ak lòt, pou chak egzanp aplikasyon ka gen pwòp espas non pa yo.

Ann gade nan avantaj ak dezavantaj apwòch sa a.

+ Itilizasyon efikas nan resous yo

Avèk yon sèl gwoup, ou sèlman bezwen yon kopi tout resous ki nesesè pou kouri ak jere gwoup Kubernetes la.

Pou egzanp, sa a se vre pou nœuds mèt. Tipikman, chak gwoup Kubernetes gen 3 nœuds mèt, kidonk pou yon sèl grap nimewo yo ap rete konsa (pou konparezon, 10 grap pral bezwen 30 nœuds mèt).

sibtilite ki pi wo a aplike tou pou lòt sèvis k ap fonksyone atravè tout gwoup la, tankou balans chaj, kontwolè Ingress, otantifikasyon, antre ak sistèm siveyans.

Nan yon sèl gwoup, tout sèvis sa yo ka itilize alafwa pou tout kantite travay (pa gen okenn nesesite pou kreye kopi yo, menm jan ak plizyè gwoup).

+ Bon mache

Kòm yon konsekans sa ki pi wo a, mwens grap yo anjeneral pi bon mache paske pa gen okenn depans jeneral.

Sa a se laverite espesyalman pou nœuds mèt, ki ka koute yon kantite lajan siyifikatif kèlkeswa jan yo òganize (sou lokal oswa nan nwaj la).

Gen kèk sèvis Kubernetes jere, tankou Google Kubernetes Engine (GKE) oswa Azure Kubernetes Sèvis (AKS), bay kouch kontwòl la gratis. Nan ka sa a, pwoblèm nan pri se mwens egi.

Genyen tou sèvis jere ki chaje yon frè fiks pou operasyon chak gwoup Kubernetes (pa egzanp, Amazon Elastic Kubernetes Sèvis, EKS).

+ Administrasyon efikas

Jere yon gwoup se pi fasil pase jere plizyè.

Administrasyon an ka gen ladan travay sa yo:

  • Mizajou vèsyon Kubernetes;
  • mete kanpe yon tiyo CI/CD;
  • enstale Plugin CNI a;
  • mete kanpe yon sistèm otantifikasyon itilizatè;
  • enstalasyon yon kontwolè aksè;

ak anpil lòt...

Nan ka a nan yon gwoup, ou pral gen fè tout sa a yon sèl fwa.

Pou anpil gwoup, operasyon yo pral oblije repete anpil fwa, sa ki pral gen anpil chans mande pou kèk automatisation nan pwosesis ak zouti asire konsistans ak konsistans nan pwosesis la.

Epi, koulye a kèk mo sou dezavantaj yo.

− Yon sèl pwen echèk

Nan ka refi sèl la gwoup la ap sispann travay imedyatman tout chaj travay!

Gen plizyè fason bagay yo ka ale mal:

  • aktyalizasyon Kubernetes mennen nan efè segondè inatandi;
  • Yon eleman nan tout gwoup (pa egzanp, yon plugin CNI) kòmanse pa travay jan yo espere;
  • youn nan eleman gwoup yo pa konfigirasyon kòrèkteman;
  • echèk nan enfrastrikti ki kache.

Yon ensidan sa yo ka lakòz gwo domaj nan tout kantite travay ki òganize nan yon gwoup pataje.

− Pa gen izolasyon rijid

Kouri nan yon gwoup pataje vle di ke aplikasyon yo pataje pyès ki nan konpitè, kapasite rezo, ak sistèm opere sou nœuds gwoup yo.

Nan yon sans, de resipyan ki gen de aplikasyon diferan k ap kouri sou menm nœud la se tankou de pwosesis k ap kouri sou menm machin nan k ap kouri menm nwayo OS la.

Kontenè Linux bay kèk fòm izolasyon, men li pa prèske osi fò ke sa yo bay, di, machin vityèl. Nan sans, yon pwosesis nan yon veso se menm pwosesis la kouri sou sistèm opere lame a.

Sa a kapab yon pwoblèm sekirite: aranjman sa a teyorikman pèmèt aplikasyon ki pa gen rapò yo kominike youn ak lòt (swa entansyonèlman oswa aksidantèlman).

Anplis de sa, tout chaj travay nan yon gwoup Kubernetes pataje kèk sèvis nan tout gwoup tankou dns - sa pèmèt aplikasyon yo jwenn Sèvis nan lòt aplikasyon nan gwoup la.

Tout pwen ki anwo yo ka gen diferan siyifikasyon selon kondisyon sekirite aplikasyon an.

Kubernetes bay divès zouti pou anpeche pwoblèm sekirite tankou PodSecurityPolicies и Politik Rezo. Sepandan, mete yo kòrèkteman mande pou kèk eksperyans; Anplis de sa, yo pa kapab fèmen absoliman tout twou sekirite.

Li enpòtan toujou sonje ke Kubernetes te fèt orijinal pou pataje, pa pou izolasyon ak sekirite.

− Mank strik plizyè lokasyon

Etandone abondans resous pataje nan yon gwoup Kubernetes, gen plizyè fason diferan aplikasyon yo ka mache sou zòtèy lòt.

Pou egzanp, yon aplikasyon ta ka monopolize yon resous pataje (tankou CPU oswa memwa) epi refize lòt aplikasyon ki kouri sou menm ne aksè a li.

Kubernetes bay divès mekanis pou kontwole konpòtman sa a, tankou demann resous ak limit (gade atik la tou " Limit CPU ak throttling agresif nan Kubernetes "- environ. trad.), ResousQuotas и LimitRanges. Sepandan, tankou nan ka a nan sekirite, konfigirasyon yo se byen ki pa trivial epi yo pa kapab anpeche absoliman tout efè segondè enprevi.

− Gwo kantite itilizatè yo

Nan ka yon gwoup sèl, ou dwe louvri aksè a li a anpil moun. Ak pi gwo kantite yo, se pi gwo risk pou yo "kraze" yon bagay.

Nan gwoup la ou ka kontwole ki moun ki ka fè sa lè l sèvi avèk kontwòl aksè ki baze sou wòl (RBAC) (gade atik " Itilizatè ak Otorizasyon RBAC nan Kubernetes "- environ. trad.). Sepandan, li pa pral anpeche itilizatè yo "kraze" yon bagay nan zòn responsablite yo.

− Gwoup pa ka grandi endefiniman

Gwoup la ki itilize pou tout chaj travay yo pral gen anpil chans byen gwo (an tèm de kantite nœuds ak gous).

Men, isit la yon lòt pwoblèm rive: grap nan Kubernetes pa ka grandi endefiniman.

Gen yon limit teyorik sou gwosè gwoup. Nan Kubernetes li se apeprè 5000 nœuds, 150 mil gous ak 300 mil resipyan.

Sepandan, nan lavi reyèl, pwoblèm yo ka kòmanse pi bonè - pou egzanp, jis ak 500 ne.

Reyalite a se ke gwo grap mete yon gwo chaj sou kouch kontwòl Kubernetes la. Nan lòt mo, kenbe gwoup la kanpe ak kouri avèk efikasite mande pou akor ak anpil atansyon.

Pwoblèm sa a eksplore nan yon atik ki gen rapò sou blog orijinal la ki rele "Achitekti gwoup Kubernetes - chwazi yon gwosè ne travayè'.

Men, ann konsidere apwòch opoze a: anpil ti grap.

2. Anpil ti grap espesyalize

Avèk apwòch sa a, ou itilize yon gwoup separe pou chak eleman ou deplwaye:

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?
Anpil ti grap

Pou rezon atik sa a, anba eleman deplwaye refere a yon egzanp nan yon aplikasyon - pou egzanp, yon vèsyon dev nan yon aplikasyon separe.

Estrateji sa a sèvi ak Kubernetes kòm yon espesyalis ègzekutabl pou ka aplikasyon endividyèl yo.

Ann gade nan avantaj ak dezavantaj apwòch sa a.

+ Limite "reyon eksplozyon"

Lè yon gwoup echwe, konsekans negatif yo limite sèlman nan kantite travay sa yo ki te deplwaye nan gwoup sa a. Tout lòt chaj travay yo rete intact.

+ Izolasyon

Chaj travay ki akomode nan gwoup endividyèl yo pa pataje resous tankou processeur, memwa, sistèm opere, rezo, oswa lòt sèvis.

Rezilta a se izolasyon sere ant aplikasyon ki pa gen rapò, ki ka benefisye pou sekirite yo.

+ Ti kantite itilizatè yo

Etandone ke chak gwoup gen sèlman yon seri limite nan chaj travay, kantite itilizatè ki gen aksè a li redwi.

Mwens moun gen aksè nan gwoup la, se pi piti risk pou yon bagay pral "kraze".

Ann gade nan dezavantaj yo.

− Itilizasyon resous yo pa efikas

Kòm mansyone pi bonè, chak gwoup Kubernetes mande pou yon seri espesifik resous jesyon: nœuds mèt, eleman kouch kontwòl, siveyans ak solisyon antre.

Nan ka yon gwo kantite ti grap, yon pi gwo pati nan resous yo dwe asiyen nan jesyon.

− Chè

Itilizasyon efikas nan resous otomatikman enplike gwo depans.

Pou egzanp, kenbe 30 nœuds mèt olye pou yo twa ak menm pouvwa a informatique pral nesesèman afekte depans yo.

− Difikilte nan administrasyon an

Jere plizyè gwoup Kubernetes pi difisil pase jere yon sèl.

Pa egzanp, w ap oblije configured otantifikasyon ak otorizasyon pou chak gwoup. Vèsyon Kubernetes la ap gen pou mete ajou plizyè fwa tou.

Ou pral gen anpil chans bezwen sèvi ak automatisation pou fè tout travay sa yo pi efikas.

Koulye a, kite a gade nan senaryo mwens ekstrèm.

3. Yon gwoup pou chak aplikasyon

Nan apwòch sa a, ou kreye yon gwoup separe pou tout ka yon aplikasyon an patikilye:

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?
Cluster pou chak aplikasyon

Chemen sa a ka konsidere kòm yon jeneralizasyon prensip la "gwoup separe pou chak ekip”, depi anjeneral yon ekip enjenyè ap devlope youn oswa plizyè aplikasyon.

Ann gade nan avantaj ak dezavantaj apwòch sa a.

+ Ka gwoup la dwe ajiste nan aplikasyon an

Si yon aplikasyon gen bezwen espesyal, yo ka aplike nan yon gwoup san yo pa afekte lòt gwoup yo.

Bezwen sa yo ka gen ladan travayè GPU, sèten grefon CNI, yon may sèvis, oswa kèk lòt sèvis.

Chak gwoup ka adapte pou aplikasyon an k ap kouri ladan l pou li genyen sèlman sa ki nesesè.

− Diferan anviwònman nan yon gwoup

Dezavantaj apwòch sa a se ke aplikasyon ki soti nan diferan anviwònman coexist nan menm gwoup la.

Pou egzanp, vèsyon an prod nan aplikasyon an kouri nan gwoup la menm ak vèsyon an dev. Sa vle di tou ke devlopè yo opere nan menm gwoup la kote vèsyon pwodiksyon aplikasyon an ap opere.

Si, akòz aksyon yo nan devlopè oswa pepen nan vèsyon an dev, yon echèk rive nan gwoup la, Lè sa a, vèsyon an prod ta ka potansyèlman soufri tou - yon gwo dezavantaj nan apwòch sa a.

Epi finalman, dènye senaryo a sou lis nou an.

4. Yon gwoup pou chak anviwònman

Senaryo sa a enplike nan asiyen yon gwoup separe pou chak anviwònman:

Konsepsyon gwoup Kubernetes: konbyen ta dwe genyen?
Yon gwoup pou chak anviwònman

Pou egzanp, ou ka gen grap dev, tès и Prod, kote ou pral kouri tout ka aplikasyon an dedye a yon anviwònman espesifik.

Men avantaj ak dezavantaj apwòch sa a.

+ Izolasyon anviwònman prod la

Nan apwòch sa a, tout anviwònman yo izole youn ak lòt. Sepandan, nan pratik sa a se espesyalman enpòtan nan yon anviwònman prod.

Vèsyon pwodiksyon aplikasyon an kounye a endepandan de sa k ap pase nan lòt gwoup ak anviwònman.

Nan fason sa a, si yon pwoblèm toudenkou rive nan gwoup dev la, vèsyon yo prod nan aplikasyon yo ap kontinye travay kòm si pa gen anyen ki te rive.

+ Ka gwoup la dwe ajiste nan anviwònman an

Chak gwoup ka ajiste nan anviwònman li yo. Pou egzanp, ou kapab:

  • enstale zouti pou devlopman ak debogaj nan gwoup dev la;
  • enstale kad tès ak zouti nan gwoup la tès;
  • itilize pyès ki nan konpitè ak chanèl rezo ki pi pwisan nan gwoup la Prod.

Sa pèmèt ou ogmante efikasite tou de devlopman aplikasyon ak operasyon.

+ Limite aksè nan gwoup pwodiksyon an

Bezwen travay dirèkteman ak yon gwoup prod raman rive, kidonk, ou ka siyifikativman limite sèk la nan moun ki gen aksè a li.

Ou ka ale menm pi lwen epi refize moun aksè nan gwoup sa a tout ansanm, epi fè tout deplwaman lè l sèvi avèk yon zouti otomatik CI/CD. Yon apwòch konsa pral minimize risk pou erè imen egzakteman kote li pi enpòtan.

Epi, koulye a kèk mo sou dezavantaj yo.

− Pa gen izolasyon ant aplikasyon yo

Dezavantaj prensipal la nan apwòch la se mank de pyès ki nan konpitè ak izolasyon resous ant aplikasyon yo.

Aplikasyon ki pa gen rapò pataje resous gwoup: nwayo sistèm lan, processeur, memwa, ak kèk lòt sèvis.

Kòm mansyone, sa a ka potansyèlman danjere.

− Enkapasite pou lokalize depandans aplikasyon yo

Si yon aplikasyon gen kondisyon espesyal, lè sa a yo dwe satisfè nan tout gwoup yo.

Pou egzanp, si yon aplikasyon mande pou yon GPU, Lè sa a, chak gwoup dwe genyen omwen yon travayè ki gen yon GPU (menm si aplikasyon sa a itilize sèlman).

Kòm yon rezilta, nou riske pi wo pri ak itilizasyon rezèvwa resous yo.

Konklizyon

Si ou gen yon seri aplikasyon espesifik, yo ka mete yo nan plizyè grap gwo oswa anpil ti.

Atik la diskite avantaj ak dezavantaj divès kalite apwòch, sòti nan yon gwoup mondyal ak plizyè ti ak trè espesyalize:

  • yon gwo gwoup jeneral;
  • anpil ti grap trè espesyalize;
  • yon gwoup pou chak aplikasyon;
  • yon gwoup pou chak anviwònman.

Se konsa, ki apwòch ou ta dwe pran?

Kòm toujou, repons lan depann sou ka a itilize: ou bezwen peze avantaj yo ak dezavantaj nan diferan apwòch epi chwazi opsyon ki pi optimal.

Sepandan, chwa a pa limite a egzanp ki anwo yo - ou ka itilize nenpòt konbinezon de yo!

Pou egzanp, ou ka òganize yon koup nan grap pou chak ekip: yon gwoup devlopman (nan ki pral gen anviwònman dev и tès) ak grap pou pwodiksyon (kote anviwònman pwodiksyon an pral lokalize).

Dapre enfòmasyon ki nan atik sa a, ou ka optimize avantaj ak dezavantaj yo kòmsadwa pou yon senaryo espesifik. Bon chans!

PS

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè