Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?

Cherechedza. transl.: chinyorwa ichi chinobva kuchirongwa chedzidzo kudzidzak8s ndiyo mhinduro kumubvunzo wakakurumbira paunenge uchigadzira Kubernetes-yakavakirwa zvivakwa. Tinovimba kuti tsananguro yakadzama yezvakanakira nezvayakaipira sarudzo yega yega ichakubatsira iwe kuita sarudzo yakanaka yeprojekiti yako.

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?

TL; DR: iyo imwechete seti yemabasa inogona kumhanyisa pamasumbu makuru akati wandei (sumbu rimwe nerimwe richava nenhamba huru yebasa) kana pane akawanda madiki (ane nhamba shoma yemitoro musumbu rega rega).

Pazasi pane tafura inoongorora zvakanakira nezvayakaipira nzira yega yega:

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?

Paunenge uchishandisa Kubernetes sepuratifomu yekumhanyisa maapplication, mibvunzo yakati wandei inowanzo simuka nezve kuomesesa kwekumisikidza masumbu:

  • Mangani masumbu andinofanira kushandisa?
  • Ndinofanira kudzigadzira yakakura sei?
  • Chisumbu chimwe nechimwe chinofanira kusanganisira chii?

Muchinyorwa chino, ini ndichaedza kupindura mibvunzo iyi yese nekuongorora zvakanakira nekuipira kweimwe neimwe nzira.

Chirevo chemubvunzo

Semugadziri wesoftware, unogona kukudziridza uye kushandisa akawanda maapplication panguva imwe chete.

Pamusoro pezvo, zviitiko zvakawanda zvezvishandiso izvi zvinogona kushanda munzvimbo dzakasiyana - semuenzaniso, izvi zvinogona kudaro hombororo, bvunzo ΠΈ production.

Mhedzisiro izere matrix yemashandisirwo uye nharaunda:

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?
Zvishandiso uye Zvakatipoteredza

Muenzaniso uri pamusoro unomiririra 3 application uye 3 nharaunda, zvichikonzera huwandu hwe9 hunogona kuita sarudzo.

Yese chiitiko chekushandisa inzvimbo inozvimiririra yekuendesa iyo inogona kushanda nayo yakazvimiririra yevamwe.

ziva kuti application muenzaniso inogona kusanganisira yakawanda zvikamu, senge frontend, backend, database, nezvimwe. Munyaya ye microservices application, iyo muenzaniso inosanganisira ese mamicroservices.

Nekuda kweizvozvo, vashandisi veKubernetes vane mibvunzo yakati wandei:

  • Mamiriro ese ekushandisa anofanirwa kuiswa musumbu rimwe?
  • Zvakakodzera here kuve neboka rakasiyana kune yega yega application muenzaniso?
  • Kana kuti pamwe musanganiswa wenzira dziri pamusoro unofanira kushandiswa?

Ese aya sarudzo anonyatso shanda, sezvo Kubernetes iri inochinjika sisitimu isingadzikise kugona kwemushandisi.

Hedzino dzimwe dzenzira dzinobvira:

  • rimwe guru guru rinosangana sumbu;
  • mapoka maduku akawanda ane unyanzvi;
  • cluster imwe pachikumbiro;
  • sumbu rimwe panharaunda.

Sezvinoratidzwa pazasi, nzira mbiri dzekutanga dziri pamativi akasiyana ehukuru hwesarudzo:

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?
Kubva pamasumbu makuru mashoma (kuruboshwe) kune akawanda madiki (kurudyi)

Kazhinji, sumbu rimwe rinoonekwa se "guru" pane rimwe kana riine huwandu hukuru hwemanodhi nemapods. Semuenzaniso, cluster ine 10 nodes uye 100 pods yakakura kudarika cluster ine 1 node uye 10 pods.

Zvakanaka, ngatitangei!

1. Imwe hombe yakajairika sumbu

Sarudzo yekutanga ndeyekuisa mabasa ese musumbu rimwe chete:

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?
Rimwe boka guru

Mukati memaitiro aya, cluster inoshandiswa sepasi rose zvivakwa papuratifomu - iwe unongoendesa zvese zvaunoda mune iripo Kubernetes cluster.

Namespaces Kubernetes inobvumira zvikamu zvesumbu kuti zvipatsanurwe zvine musoro kubva kune mumwe nemumwe, kuitira kuti imwe neimwe chiitiko chekushandisa ive neyayo nzvimbo yemazita.

