Liphoso tse hlano ha li kenya ts'ebeliso ea pele ho Kubernetes

Liphoso tse hlano ha li kenya ts'ebeliso ea pele ho KubernetesE hlotsoe ke Aris-Dreamer

Batho ba bangata ba lumela hore ho lekane ho fetisetsa kopo ho Kubernetes (ebang ke ho sebelisa Helm kapa ka letsoho) mme ba tla thaba. Empa ha ho bonolo hakaalo.

sehlopha Mail.ru Cloud Solutions e fetoletsoeng ke moenjiniere oa DevOps Julian Gindi. O arolelana le maraba ao k'hamphani ea hae e ileng ea kopana le 'ona nakong ea ho falla e le hore u se ke ua hata lekaleng le le leng.

Mohato oa Pele: Ho theha Likopo tsa Pod le Meeli

Ha re qaleng ka ho theha tikoloho e hloekileng eo li-pods tsa rona li tla sebetsa ho tsona. Kubernetes o etsa mosebetsi o motle oa ho hlophisa li-pods le ho sebetsana le maemo a ho hloleha. Empa ho ile ha fumaneha hore ka linako tse ling mohlophisi ha a khone ho beha pod haeba ho le thata ho hakanya hore na o hloka lisebelisoa tse kae ho sebetsa ka katleho. Mona ke moo likopo tsa lisebelisoa le meeli li hlahang teng. Ho na le phehisano e ngata mabapi le mokhoa o motle oa ho beha likopo le meeli. Ka linako tse ling e hlile e utloahala eka ke bonono ho feta saense. Mona ke mokhoa oa rona.

Likopo tsa Pod - Ena ke boleng ba mantlha bo sebelisoang ke mohlophisi ho beha pod hantle.

Из Litokomane tsa Kubernetes: Mohato oa ho sefa o etsa qeto ea sete ea li-node moo pod e ka reroang teng. Mohlala, filthara ea PodFitsResources e lekola hore na node e na le lisebelisoa tse lekaneng ho khotsofatsa likopo tse khethehileng tsa sesebelisoa.

Re sebelisa likopo tsa kopo e le hore li ka sebelisoa ho hakanya hore na lisebelisoa tse kae ka 'nete Sesebelisoa se hloka hore se sebetse hantle. Ka tsela ena mohlophisi a ka beha li-node ka tsela ea sebele. Qalong re ne re batla ho beha likōpo ka margin ho netefatsa hore pod e 'ngoe le e' ngoe e na le palo e lekaneng ea lisebelisoa, empa re hlokometse hore linako tsa ho hlophisa li eketsehile haholo 'me li-pods tse ling ha lia ka tsa hlophisoa ka botlalo, joalokaha eka ha ho likōpo tsa lisebelisoa tse amoheloang bakeng sa bona.

Tabeng ena, mohlophisi o ne a atisa ho sutumelletsa li-pods ebe a sitoa ho li hlophisa hape hobane sefofane sa taolo se ne se sa tsebe hore na kopo e tla hloka lisebelisoa tse kae, e leng karolo ea bohlokoa ea algorithm ea kemiso.

Meeli ea Pod - ena ke moeli o hlakileng haholoanyane bakeng sa pod. E emela boholo ba lisebelisoa tseo sehlopha se tla se abela setshelo.

Hape, ho tloha litokomane tsa molao: Haeba setshelo se na le moeli oa memori oa 4 GiB, joale kubelet (le nako ea ho sebetsa ea setshelo) e tla e tiisa. Nako ea ho sebetsa ha e lumelle setshelo ho sebelisa ho feta moeli o boletsoeng oa lisebelisoa. Mohlala, ha ts'ebetso e ka har'a setshelo e leka ho sebelisa mohopolo o fetang o lumelletsoeng, kernel ea sistimi e emisa ts'ebetso ka phoso ea "out of memory" (OOM).

