Nœuds travayè Kubernetes: anpil ti oswa plizyè gwo?

Nœuds travayè Kubernetes: anpil ti oswa plizyè gwo?
Lè w ap kreye yon gwoup Kubernetes, kesyon ka leve: konbyen nœuds travayè pou konfigirasyon ak ki kalite? Ki sa ki pi bon pou yon gwoup sou lokal: achte plizyè serveurs pwisan oswa itilize yon douzèn ansyen machin nan sant done ou a? Èske li pi bon pou w pran uit yon sèl-nwayo oswa de ka kwadwilatè nan nwaj la?

Repons kesyon sa yo nan atik la. Daniel Weibel, enjenyè lojisyèl ak pwofesè pwojè edikasyon Learnk8s la nan tradiksyon kòmandman an Kubernetes aaS soti nan Mail.ru.

Kapasite Cluster

An jeneral, yon gwoup Kubernetes ka konsidere kòm yon gwo "supernode". Pouvwa total enfòmatik li se sòm total pouvwa tout nœuds li yo.

Gen plizyè fason pou reyalize objektif kapasite grap ou vle. Pou egzanp, nou bezwen yon gwoup ki gen yon kapasite total de 8 nwayo processeur ak 32 GB RAM paske yon seri aplikasyon mande anpil resous. Lè sa a, ou ka enstale de nœuds ak 16 GB memwa oswa kat nœuds ak 8 GB memwa, de processeur kwadwilatè-nwayo oswa kat de-nwayo.

Men jis de fason posib pou kreye yon gwoup:

Nœuds travayè Kubernetes: anpil ti oswa plizyè gwo?
Tou de opsyon pwodui yon gwoup ki gen menm kapasite, men konfigirasyon anba a gen kat pi piti nœuds ak konfigirasyon an tèt la gen de pi gwo nœuds.

Ki opsyon ki pi bon?

Pou reponn kesyon sa a, ann gade nan avantaj ki genyen nan tou de opsyon. Nou te rezime yo nan yon tablo.

Plizyè gwo nœuds

Anpil ti nœuds

Pi fasil jesyon gwoup (si li se sou lokal)

Smooth autoscaling

Pi bon mache (si sou site)

Pri a se yon ti kras diferan (nan nwaj la)

Ka kouri aplikasyon pou resous entansif

Replikasyon konplè