Ngatitarisei zvakanakira nekuipira nzira iyi.

+ Kunyatsoshandisa zviwanikwa

Iine sumbu rimwe chete, iwe unongoda kopi imwe chete yezvese zviwanikwa zvinodiwa kumhanya uye kubata Kubernetes cluster.

Semuenzaniso, izvi ndezvechokwadi kune master node. Kazhinji, rimwe nerimwe Kubernetes cluster rine 3 master nodes, saka kune rimwe chete cluster nhamba yavo icharamba yakadaro (pakuenzanisa, 10 masumbu achada 30 master nodes).

Uhu hunyengeri huri pamusoro hunoshandawo kune mamwe masevhisi anoshanda pane ese sumbu, senge mitoro mitoro, Ingress controllers, huchokwadi, kutema matanda uye yekutarisa masisitimu.

Muchikwata chimwe chete, ese aya masevhisi anogona kushandiswa kamwechete pamabasa ese (hapana chikonzero chekugadzira makopi avo, sezvazvakaita nemasumbu akawanda).

+ Zvakachipa

Nekuda kwezviri pamusoro, mashoma masumbu anowanzo kuchipa nekuti hapana mutengo wepamusoro.

Izvi zvinonyanya kuitika kune master node, iyo inogona kudhura mari yakawanda zvisinei nekuti inotambirwa sei (pa-nzvimbo kana mugore).

Mamwe akakwanisa Kubernetes masevhisi, akadai Google Kubernetes Engine (GKE) kana Azure Kubernetes Service (AKS), ipai control layer yemahara. Muchiitiko ichi, nyaya yemutengo haina kunyanya kuoma.

Kune zvakare masevhisi anofambiswa anobhadharisa mari yakatarwa yekushanda kweimwe Kubernetes cluster (semuenzaniso, Amazon Elastic Kubernetes Service, EKS).

+ Kutonga kwakanaka

Kutarisira sumbu rimwe kuri nyore pane kubata akati wandei.

Administration inogona kusanganisira zvinotevera mabasa:

  • Kubernetes shanduro yekuvandudza;
  • kugadzira pombi yeCI/CD;
  • kuisa iyo CNI plugin;
  • kumisikidza sisitimu yekusimbisa mushandisi;
  • kuiswa kwemutongi wekupinda;

nevamwe vazhinji…

Munyaya yeboka rimwe chete, uchafanirwa kuita zvese izvi kamwe chete.

Kune akawanda masumbu, mashandiro achafanirwa kudzokororwa kakawanda, izvo zvingangoda imwe otomatiki yemaitiro uye maturusi kuona kuenderana uye kuenderana mukuita.

Uye ikozvino mazwi mashomanana pamusoro pezvakashata.

βˆ’ Chinhu chimwe chete chekutadza

Kana uchiramba mumwe chete sumbu richamira kushanda pakarepo all the basa rakawanda!

Pane nzira dzakawanda zvinhu zvinogona kukanganisa:

  • kuvandudza Kubernetes kunotungamirira kumigumisiro isingatarisirwi;
  • A cluster-wide component (somuenzaniso, CNI plugin) inotanga kusashanda sezvaitarisirwa;
  • chimwe chezvikamu zvemasumbu hachina kugadzirwa zvakanaka;
  • kukundikana mune zviri pasi pezvivakwa.

Chimwe chiitiko chakadaro chinogona kukonzera kukuvadza kwakakomba kune ese mabasa akabatwa muboka rakagovaniswa.

βˆ’ Hapana simbi yakasimba

Kumhanya muchikwata chakagovaniswa zvinoreva kuti maapplication anogovana hardware, networking kugona, uye inoshanda sisitimu pane masumbu masumbu.

Neimwe nzira, midziyo miviri ine maviri akasiyana maapplication ari kumhanyisa node yakafanana maitiro maviri anomhanya pamushini mumwe chete unomhanyisa OS kernel.

Linux midziyo inopa imwe nzira yekuzviparadzanisa nevamwe, asi haina kusimba seyakapihwa ne, toti, chaiwo michina. Muchidimbu, maitiro mumudziyo ndiwo maitiro akafanana anoshanda pane iyo host inoshanda system.

Iyi inogona kunge iri nyaya yekuchengetedza: gadziriro iyi inobvumira zvikumbiro zvisina hukama kutaurirana (zvichida kana netsaona).