Sets'oants'o se ka sebelisa lisebelisoa tse ngata ho feta tse boletsoeng kopong ea lisebelisuoa, empa se ke ke sa sebelisa tse fetang tse boletsoeng moeling. Boleng bona bo thata ho bo beha ka nepo, empa bo bohlokoa haholo.

Ka mokhoa o nepahetseng, re batla hore litlhoko tsa lisebelisoa tsa pod li fetohe ho feta bophelo ba ts'ebetso ntle le ho kena-kenana le mekhoa e meng ea tsamaiso - ke sepheo sa ho beha meeli.

Ka bomalimabe, ha ke khone ho fana ka litaelo tse tobileng mabapi le hore na re lokela ho beha litekanyetso life, empa rona ka borona re latela melao e latelang:

  1. Re sebelisa sesebelisoa sa tlhahlobo ea mojaro, re etsisa boemo ba sephethephethe le ho beha leihlo tšebeliso ea lisebelisoa tsa pod (memori le processor).
  2. Re beha likopo tsa pod ho boleng bo tlase bo sa reroang (ka moeli oa lisebelisoa o ka bang makhetlo a 5 ho feta boleng ba likopo) mme re ela hloko. Ha likopo li le tlase haholo, ts'ebetso e ke ke ea qala, hangata e baka liphoso tse makatsang tsa nako ea Go.

Hlokomela hore meeli e phahameng ea lisebelisoa e etsa hore kemiso e be thata haholoanyane hobane pod e hloka node e nang le lisebelisoa tse lekaneng tse fumanehang.

Ak'u inahanele boemo boo u nang le seva sa marang-rang se bobebe se nang le moeli o phahameng haholo oa lisebelisoa, re re 4 GB ea memori. Ts'ebetso ena e kanna ea tlameha ho hola ka holimo, 'me mojule ka mong o mocha o tla tlameha ho hlophisoa sebakeng se nang le bonyane 4 GB ea memori e fumanehang. Haeba ho se na node e joalo, sehlopha se tlameha ho hlahisa node e ncha ho sebetsana le pod eo, e ka 'nang ea nka nako. Ho bohlokoa ho boloka phapang lipakeng tsa likopo tsa lisebelisoa le meeli ho bonyane ho etsa bonnete ba hore sekhahla se potlakile ebile se boreleli.

Mohato oa bobeli: theha liteko tsa Liveness le Readiness

Ena ke taba e 'ngoe e poteletseng eo hangata ho buisanoang ka eona sechabeng sa Kubernetes. Ho bohlokoa ho ba le kutloisiso e ntle ea liteko tsa Liveness le Readiness kaha li fana ka mokhoa oa hore software e sebetse hantle le ho fokotsa nako ea ho theoha. Leha ho le joalo, li ka baka ts'ebetso e kholo ts'ebetsong ea hau haeba e sa hlophisoa hantle. Ka tlase ke kakaretso ea hore na lisampole ka bobeli li joang.

Ho phela e bontsha hore na setshelo se ntse se sebetsa. Haeba e hloleha, kubelet e bolaea setshelo mme leano la ho qala bocha le e nolofalitsoe. Haeba setshelo se sa hlomelloa ka tlhahlobo ea Liveness, boemo ba kamehla bo tla atleha - sena ke seo e se buang ho Litokomane tsa Kubernetes.

Lipatlisiso tsa bophelo li lokela ho ba theko e tlaase, ho bolelang hore ha lia lokela ho sebelisa lisebelisoa tse ngata, hobane li sebetsa khafetsa 'me li hloka ho tsebisa Kubernetes hore kopo ea sebetsa.

Haeba u beha khetho ea ho matha motsotsoana o mong le o mong, sena se tla eketsa kopo ea 1 motsotsoana, kahoo hlokomela hore ho tla hlokahala lisebelisoa tse eketsehileng ho sebetsana le sephethephethe sena.

Khamphaning ea rona, liteko tsa Liveness li lekola likarolo tsa mantlha tsa kopo, leha data (mohlala, e tsoang ho database kapa cache) e sa fumanehe ka botlalo.