Resous yo itilize pi efikas (mwens anlè sou demon sistèm yo
Pi wo tolerans fay grap

Tanpri sonje ke nou ap sèlman pale de nœuds travayè yo. Chwazi kantite ak gwosè nœuds prensipal yo se yon sijè konplètman diferan.

Se konsa, ann diskite sou chak pwen nan tablo a an plis detay.

Premye opsyon: plizyè gwo nœuds

Opsyon ki pi ekstrèm se yon nœud travayè pou tout kapasite gwoup la. Nan egzanp ki anwo a, sa a ta dwe yon sèl ne travayè ak 16 nwayo CPU ak 16 GB RAM.

Pou

Plus No 1. Pi fasil jesyon
Li pi fasil pou jere kèk machin pase yon flòt antye. Li pi vit pou woule mizajou ak koreksyon, epi li pi fasil pou senkronize. Nimewo a nan echèk nan nimewo absoli se tou mwens.

Tanpri sonje ke tout sa ki anwo yo aplike pou pyès ki nan konpitè ou, serveurs ou yo, epi yo pa nan ka nwaj yo.

Sitiyasyon an diferan nan nwaj la. La, jesyon an okipe pa founisè sèvis nwaj la. Kidonk, jere dis nœuds nan nwaj la pa anpil diferan de jere yon nœuds.

Trafik wout ak distribisyon chaj ant gous nan nwaj la fèt otomatikman: trafik ki soti nan Entènèt la voye bay balans prensipal chaj la, ki voye trafik nan pò youn nan nœuds yo (sèvis NodePort la mete pò a nan seri 30000-32767 nan chak nœuds gwoup). Règ yo mete pa kube-proxy redireksyon trafik soti nan ne nan gous la. Men sa li sanble pou dis gous sou de nœuds:

Nœuds travayè Kubernetes: anpil ti oswa plizyè gwo?
Pro # 2: Mwens pri pou chak ne
Yon machin pwisan pi chè, men ogmantasyon pri a pa nesesèman lineyè. Nan lòt mo, yon sèl sèvè dis nwayo ak 10 GB memwa anjeneral pi bon mache pase dis sèvè sèl-nwayo ak menm kantite memwa.

Men, sonje ke règ sa a pa anjeneral travay nan sèvis nwaj yo. Nan plan pri aktyèl yo nan tout gwo founisè nwaj yo, pri ogmante lineyè ak kapasite.

Kidonk, nan nwaj la anjeneral ou pa ka sove sou serveurs ki pi pwisan.

Pwofesyonèl #3: Ou ka kouri aplikasyon pou resous-entansif
Gen kèk aplikasyon ki mande pou serveurs pwisan nan yon gwoup. Pou egzanp, si yon sistèm aprantisaj machin mande pou 8 GB memwa, ou pa pral kapab kouri li sou 1 GB nœuds, men sèlman ak omwen yon gwo ne travayè.

Kont

Dezavantaj No 1. Anpil gous pou chak ne
Si yo fè menm travay la sou mwens nœuds, Lè sa a, chak nan yo pral natirèlman gen plis gous.

Sa a ta ka yon pwoblèm.

Rezon ki fè la se ke chak modil entwodui kèk anlè nan egzekite veso a (egzanp Docker), osi byen ke kubelet la ak cAdvisor.

Pou egzanp, yon kubelet regilyèman sonde tout resipyan sou yon node pou sivivabilite-plis resipyan, se plis travay kubelet la dwe fè.

CAdvisor kolekte estatistik itilizasyon resous pou tout resipyan ki sou yon nod, epi kubelet regilyèman mande enfòmasyon sa yo epi bay li atravè yon API. Ankò, plis kontenè vle di plis travay pou tou de cAdvisor ak kubelet.

Si kantite modil ogmante, li ka ralanti sistèm nan e menm febli fyab li yo.

Nœuds travayè Kubernetes: anpil ti oswa plizyè gwo?
Nan depo Kubernetes kèk plenyenke nœuds sote ant estati Ready/NotReady paske tcheke regilye kubelet nan tout resipyan sou yon node pran twòp tan.
Pou rezon sa a Kubernetes rekòmande pou mete pa plis pase 110 gous pou chak ne. Tou depan de pèfòmans ne la, ou ka kouri plis gous pou chak ne, men li difisil pou predi si pral gen pwoblèm oswa tout bagay ap mache byen. Li vo teste travay la davans.

Dezavantaj No 2. Limitasyon sou replikasyon
Twòp nœuds limite limit efikas replikasyon aplikasyon an. Pou egzanp, si ou gen yon aplikasyon disponiblite segondè ak senk kopi men sèlman de nœuds, Lè sa a, degre efikas aplikasyon an nan replikasyon redwi a de.

Senk kopi yo ka distribye sèlman atravè de nœuds, epi si youn nan yo echwe, li pral pran plizyè kopi nan yon fwa.

Si ou gen senk nœuds oswa plis, chak kopi pral kouri sou yon nœud separe, epi echèk nan yon nœud pral retire omwen yon kopi.

Kidonk, kondisyon disponiblite segondè yo ka mande pou yon sèten kantite minimòm nœuds nan gwoup la.

Dezavantaj No 3. Pi mal konsekans echèk
Avèk yon ti kantite nœuds, chak echèk gen konsekans ki pi grav. Pou egzanp, si ou gen sèlman de nœuds epi youn nan yo echwe, mwatye nan modil ou yo disparèt imedyatman.

Natirèlman, Kubernetes pral imigre kantite travay la soti nan ne echwe a bay lòt moun. Men, si gen kèk nan yo, Lè sa a, ka pa gen ase kapasite gratis. Kòm yon rezilta, kèk nan aplikasyon ou yo p ap disponib jiskaske ou pote ne echwe a.

Kidonk, nœuds yo plis, mwens enpak la nan echèk pyès ki nan konpitè.

Dezavantaj #4: Plis etap autoscaling
Kubernetes gen yon sistèm oto-echèl gwoup pou enfrastrikti nwaj, ki pèmèt ou otomatikman ajoute oswa retire nœuds selon bezwen ou ye kounye a. Ak pi gwo nœuds, otoscaling vin pi brid sou kou ak maladwa. Pou egzanp, sou de nœuds, ajoute yon nœud adisyonèl pral imedyatman ogmante kapasite gwoup la pa 50%. Epi w ap oblije peye pou resous sa yo, menm si w pa bezwen yo.

Kidonk, si w gen plan pou sèvi ak dekale gwoup otomatik, pi piti nœuds yo, pi fleksib ak pri-efikas dekale w ap jwenn.

Koulye a, kite a gade nan avantaj ak dezavantaj nan yon gwo kantite ti nœuds.

Dezyèm opsyon: anpil ti nœuds

Avantaj ki genyen nan apwòch sa a esansyèlman soti nan dezavantaj yo nan opsyon opoze a ak plizyè nœuds gwo.

Pou

Pro # 1: Mwens enpak echèk
Plis nœuds, mwens gous sou chak nœuds. Pou egzanp, si ou gen yon santèn modil pou chak dis nœuds, Lè sa a, chak ne pral gen yon mwayèn de dis modil.

Se konsa, si youn nan nœuds yo echwe, ou sèlman pèdi 10% nan kantite travay la. Gen chans pou sèlman yon ti kantite kopi pral afekte epi aplikasyon an jeneral ap rete operasyonèl.

Anplis de sa, nœuds ki rete yo pral gen ase resous gratis pou jere kantite travay nœuds ki echwe a, kidonk Kubernetes ka lib repwograme gous yo epi aplikasyon w yo ap retounen nan yon eta fonksyonèl relativman byen vit.

Pro # 2: Bon replikasyon
Si gen ase nœuds, pwogramasyon Kubernetes ka bay diferan nœuds pou tout kopi. Nan fason sa a, si yon ne echwe, yon sèl kopi pral afekte epi aplikasyon an ap rete disponib.

Kont

Dezavantaj No 1. Difisil pou kontwole
Gwo kantite nœuds yo pi difisil pou jere. Pou egzanp, chak ne Kubernetes dwe kominike ak tout lòt yo, se sa ki, kantite koneksyon grandi kwadratikman, ak tout koneksyon sa yo bezwen swiv.

Kontwolè a nœuds nan Manadjè Kontwolè Kubernetes regilyèman ap mache nan tout nœuds yo nan gwoup la pou tcheke sante - plis nœuds, plis chaj sou kontwolè a.

Chaj la sou baz done etcd la ap grandi tou - chak apèl kubelet ak kube-proxy gade pou etcd (via API a), kote etcd ta dwe difize mizajou objè yo.

An jeneral, chak ne travayè enpoze chaj adisyonèl sou eleman sistèm yo nan nœuds mèt yo.

Nœuds travayè Kubernetes: anpil ti oswa plizyè gwo?
Kubernetes ofisyèlman sipòte grap ak kantite nœuds jiska 5000. Sepandan, nan pratik gen deja 500 nœuds ka lakòz pwoblèm ki pa trivial.

Pou jere yon gwo kantite nœuds travayè yo, ou ta dwe chwazi nœuds mèt ki pi pwisan. Pou egzanp, kube-up otomatikman enstale gwosè VM kòrèk la pou ne mèt la depann sou kantite nœuds travayè yo. Sa vle di, plis nœuds travayè yo, pi pwodiktif nœuds mèt yo ta dwe.

Pou rezoud pwoblèm espesifik sa yo gen devlopman espesyal, tankou Virtual Kubelet. Sistèm sa a pèmèt ou kontoune restriksyon ak bati grap ak yon gwo kantite nœuds travayè yo.

Dezavantaj #2: Plis depans anlè.
Sou chak nod travayè, Kubernetes kouri yon seri demon sistèm - sa yo enkli tan veso a (tankou Docker), kube-proxy ak kubelet, ki gen ladan cAdvisor. Ansanm yo konsome yon sèten kantite resous fiks.

Si ou gen anpil ti nœuds, pwopòsyon anlè sa a sou chak nœuds pi gwo. Pou egzanp, imajine ke tout demon sistèm sou yon sèl ne ansanm itilize 0,1 nwayo CPU ak 0,1 GB memwa. Si ou gen yon sèl ne dis-nwayo ak 10 GB memwa, Lè sa a, demon yo konsome 1% nan kapasite gwoup la. Nan lòt men an, sou dis nœuds sèl-nwayo ak 1 GB memwa, demon yo pral pran 10% nan kapasite gwoup la.

Kidonk, mwens nœuds yo, se plis efikasite itilize enfrastrikti a.

Dezavantaj No 3. Itilizasyon resous yo pa efikas
Sou ti nœuds, li kapab ke ti moso resous ki rete yo twò piti pou bay nenpòt kantite travay, kidonk yo pa itilize yo.

Pou egzanp, chak gous mande pou 0,75 GB memwa. Si ou gen dis nœuds, chak ak 1 GB memwa, ou ka kouri dis gous, kite chak nœuds ak 0,25 GB nan memwa ki pa itilize.

Sa vle di ke 25% nan memwa tout gwoup la gaspiye.

Sou yon gwo ne ki gen 10 GB memwa, ou ka kouri 13 nan modil sa yo - epi pral gen sèlman yon fragman ki pa itilize nan 0,25 GB.

Nan ka sa a, se sèlman 2,5% nan memwa a gaspiye.

Kidonk, resous yo itilize pi optimal sou pi gwo nœuds.

Kèk gwo ne oswa anpil ti?

Se konsa, ki pi bon: yon kèk gwo nœuds nan yon grap oswa anpil ti? Kòm toujou, pa gen okenn repons klè. Anpil depann sou kalite aplikasyon an.

Pou egzanp, si yon aplikasyon mande pou 10 GB memwa, pi gwo nœuds se yon chwa evidan. Men, si aplikasyon an mande replikasyon diz fwa pou disponiblite segondè, li pa vo risk pou yo mete kopi sou jis de nœuds - dwe genyen yon minimòm dis nœuds nan gwoup la.

Nan sitiyasyon entèmedyè, fè yon chwa ki baze sou avantaj ak dezavantaj chak opsyon. Petèt kèk agiman ki pi enpòtan nan sitiyasyon ou pase lòt.

Epi li pa ditou nesesè fè tout nœuds yo menm gwosè a. Pa gen anyen ki anpeche w fè eksperyans premye ak nœuds ki gen menm gwosè a, answit ajoute nœuds ki gen yon gwosè diferan ak yo, konbine yo nan yon gwoup. Nœuds travayè yo nan yon gwoup Kubernetes ka konplètman etewojèn. Se konsa, ou ka eseye konbine avantaj ki genyen nan tou de apwòch.

Pa gen okenn resèt sèl, ak chak sitiyasyon gen nuans pwòp li yo, epi sèlman pwodiksyon pral montre verite a.

Tradiksyon ekip platfòm nwaj la prepare Mail.ru Cloud Solutions.

Plis enfòmasyon sou Kubernetes: 25 Zouti itil pou jere ak deplwaye gwoup yo.

Sous: www.habr.com

Add nouvo kòmantè