Kubernetes worker nodes: daghang gagmay o daghang dagko?

Kubernetes worker nodes: daghang gagmay o daghang dagko?
Kung maghimo ug Kubernetes cluster, mahimong mutungha ang mga pangutana: pila ka worker node ang i-configure ug unsa nga klase? Unsa ang mas maayo alang sa usa ka on-premise cluster: pagpalit og daghang gamhanan nga mga server o paggamit og usa ka dosena nga daan nga mga makina sa imong data center? Mas maayo ba ang pagkuha sa walo ka single-core o duha ka quad-core nga mga higayon sa panganod?

Ang mga tubag niini nga mga pangutana anaa sa artikulo. Daniel Weibel, software engineer ug magtutudlo sa proyekto sa edukasyon sa Learnk8s sa paghubad sa sugo Kubernetes aaS gikan sa Mail.ru.

Kapasidad sa cluster

Sa kinatibuk-an, ang usa ka Kubernetes cluster mahimong isipon nga usa ka dako nga "supernode". Ang kinatibuk-ang gahum sa pag-compute niini mao ang sumada sa mga gahum sa tanan nga mga node nga naglangkob niini.

Adunay daghang mga paagi aron makab-ot ang imong gitinguha nga target nga kapasidad sa cluster. Pananglitan, kinahanglan namon ang usa ka cluster nga adunay kinatibuk-ang kapasidad nga 8 nga mga core sa processor ug 32 GB sa RAM tungod kay ang usa ka set sa mga aplikasyon nanginahanglan daghang mga kapanguhaan. Dayon mahimo nimong i-install ang duha ka node nga adunay 16 GB nga memorya o upat ka mga node nga adunay 8 GB nga memorya, duha ka quad-core nga mga processor o upat ka mga dual-core.

Ania ang duha lamang ka posible nga mga paagi sa paghimo og cluster:

Kubernetes worker nodes: daghang gagmay o daghang dagko?
Ang duha ka mga kapilian makahimo og usa ka cluster nga adunay parehas nga kapasidad, apan ang ubos nga configuration adunay upat ka gagmay nga mga node ug ang ibabaw nga configuration adunay duha ka mas dako nga mga node.

Hain nga kapilian ang mas maayo?

Aron matubag kini nga pangutana, atong tan-awon ang mga bentaha sa duha nga mga kapilian. Gisumada namo sila sa usa ka lamesa.

Daghang dagkong mga knot

Daghang gagmay nga mga node

Mas dali nga pagdumala sa cluster (kung naa sa lugar)

Hapsay nga autoscaling

Mas barato (kon on-premise)

Ang presyo gamay ra nga lahi (sa panganod)

Mahimong magpadagan sa mga aplikasyon nga kusog sa kapanguhaan

Bug-os nga replikasyon