Pamusoro pezvo, mabasa ese ari muKubernetes cluster anogovera mamwe masevhisi-akafara masevhisi akadai DNS - izvi zvinobvumira maapplication kuwana masevhisi emamwe maapplication musumbu.

Ese mapoinzi ari pamusoro anogona kuve nezvirevo zvakasiyana zvichienderana nezvinodiwa zvekuchengetedza application.

Kubernetes inopa maturusi akasiyana siyana kudzivirira nyaya dzekuchengetedza senge PodSecurityPolicies ΠΈ NetworkPolicies. Nekudaro, kudzimisa nemazvo kunoda ruzivo; mukuwedzera, ivo havakwanise kuvhara zvachose maburi ese ekuchengetedza.

Izvo zvakakosha kuti ugare uchiyeuka kuti Kubernetes yakatanga kugadzirirwa kugoverana, kwete zve kuzviparadzanisa nevamwe uye kuchengeteka.

βˆ’ Kushaikwa kwakasimba kwekugara kwakawanda

Tichifunga kuwanda kwezviwanikwa zvakagovaniswa muboka reKubernetes, kune nzira dzakawanda dzekuti akasiyana maapplication anogona kutsika pazvigunwe zveumwe neumwe.

Semuyenzaniso, application inogona kudzora chiwanikwa chakagovaniswa (seCPU kana ndangariro) uye kuramba mamwe maapplication ari kushanda pane imwechete node kuwana kwairi.

Kubernetes inopa nzira dzakasiyana dzekudzora maitiro aya, akadai zvikumbiro zvekushandisa uye miganhu (onawo chinyorwa " CPU miganho uye hutsinye kurira muKubernetes "- approx. transl.), ResourceQuotas ΠΈ LimitRanges. Nekudaro, sezvekuchengetedza, kumisikidzwa kwavo hakusi kudiki uye havakwanise kudzivirira zvachose zvese zvisingatarisirwe mhedzisiro.

βˆ’ Nhamba huru yevashandisi

Panyaya yeboka rimwe chete, iwe unofanirwa kuvhura mukana kune vanhu vazhinji. Uye iyo yakakura nhamba yavo, inowedzera njodzi yekuti ivo "vachaputsa" chimwe chinhu.

Mukati me cluster unogona kudzora kuti ndiani anogona kuita chii achishandisa role-based access control (RBAC) (ona chinyorwa " Vashandisi uye Mvumo yeRBAC muKubernetes "- approx. transl.). Nekudaro, hazvizodzivise vashandisi kubva "kutyora" chimwe chinhu mukati menzvimbo yavo yebasa.

βˆ’ Masumbu haakwanisi kukura nekusingaperi

Iyo cluster inoshandiswa kune ese mitoro yebasa ingangove yakakura kwazvo (maererano nenhamba yemanodhi nemapods).

Asi pano rimwe dambudziko rinomuka: masumbu muKubernetes haagone kukura nekusingaperi.

Pane muganho we theoretical pakukura kwecluster. MuKubernetes inenge 5000 nodes, 150 zviuru mapodhi uye zviuru mazana matatu emidziyo.

Zvisinei, muupenyu chaihwo, matambudziko anogona kutanga kare - semuenzaniso, nguva chaiyo 500 mapfundo.

Ichokwadi ndechokuti masumbu makuru anoisa mutoro wakakwirira paKubernetes control layer. Mune mamwe mazwi, kuchengeta cluster kumusoro uye kushanda zvakanaka kunoda kunyatsogadzirisa.

Nyaya iyi inotariswa mune chimwe chinyorwa chine hukama pane yekutanga blog inonzi "Kugadzira Kubernetes masumbu - kusarudza saizi node yevashandi".

Asi ngatitarisei nzira yakapesana: masumbu mazhinji madiki.

2. Mazhinji madiki, masumbu akasiyana

Neiyi nzira, iwe unoshandisa sumbu rakaparadzana kune chimwe nechimwe chinhu chaunotumira:

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?
Masumbu mazhinji madiki

Nezvinangwa zvechinyorwa chino, under deployable element inoreva chiitiko chekushandisa - semuenzaniso, dev vhezheni yeimwe application.

Iri zano rinoshandisa Kubernetes seyakasarudzika nguva yekumhanya kune ega ega application zviitiko.

Ngatitarisei zvakanakira nekuipira nzira iyi.

+ Yakaganhurirwa "blast radius"