Re hlophisitse lits'ebetso ka "bophelo" bo qetellang bo khutlisetsang khoutu ea karabo ea 200. Sena ke sesupo sa hore ts'ebetso e ntse e sebetsa ebile e khona ho sebetsana le likopo (empa ha se sephethephethe).

Leka Ho ikemisetsa e bontša hore na setshelo se se se loketse ho fana ka likopo. Haeba probe ea ho itokisa e hlōleha, molaoli oa ho qetela o tlosa aterese ea IP ea pod ho tloha qetellong ea litšebeletso tsohle tse lumellanang le pod. Sena se boetse se boletsoe litokomaneng tsa Kubernetes.

Lipatlisiso tsa ho itokisa li ja lisebelisoa tse ngata hobane li tlameha ho romeloa ho backend ka tsela e bontšang hore kopo e loketse ho amohela likōpo.

Ho na le phehisano e ngata sechabeng mabapi le hore na u ka fumana database ka ho toba. Ho fanoe ka holimo (licheke li etsoa khafetsa, empa li ka fetoloa), re ile ra etsa qeto ea hore bakeng sa likopo tse ling, ho itokisetsa ho sebeletsa sephethephethe ho baloa feela ka mor'a ho netefatsa hore litlaleho li khutlisetsoa ho tloha ho database. Liteko tsa ho itokisa tse entsoeng hantle li netefalitse maemo a phahameng a ho fumaneha le ho felisa nako ea ho phomola nakong ea ho romelloa.

Haeba u etsa qeto ea ho botsisisa polokelongtshedimosetso ho bona hore na kopo ya hao e itokisitse hakae, etsa bonnete ba hore e theko e tlase kamoo o ka kgonang. Ha re nke kopo ena:

SELECT small_item FROM table LIMIT 1

Mona ke mohlala oa kamoo re hlophisang litekanyetso tsena tse peli ho Kubernetes:

livenessProbe: 
 httpGet:   
   path: /api/liveness    
   port: http 
readinessProbe:  
 httpGet:    
   path: /api/readiness    
   port: http  periodSeconds: 2