Ang mga kapanguhaan gigamit nga mas episyente (dili kaayo overhead sa mga daemon sa sistema
Mas taas nga cluster fault tolerance

Palihug timan-i nga naghisgot lang kami bahin sa mga worker node. Ang pagpili sa gidaghanon ug gidak-on sa mga nag-unang node usa ka hingpit nga lahi nga hilisgutan.

Busa, atong hisgotan ang matag punto gikan sa lamesa sa mas detalyado.

Unang kapilian: daghang dagkong mga node

Ang labing grabe nga kapilian mao ang usa ka worker node alang sa tibuuk nga kapasidad sa cluster. Sa pananglitan sa ibabaw, kini mahimong usa ka worker node nga adunay 16 CPU cores ug 16 GB sa RAM.

ΠŸΠ»ΡŽΡΡ‹

Dugang No. 1. Mas sayon ​​nga pagdumala
Mas sayon ​​ang pagdumala sa pipila ka makina kay sa tibuok panon. Mas paspas ang paglansad sa mga update ug pag-ayo, ug mas dali ang pag-synchronize. Ang gidaghanon sa mga kapakyasan sa hingpit nga mga numero gamay usab.

Palihug timan-i nga ang tanan sa ibabaw magamit sa imong hardware, sa imong mga server, ug dili sa cloud instances.

Lahi ang kahimtang sa panganod. Didto, ang pagdumala gidumala sa cloud service provider. Sa ingon, ang pagdumala sa napulo ka node sa panganod dili lahi sa pagdumala sa usa ka node.

Pag-ruta sa trapiko ug pag-apod-apod sa load tali sa mga pod sa panganod awtomatikong gihimo: Ang trapiko nga gikan sa Internet gipadala ngadto sa nag-unang load balancer, nga nagpasa sa trapiko ngadto sa pantalan sa usa sa mga node (ang serbisyo sa NodePort nagtakda sa pantalan sa range 30000-32767 sa matag cluster node). Ang mga lagda nga gitakda sa kube-proxy nag-redirect sa trapiko gikan sa node ngadto sa pod. Mao kini ang hitsura sa napulo ka pod sa duha ka node:

Kubernetes worker nodes: daghang gagmay o daghang dagko?
Pro #2: Gamay nga gasto kada node
Ang usa ka gamhanan nga sakyanan mas mahal, apan ang pagtaas sa presyo dili kinahanglan nga linear. Sa laing pagkasulti, ang usa ka ten-core server nga adunay 10 GB nga memorya kasagaran mas barato kaysa napulo ka single-core server nga adunay parehas nga gidaghanon sa memorya.

Apan timan-i nga kini nga lagda dili kasagaran magtrabaho sa mga serbisyo sa panganod. Sa kasamtangan nga mga laraw sa pagpresyo sa tanan nga dagkong mga tighatag sa panganod, ang mga presyo nagtaas sa linya nga adunay kapasidad.

Sa ingon, sa panganod kasagaran dili ka makatipig sa labi ka kusgan nga mga server.

Pro #3: Mahimo nimong ipadagan ang mga aplikasyon nga kusog sa kapanguhaan
Ang ubang mga aplikasyon nanginahanglan kusog nga mga server sa usa ka cluster. Pananglitan, kung ang usa ka sistema sa pagkat-on sa makina nanginahanglan 8 GB nga memorya, dili nimo kini mapadagan sa 1 GB nga mga node, apan adunay labing menos usa ka dako nga node sa trabahante.

ΠœΠΈΠ½ΡƒΡΡ‹

Disbentaha No. 1. Daghang pod kada node
Kung ang parehas nga buluhaton gihimo sa gamay nga mga node, nan ang matag usa kanila natural nga adunay daghang mga pod.

Mahimong problema kini.

Ang hinungdan mao nga ang matag module nagpaila sa pipila ka overhead sa container runtime (eg Docker), ingon man ang kubelet ug cAdvisor.

Pananglitan, ang usa ka kubelet kanunay nga nagsusi sa tanan nga mga sudlanan sa usa ka node alang sa pagkaluwas-kon mas daghang mga sudlanan, mas daghang trabaho ang kinahanglan nga buhaton sa kubelet.

Gikolekta sa CAdvisor ang mga istatistika sa paggamit sa kapanguhaan alang sa tanan nga mga sulud sa usa ka node, ug kanunay nga gipangutana sa kubelet kini nga kasayuran ug gihatag kini pinaagi sa usa ka API. Sa makausa pa, mas daghang sudlanan nagpasabot ug dugang trabaho para sa cAdvisor ug kubelet.

Kung ang gidaghanon sa mga modules modaghan, kini makapahinay sa sistema ug makapahuyang pa sa pagkakasaligan niini.

Kubernetes worker nodes: daghang gagmay o daghang dagko?
Sa repositoryo sa Kubernetes pipila nagreklamonga ang mga node molukso tali sa Ready/NotReady status tungod kay ang regular nga kubelet check sa tanang sudlanan sa usa ka node dugay ra kaayo.
Tungod niini Kubernetes nagrekomendar sa pagbutang og dili mosobra sa 110 ka pod kada node. Depende sa pasundayag sa node, makadagan ka ug daghang pod kada node, pero lisod ang pagtag-an kung adunay mga problema o maayo ang tanan. Angayan nga sulayan daan ang trabaho.

Disbentaha Num. 2. Limitasyon sa pagkopya
Gamay ra kaayo nga mga node ang naglimite sa epektibo nga gidak-on sa pagkopya sa aplikasyon. Pananglitan, kung ikaw adunay taas nga magamit nga aplikasyon nga adunay lima ka mga replika apan duha ra ka buko, nan ang epektibo nga lebel sa pagkopya sa aplikasyon maminusan sa duha.

Ang lima ka mga kopya mahimo lamang ipang-apod-apod sa duha ka mga node, ug kung ang usa niini mapakyas, kini magkuha sa daghang mga replika sa usa ka higayon.

Kung ikaw adunay lima ka mga node o daghan pa, ang matag replika modagan sa usa ka lahi nga node, ug ang pagkapakyas sa usa ka node magtangtang sa kadaghanan sa usa ka replika.

Sa ingon, ang taas nga mga kinahanglanon nga magamit mahimong magkinahanglan usa ka piho nga minimum nga gidaghanon sa mga node sa cluster.

Disbentaha Num. 3. Mas grabe nga mga sangputanan sa kapakyasan
Uban sa gamay nga gidaghanon sa mga node, ang matag kapakyasan adunay mas grabe nga mga sangputanan. Pananglitan, kung ikaw adunay duha ra ka node ug usa niini mapakyas, ang katunga sa imong mga module mawala dayon.

Siyempre, ibalhin sa Kubernetes ang workload gikan sa napakyas nga node ngadto sa uban. Apan kung gamay ra sila, mahimo’g wala’y igo nga libre nga kapasidad. Ingon usa ka sangputanan, ang pipila sa imong mga aplikasyon dili magamit hangtod nga madala nimo ang napakyas nga node.

Busa, ang daghang mga node, mas gamay ang epekto sa mga pagkapakyas sa hardware.

Disbentaha #4: Daghang mga lakang sa autoscaling
Ang Kubernetes adunay usa ka cluster auto-scaling system alang sa cloud infrastructure, nga nagtugot kanimo sa awtomatikong pagdugang o pagtangtang sa mga node depende sa imong mga panginahanglan karon. Uban sa mas dagkong mga node, ang autoscaling mahimong mas kalit ug clunky. Pananglitan, sa duha ka node, ang pagdugang og dugang nga node makadugang dayon sa kapasidad sa cluster sa 50%. Ug kinahanglan nimo nga bayran ang mga kapanguhaan, bisan kung wala nimo kini kinahanglan.

Busa, kung nagplano ka nga mogamit ug awtomatikong cluster scaling, mas gamay ang mga node, mas flexible ug cost-effective nga scaling ang imong makuha.

Karon atong tan-awon ang mga bentaha ug mga disbentaha sa usa ka dako nga gidaghanon sa gagmay nga mga node.

Ikaduha nga kapilian: daghang gagmay nga mga node

Ang mga bentaha niini nga pamaagi sa esensya naggikan sa mga disbentaha sa kaatbang nga kapilian nga adunay daghang dagkong mga node.

ΠŸΠ»ΡŽΡΡ‹

Pro #1: Gamay nga epekto sa kapakyasan
Ang mas daghang node, mas gamay nga pod sa matag node. Pananglitan, kung ikaw adunay usa ka gatos nga mga module matag napulo ka mga node, nan ang matag node adunay aberids nga napulo ka mga module.

Niining paagiha, kung mapakyas ang usa sa mga node, mawala ra nimo ang 10% sa workload. Ang posibilidad nga gamay ra nga gidaghanon sa mga replika ang maapektuhan ug ang kinatibuk-ang aplikasyon magpabilin nga magamit.

Dugang pa, ang nahabilin nga mga node lagmit adunay igo nga libre nga mga kapanguhaan aron madumala ang workload sa napakyas nga node, aron ang Kubernetes mahimong gawasnon nga mag-reschedule sa mga pod ug ang imong mga aplikasyon mobalik sa usa ka functional nga kahimtang nga medyo dali.

Pro #2: Maayong pagkopya
Kung adunay igo nga mga node, ang Kubernetes scheduler mahimong mag-assign sa lainlaing mga node sa tanan nga mga replika. Niining paagiha, kung mapakyas ang usa ka node, usa ra ka kopya ang maapektuhan ug ang aplikasyon magpabilin nga magamit.

ΠœΠΈΠ½ΡƒΡΡ‹

Disbentaha No. 1. Lisod kontrolahon
Ang daghang mga node mas lisud nga pagdumala. Pananglitan, ang matag Kubernetes node kinahanglan nga makigkomunikar sa tanan nga uban pa, nga mao, ang gidaghanon sa mga koneksyon motubo quadratically, ug ang tanan niini nga mga koneksyon kinahanglan nga masubay.

Ang node controller sa Kubernetes Controller Manager kanunay nga naglakaw sa tanan nga mga node sa cluster aron masusi ang kahimsog - mas daghang mga node, mas daghang load sa controller.

Ang load sa etcd database nagkadako usab - ang matag kubelet ug kube-proxy nga tawag tigbantay alang sa etcd (pinaagi sa API), diin ang etcd kinahanglan magsibya sa mga update sa butang.

Sa kinatibuk-an, ang matag worker node nagpahamtang og dugang nga load sa mga sangkap sa sistema sa mga master node.

Kubernetes worker nodes: daghang gagmay o daghang dagko?
Opisyal nga gisuportahan sa Kubernetes ang mga cluster nga adunay gidaghanon sa mga node hangtod sa 5000. Apan, sa praktis aduna nay 500 ka node mahimong hinungdan sa dili hinungdanon nga mga problema.

Aron madumala ang daghang gidaghanon sa mga node sa trabahante, kinahanglan nga mopili ka labi ka kusgan nga mga master node. Pananglitan, kube-up awtomatiko nga gi-install ang husto nga gidak-on sa VM alang sa master node depende sa gidaghanon sa mga worker node. Sa ato pa, kon mas daghang worker node, mas produktibo ang master nodes.

Aron masulbad kini nga mga piho nga mga problema adunay mga espesyal nga pag-uswag, sama sa Virtual nga Kubelet. Gitugotan ka sa kini nga sistema nga laktawan ang mga pagdili ug magtukod mga kumpol nga adunay daghang mga node sa trabahante.

Disbentaha #2: Dugang gasto sa overhead.
Sa matag worker node, ang Kubernetes nagpadagan og set sa system daemons - kini naglakip sa container runtime (sama sa Docker), kube-proxy ug kubelet, lakip ang cAdvisor. Mag-uban sila sa paggamit sa usa ka piho nga kantidad sa mga kapanguhaan.

Kung ikaw adunay daghang gagmay nga mga node, ang proporsyon niini nga overhead sa matag node mas dako. Pananglitan, hunahunaa nga ang tanan nga mga daemon sa sistema sa usa ka node magdungan nga mogamit sa 0,1 nga mga core sa CPU ug 0,1 GB nga memorya. Kung ikaw adunay usa ka ten-core node nga adunay 10 GB nga memorya, unya ang mga daemon mokonsumo sa 1% sa kapasidad sa cluster. Sa laing bahin, sa napulo ka single-core node nga adunay 1 GB nga memorya, ang mga daemon mokuha sa 10% sa kapasidad sa cluster.

Busa, ang mas diyutay nga mga node, mas episyente ang paggamit sa imprastraktura.

Disbentaha No. 3. Dili episyente nga paggamit sa mga kahinguhaan
Sa gagmay nga mga node, mahimo nga ang nahabilin nga mga tipak sa kapanguhaan gamay ra kaayo aron mahatagan ang bisan unsang buluhaton sa trabaho, mao nga kini nagpabilin nga wala magamit.

Pananglitan, ang matag pod nagkinahanglan og 0,75 GB nga memorya. Kung ikaw adunay napulo ka mga node, ang matag usa adunay 1GB nga panumduman, mahimo nimong ipadagan ang napulo ka mga pod, nga magbilin sa matag node nga adunay 0,25GB nga wala magamit nga memorya.

Kini nagpasabot nga ang 25% sa tibuok nga panumduman sa cluster nausik.

Sa usa ka dako nga node nga adunay 10 GB nga memorya, mahimo nimong ipadagan ang 13 niini nga mga module - ug adunay usa ra ka wala magamit nga tipik sa 0,25 GB.

Sa kini nga kaso, 2,5% ra sa memorya ang nausik.

Busa, ang mga kahinguhaan gigamit nga mas maayo sa mas dagkong mga node.

Daghang dagkong mga buko o daghang gagmay?

Busa, hain ang mas maayo: pipila ka dagkong mga node sa usa ka cluster o daghang gagmay? Sama sa kanunay, walay klaro nga tubag. Daghan ang nagdepende sa matang sa aplikasyon.

Pananglitan, kung ang usa ka aplikasyon nanginahanglan 10 GB nga memorya, ang dagkong mga node usa ka dayag nga kapilian. Ug kung ang aplikasyon nanginahanglan napulo ka pilo nga replikasyon alang sa taas nga pagkaanaa, halos dili takus ang peligro nga ibutang ang mga replika sa duha ra nga mga node - kinahanglan adunay labing gamay nga napulo ka mga node sa cluster.

Sa intermediate nga mga sitwasyon, paghimo usa ka pagpili base sa mga bentaha ug disbentaha sa matag kapilian. Tingali ang ubang mga argumento mas may kalabotan sa imong kahimtang kaysa sa uban.

Ug dili kinahanglan nga himuon ang tanan nga mga node nga parehas ang gidak-on. Wala’y makapugong kanimo sa pag-eksperimento una sa mga node nga parehas ang gidak-on, dayon pagdugang mga node nga lahi ang gidak-on niini, gihiusa sila sa usa ka cluster. Ang mga node sa mga trabahante sa usa ka Kubernetes cluster mahimong hingpit nga heterogeneous. Busa mahimo nimong sulayan ang paghiusa sa mga bentaha sa duha nga mga pamaagi.

Walay usa nga resipe, ug ang matag sitwasyon adunay kaugalingong mga nuances, ug ang produksyon lamang ang magpakita sa kamatuoran.

Ang paghubad giandam sa cloud platform team Mail.ru Cloud Solutions.

Dugang pa mahitungod sa Kubernetes: 25 Mapuslanon nga mga Himan alang sa Pagdumala ug Pag-deploy sa mga Cluster.

Source: www.habr.com

Idugang sa usa ka comment