Kana sumbu rikakundikana, mhedzisiro yakaipa inongogumira kune iyo mitoro yebasa yakaiswa musumbu iro. Mamwe mabasa ese anoramba asina kubatwa.

+ Insulation

Kuremerwa kwebasa kunoitwa mumasumbu ega haagoverane zviwanikwa zvakaita se processor, ndangariro, sisitimu yekushandisa, network, kana mamwe masevhisi.

Mhedzisiro ndeyekuzviparadzanisa pakati pezvishandiso zvisina hukama, izvo zvinogona kubatsira pakuchengetedza kwavo.

+ Nhamba shoma yevashandisi

Tichifunga kuti sumbu rega rega rine chete rakaganhurwa seti yebasa rekuita, nhamba yevashandisi vane mukana kwairi inoderedzwa.

Vanhu vashoma vanogona kuwana sumbu, vanodzikisa njodzi yekuti chimwe chinhu "chichatyoka."

Ngatitarisei kuipa.

βˆ’ Kusashandiswa zvakanaka kwezvinhu

Sezvambotaurwa, rimwe nerimwe reKubernetes cluster rinoda seti chaiyo yezviwanikwa zvekutonga: master node, control layer zvikamu, kutarisa uye kutema matanda.

Panyaya yenhamba huru yemasumbu madiki, mugove wakakura wezviwanikwa unofanirwa kupihwa kune manejimendi.

βˆ’ Zvinodhura

Kusashandisa zvakanaka kwezviwanikwa kunosanganisira kudhura kwakanyanya.

Semuenzaniso, kuchengetedza 30 master node pachinzvimbo chevatatu vane simba rekombuta rakafanana zvinotokanganisa mitengo.

βˆ’ Zvinetso pakutungamirira

Kubata akawanda Kubernetes masumbu kwakaoma zvakanyanya pane kubata rimwe chete.

Semuenzaniso, iwe uchafanirwa kugadzirisa kutendeseka uye mvumo kune yega yega cluster. Iyo Kubernetes vhezheni ichafanirwa kuvandudzwa kakawanda.

Iwe ungangoda kushandisa otomatiki kuita kuti ese aya mabasa ashande.

Zvino ngatitarisei pane zvishoma zvakanyanyisa scenarios.

3. Imwe cluster per application

Nenzira iyi, iwe unogadzira sumbu rakaparadzana rezviitiko zvese zveimwe application:

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?
Cluster per application

Iyi nzira inogona kutorwa seyakajairwa yemusimboti "patsanura cluster pachikwata”, sezvo kazhinji timu yeinjiniya iri kugadzira imwe kana kupfuura application.

Ngatitarisei zvakanakira nekuipira nzira iyi.

+ Iyo cluster inogona kugadziridzwa kune application

Kana chikumbiro chine zvinodiwa zvakakosha, zvinogona kuitwa musumbu pasina kukanganisa mamwe masumbu.

Zvido zvakadaro zvinogona kusanganisira vashandi veGPU, mamwe CNI plugins, mesh sevhisi, kana imwe sevhisi.

Imwe neimwe cluster inogona kugadziridzwa kune application inomhanya mariri kuitira kuti ive ine chete inodiwa.

βˆ’ Nzvimbo dzakasiyana mune imwe cluster

Kuipa kweiyi nzira ndeyekuti zviitiko zvekushandisa kubva munzvimbo dzakasiyana zvinogara musumbu rimwe chete.

Semuenzaniso, iyo prod vhezheni yechishandiso inomhanya mune imwechete cluster seye dev vhezheni. Izvi zvinoreva zvakare kuti vanogadzira vanoshanda mune imwechete cluster umo shanduro yekugadzira yekushandisa inoshandiswa.

Kana, nekuda kwezviito zvevagadziri kana glitches muiyo dev vhezheni, kutadza kunoitika musumbu, saka iyo prod vhezheni inogona kutambura zvakare - hombe dhizaini yeiyi nzira.

Uye pakupedzisira, iyo yekupedzisira mamiriro pane yedu runyorwa.

4. Chisumbu chimwe panharaunda

Mamiriro ezvinhu aya anosanganisira kugovera sumbu rakasiyana kune imwe neimwe nharaunda:

Kugadzira Kubernetes masumbu: mangani anofanira kunge aripo?
Chisumbu chimwe panharaunda

Semuenzaniso, unogona kunge uine masumbu hombororo, bvunzo ΠΈ production, mauri iwe unomhanyisa ese maekisi ekushandisa akatsaurirwa kune yakatarwa nharaunda.