O ka eketsa likhetho tse ling tsa tlhophiso:

  • initialDelaySeconds - ho tla feta metsotsoana e mekae pakeng tsa ho qalisoa ha setshelo le ho qala ha lisampole.
  • periodSeconds - nako ea ho ema pakeng tsa mehlala ea ho matha.
  • timeoutSeconds - palo ea metsotsoana ka mor'a moo yuniti e nkoa e le ea tšohanyetso. Nako ea ho felloa ke nako.
  • failureThreshold - palo ea liphoso tsa liteko pele lets'oao la ho qala bocha le romelloa ho pod.
  • successThreshold - palo ea lipatlisiso tse atlehileng pele pod e kena boemong bo itokiselitseng (ka mor'a ho hlōleha, ha pod e qala kapa e hlaphoheloa).

Mohato oa boraro: theha maano a marang-rang a kamehla bakeng sa pod

Kubernetes e na le "sebaka se bataletseng" sa marang-rang; ka mokhoa o ikhethileng, li-pods tsohle li buisana ka kotloloho. Maemong a mang sena ha se lakatsehe.

Taba e ka bang teng ea ts'ireletso ke hore mohlaseli a ka sebelisa sesebelisoa se le seng se tlokotsing ho romella sephethephethe ho li-pods tsohle marang-rang. Joalo ka libakeng tse ngata tsa ts'ireletso, molao-motheo oa ho ba le monyetla o fokolang oa sebetsa mona. Ka nepo, maano a marang-rang a tlameha ho hlakisa ka ho hlaka hore na ke likhokahano life pakeng tsa li-pods tse lumelletsoeng le tse sa lumelloang.

Mohlala, ka tlase ke leano le bonolo le hanang sephethephethe sohle se kenang bakeng sa sebaka se itseng sa mabitso:

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:  
 name: default-deny-ingress
spec:  
 podSelector: {}  
 policyTypes:  
   - Ingress

Pono ea tlhophiso ena:

Liphoso tse hlano ha li kenya ts'ebeliso ea pele ho Kubernetes
(https://miro.medium.com/max/875/1*-eiVw43azgzYzyN1th7cZg.gif)
Lintlha tse ling mona.

Mohato oa bone: Boitšoaro bo tloaelehileng ka ho sebelisa lihoko le lijana tsa init

E 'ngoe ea lipheo tsa rona tsa mantlha e ne e le ho fana ka li-deployments ho Kubernetes ntle le nako ea ho fokotsa nako bakeng sa bahlahisi. Sena se thata hobane ho na le likhetho tse ngata tsa ho koala lits'ebetso le ho lokolla lisebelisoa tseo ba li sebelisitseng.

Mathata a khethehileng a ile a hlaha ka Nginx. Re hlokometse hore ha li-pods tsena li tsamaisoa ka tatellano, likhokahano tse sebetsang li ile tsa theoha pele li phethoa ka katleho.

Kamora ho etsa lipatlisiso tse ngata marang-rang, ho ile ha fumaneha hore Kubernetes ha e emele hore likhokahano tsa Nginx li khathale pele li felisa pod. Re sebelisa hook ea ho emisa pele, re sebelisitse ts'ebetso e latelang mme ra lahla nako ea ho theoha ka botlalo:

lifecycle: 
 preStop:
   exec:
     command: ["/usr/local/bin/nginx-killer.sh"]

Empa nginx-killer.sh:

#!/bin/bash
sleep 3
PID=$(cat /run/nginx.pid)
nginx -s quit
while [ -d /proc/$PID ]; do
   echo "Waiting while shutting down nginx..."
   sleep 10
done

Paradigm e 'ngoe ea bohlokoa haholo ke tšebeliso ea lijana tsa init ho sebetsana le ho qala lits'ebetso tse ikhethileng. Sena se bohlokoa haholo haeba o na le ts'ebetso e matla ea ho falla ha database e hlokang ho sebetsa pele kopo e qala. U ka boela ua bolela moeli o phahameng oa lisebelisoa bakeng sa ts'ebetso ena ntle le ho beha moeli o joalo bakeng sa kopo e kholo.

Sekema se seng se tloaelehileng ke ho fihlella liphiri ka har'a setshelo sa init se fanang ka lintlha tseo ho module e kholo, e thibelang ho fumana liphiri tse sa lumelloeng ho tsoa ho module ea kopo e kholo ka boeona.

Joalo ka tloaelo, qotsa ho tsoa litokomaneng: Lits'oants'o tsa Init li tsamaisa khoutu ea tloaelo kapa lits'ebeletso ka mokhoa o sireletsehileng tse ka fokotsang ts'ireletso ea setšoantšo sa setshelo sa ts'ebeliso. Ka ho boloka lisebelisoa tse sa hlokahaleng li arohane, u fokotsa sebaka sa tlhaselo ea setšoantšo sa setshelo sa kopo.

Mohato oa Bohlano: Lokisa Kernel

Qetellong, a re bue ka mokhoa o tsoetseng pele haholoanyane.

Kubernetes ke sethala se tenyetsehang haholo se u lumellang hore u tsamaise meroalo ea mesebetsi ka tsela eo u bonang e loketse. Re na le lisebelisoa tse ngata tse sebetsang hantle tse hlokang lisebelisoa tse ngata haholo. Kamora ho etsa tlhahlobo e pharalletseng ea mojaro, re fumane hore sesebelisoa se le seng se ne se sokola ho sebetsana le sephethephethe se lebelletsoeng ha litlhophiso tsa kamehla tsa Kubernetes li ne li sebetsa.

Leha ho le joalo, Kubernetes e u lumella ho tsamaisa setshelo se khethehileng se fetolang liparamente tsa kernel feela bakeng sa pod e itseng. Mona ke seo re neng re se sebelisa ho fetola palo e kholo ea likhokahano tse bulehileng:

initContainers:
  - name: sysctl
     image: alpine:3.10
     securityContext:
         privileged: true
      command: ['sh', '-c', "sysctl -w net.core.somaxconn=32768"]

Ena ke mokhoa o tsoetseng pele haholo oo hangata o sa hlokeng. Empa haeba kopo ea hau e sokola ho sebetsana ka katleho le mojaro o boima, o ka leka ho lokisa tse ling tsa litlhophiso tsena. Lintlha tse ling mabapi le ts'ebetso ena le ho beha litekanyetso tse fapaneng - joalo ka kamehla litokomaneng tsa molao.

Qetellong

Le hoja Kubernetes e ka bonahala e le tharollo e entsoeng ka ntle ho lebokose, ho na le mehato e seng mekae ea bohlokoa eo u lokelang ho e nka ho boloka likopo tsa hau li sebetsa hantle.

Nakong eohle ea ho falla ha Kubernetes, ho bohlokoa ho latela "mokoloho oa tlhahlobo ea mojaro": qala ts'ebeliso, e lekole, sheba metrics le boits'oaro ba sekala, lokisa tlhophiso ho latela data eo, ebe u pheta potoloho hape.

Eba le 'nete mabapi le sephethephethe sa hau se lebelletsoeng' me u leke ho sutumelletsa ho feta ho bona hore na ke likarolo life tse robehang pele. Ka mokhoa ona oa ho pheta-pheta, ke litlhahiso tse fokolang feela tse thathamisitsoeng tse ka lekaneng ho finyella katleho. Kapa e ka hloka hore motho a e etse ka botebo haholoanyane.

Kamehla ipotse lipotso tsena:

  1. Lisebelisoa li sebelisa lisebelisoa tse kae 'me molumo ona o tla fetoha joang?
  2. Litlhokahalo tsa 'nete tsa ho lekanya ke life? Sesebelisoa se tla sebetsana le sephethephethe se kae ka kakaretso? Ho thoe'ng ka sephethephethe se phahameng?
  3. Ke hangata hakae tšebeletso e tla hloka ho eketseha ka holimo? Li-pods tse ncha li hloka ho tlisoa inthaneteng kapele hakae ho amohela sephethephethe?
  4. Li-pods li koala hantle hakae? Na see sea hlokahala ho hang? Na hoa khoneha ho finyella ho romelloa ntle le nako ea ho theoha?
  5. U ka fokotsa likotsi tsa ts'ireletso joang le ho fokotsa tšenyo e tsoang ho li-pods tse senyehileng? Na ho na le litšebeletso tse nang le tumello kapa phihlello eo ba sa e hlokeng?

Kubernetes e fana ka sethala se makatsang se u lumellang ho sebelisa mekhoa e metle ea ho tsamaisa lits'ebeletso tse likete ka sehlopha. Leha ho le joalo, ts'ebeliso e 'ngoe le e' ngoe e fapane. Ka linako tse ling ts'ebetsong e hloka mosebetsi o eketsehileng.

Ka lehlohonolo, Kubernetes e fana ka tlhophiso e hlokahalang ho fihlela lipheo tsohle tsa tekheniki. U sebelisa motsoako oa likopo tsa lisebelisoa le meeli, Liveness le Readiness probes, lijana tsa init, maano a marang-rang, le tokiso ea kernel ea tloaelo, o ka fihlela ts'ebetso e phahameng hammoho le mamello ea liphoso le scalability e potlakileng.

Ke eng hape eo u ka e balang:

  1. Mekhoa e metle le mekhoa e metle ea ho tsamaisa lijana le Kubernetes libakeng tsa tlhahiso.
  2. 90+ lisebelisoa tse sebetsang bakeng sa Kubernetes: ho tsamaisoa, tsamaiso, ho beha leihlo, ts'ireletso le tse ling.
  3. Seteishene sa rona se Around Kubernetes ho Telegraph.

Source: www.habr.com

Eketsa ka tlhaloso