Hezvino zvakanakira nezvayakaipira nzira iyi.

+ Kuparadzaniswa kwenzvimbo yeprod

Mukati menzira iyi, nharaunda dzese dzakaparadzaniswa kubva kune imwe neimwe. Nekudaro, mukuita izvi zvinonyanya kukosha munharaunda yeprod.

Mavhezheni ekugadzira echishandiso ave akazvimirira pane zviri kuitika mune mamwe masumbu uye nharaunda.

Nenzira iyi, kana dambudziko rikaitika kamwe kamwe muboka re dev, iyo prod vhezheni yezvishandiso icharamba ichishanda sekunge hapana chakaitika.

+ Iyo cluster inogona kugadziridzwa kune nharaunda

Chikwata chega chega chinogona kugadziriswa kunharaunda yaro. Somuenzaniso, unogona:

  • isa maturusi ekusimudzira uye kugadzirisa muboka re dev;
  • isa ma test frameworks uye maturusi mu cluster bvunzo;
  • shandisa zvakanyanya simba hardware uye network chiteshi musumbu production.

Izvi zvinokutendera kuti uwedzere kushanda kwezvose zviri zviviri kusimudzira application uye kushanda.

+ Kurambidza kupinda kune yekugadzira cluster

Iko kudikanwa kwekushanda zvakananga neprod cluster hakuwanzo kumuka, saka iwe unogona zvakanyanya kudzikamisa denderedzwa revanhu vanowana mariri.

Unogona kuenda zvakatopfuura uye kuramba vanhu kuwana sumbu iri zvachose, uye kuita zvose deployments uchishandisa otomatiki CI/CD mudziyo. Maitiro akadaro anozodzikisa njodzi yekukanganisa kwevanhu chaizvo painonyanya kukosha.

Uye ikozvino mazwi mashomanana pamusoro pezvakashata.

βˆ’ Hapana kuparadzaniswa pakati pezvikumbiro

Iyo inonyanya kuipa kweiyo nzira ndeyekushaikwa kwehardware uye zviwanikwa zvega pakati pezvishandiso.

Zvishandiso zvisina hukama zvinogovera zviwanikwa zvemasumbu: iyo musimboti wesystem, processor, ndangariro, uye mamwe masevhisi.

Sezvambotaurwa, izvi zvinogona kuva nengozi.

βˆ’ Kusakwanisa kushandura zvinoenderana neapp

Kana chikumbiro chine zvakakosha zvinodiwa, saka ivo vanofanirwa kugutsikana mumasumbu ese.

Semuenzaniso, kana application ichida GPU, saka sumbu rega rega rinofanirwa kunge riine mushandi mumwe chete ane GPU (kunyangwe ichishandiswa chete nechishandiso ichocho).

Nekuda kweizvozvo, tinoisa panjodzi yekukwira kwemitengo uye kusashandisa zvakanaka zviwanikwa.

mhedziso

Kana iwe uine chaiyo seti yemashandisirwo, anogona kuiswa mumasumbu akati wandei kana akawanda madiki.

Chinyorwa chinokurukura zvakanakira nekuipira kwemaitiro akasiyana, kubva kune rimwe sumbu repasi rose kusvika kune akati wandei madiki uye akanyanya hunyanzvi:

  • rimwe guru guru guru;
  • mapoka maduku akawanda ane unyanzvi;
  • cluster imwe pachikumbiro;
  • sumbu rimwe panharaunda.

Saka ndeipi nzira yaunofanira kutora?

Senguva dzose, mhinduro inotsamira pane yekushandisa kesi: iwe unofanirwa kuyera zvakanakira uye zvakaipira nzira dzakasiyana uye sarudza yakanyanya kunaka sarudzo.

Nekudaro, iyo sarudzo haina kuganhurirwa kune mienzaniso iri pamusoro - iwe unogona kushandisa chero musanganiswa wavo!

Semuenzaniso, unogona kuronga akati wandei echikwata chega chega: chikwata chekusimudzira (mumo muchange mune nharaunda. hombororo ΠΈ bvunzo) uye sumbu re Kubudisa (uko nharaunda yekugadzira ichave iripo).

Zvichienderana neruzivo rwuri muchinyorwa chino, unogona kukwidziridza zvakanakira nezvayakaipira zvinoenderana neimwe mamiriro. Rombo rakanaka!

PS

Verenga zvakare pablog yedu:

Source: www.habr.com

Voeg