Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Lumelang bohle! Lebitso la ka ke Pavel Agaletsky. Ke sebetsa ke le sehlopha se etellang pele sehlopheng se hlahisang mokhoa oa ho tsamaisa thepa oa Lamoda. Ka 2018, ke buile kopanong ea HighLoad ++, 'me kajeno ke rata ho hlahisa tlaleho ea tlaleho ea ka.

Sehlooho sa ka se inehetse ho phihlelo ea k'hamphani ea rona ea ho tsamaisa mekhoa le litšebeletso libakeng tse fapaneng. Ho qala ho tloha mehleng ea rona ea pele, ha re ne re kenya lits'ebetso tsohle ho li-server tse tloaelehileng, tse qetellang ka phetoho ea butle-butle ho tloha ho Nomad ho ea ho romelloa Kubernetes. Ke tla u bolella hore na ke hobane'ng ha re e entse le hore na re bile le mathata afe nakong eo.

Ho tsamaisa lits'ebetso ho VM

Ha re qaleng ka taba ea hore lilemo tse 3 tse fetileng lits'ebetso le lits'ebeletso tsohle tsa k'hamphani li ne li kentsoe ho li-server tse tloaelehileng. Ha e le hantle, e ne e hlophisitsoe ka tsela eo khoutu eohle ea litsamaiso tsa rona e bolokiloeng le ho bokelloa ho sebelisoa lisebelisoa tsa kopano tse ikemetseng, ho sebelisa li-jenkins. Ka ho sebelisa Ansible, e ile ea hlahisoa ho tsoa ho sistimi ea rona ea taolo ea mofuta ho ea ho li-server tse fumanehang. Ho feta moo, tsamaiso e 'ngoe le e' ngoe eo k'hamphani ea rona e neng e e-na le eona e ne e fetisetsoa bonyane ho li-server tse 2: e 'ngoe ea tsona e le hloohong, ea bobeli e le mohatleng. Litsamaiso tsena tse peli li ne li ts'oana ka botlalo maemong ohle a tsona, matla, tlhophiso, jj. Phapang e le 'ngoe feela lipakeng tsa bona e ne e le hore hlooho e amohetse sephethephethe sa basebelisi, athe mohatla ha oa ka oa amohela sephethephethe sa basebelisi.

Ke hobane’ng ha see se ile sa etsoa?

Ha re fana ka litokollo tse ncha tsa ts'ebeliso ea rona, re ne re batla ho etsa bonnete ba hore ts'ebeliso ea rona e tsoela pele, ke hore, ntle le litlamorao tse hlokomelehang ho basebelisi. Sena se ile sa finyelloa ka lebaka la hore tokollo e latelang e hlophisitsoeng e sebelisang Ansible e ile ea phuthoa ho isa mohatleng. Ha ba le moo, batho ba neng ba kenya letsoho mosebetsing ba ne ba ka hlahloba le ho etsa bonnete ba hore ntho e 'ngoe le e' ngoe e ntle: metrics eohle, likarolo le likopo li ne li sebetsa; litokomane tse hlokahalang li qala. Ke feela ka mor'a hore ba kholisehe hore ntho e 'ngoe le e 'ngoe e lokile, sephethephethe se ile sa fetoha. E ile ea qala ho ea ho seva eo pele e neng e le mohatla. 'Me eo pele e neng e le hlooho e ile ea lula e se na sephethephethe sa basebelisi, ha e ntse e e-na le mofuta o fetileng oa kopo ea rona ho eona.

Kahoo ho ne ho se na moroalo ho basebelisi. Hobane switching e etsahala hang-hang, kaha e mpa e le ho fetola sekala. O ka khutlela mofuteng o fetileng habonolo feela ka ho khutlisetsa balancer morao. Re ka boela ra netefatsa hore ts'ebeliso e ne e khona ho hlahisa le pele e fumana sephethephethe sa basebelisi, se neng se le bonolo haholo.

Ke melemo efe eo re e boneng ho see sohle?

  1. Pele ho tsohle, ho lekane e sebetsa feela. E mong le e mong oa utloisisa hore na morero o joalo oa ho tsamaisa o sebetsa joang, hobane batho ba bangata ba kile ba isoa ho li-server tse tloaelehileng tse tloaelehileng.
  2. Sena se lekane ka botšepehi, kaha theknoloji ea ho tsamaisa e bonolo, e lekoa ke lik'hamphani tse likete. Li-server tse limilione li sebelisoa ka tsela ena. Ho thata ho roba ntho e itseng.
  3. Mme qetellong re ne re ka fumana ho tsamaisoa ha athomo. Lisebelisoa tse etsahalang ka nako e le 'ngoe bakeng sa basebelisi, ntle le mohato o hlokomelehang oa ho fetoha lipakeng tsa mofuta oa khale le o mocha.

Empa hape re bone mefokolo e 'maloa ho tsena tsohle:

  1. Ntle le tikoloho ea tlhahiso, tikoloho ea nts'etsopele, ho na le libaka tse ling. Mohlala, qa le preproduction. Ka nako eo re ne re e-na le li-server tse ngata le litšebeletso tse ka bang 60. Ka lebaka lena ho ne ho hlokahala bakeng sa ts'ebeletso ka 'ngoe, boloka mofuta oa morao-rao bakeng sa eona mochine oa sebele. Ho feta moo, haeba u batla ho ntlafatsa lilaebrari kapa ho kenya litšepe tse ncha, u lokela ho etsa sena libakeng tsohle. U ne u boetse u hloka ho hokahanya nako ea ha u tla kenya mofuta o mocha oa ts'ebeliso ea hau ka nako eo devops e etsang litlhophiso tse hlokahalang tsa tikoloho. Tabeng ena, ho bonolo ho kena boemong boo tikoloho ea rona e tla batla e fapane libakeng tsohle ka nako e le 'ngoe. Ka mohlala, tikolohong ea QA ho tla ba le mefuta e meng ea lilaebrari, 'me sebakeng sa tlhahiso ho tla ba le tse fapaneng, tse tla lebisa mathateng.
  2. Bothata ba ho ntlafatsa litšepiso kopo ya hao. Ha e itšetlehe ka uena, empa ho sehlopha se seng. E leng, ho tsoa sehlopheng sa devops se bolokang li-server. U tlameha ho ba fa mosebetsi o nepahetseng le tlhaloso ea seo u batlang ho se etsa.
  3. Ka nako eo, re ne re boetse re batla ho arola li-monoliths tse khōlō tseo re neng re e-na le tsona ka litšebeletso tse nyenyane tse arohaneng, kaha re ne re utloisisa hore ho tla ba le tse ngata haholo. Ka nako eo, re ne re se re ntse re e-na le tse fetang 100. Bakeng sa tšebeletso e 'ngoe le e' ngoe e ncha, ho ne ho hlokahala hore ho thehoe mochine o mocha o mocha o fapaneng, oo hape o neng o hloka ho hlokomeloa le ho sebelisoa. Ho phaella moo, ha ho hlokahale koloi e le 'ngoe, empa bonyane tse peli. Ho phaella ho tsena tsohle ke tikoloho ea QA. Sena se baka mathata mme se etsa hore ho be thata ho uena ho haha ​​​​le ho tsamaisa litsamaiso tse ncha. ts'ebetso e rarahaneng, e theko e boima ebile e telele.

Ka hona, re nkile qeto ea hore ho tla ba bonolo haholoanyane ho tloha ho tsamaiseng mechini e tloaelehileng ho isa lits'ebetsong tsa rona ka sejaneng sa docker. Haeba u na le docker, u hloka sistimi e ka tsamaisang ts'ebeliso ka sehlopha, kaha u ke ke ua phahamisa setshelo feela. Hangata u batla ho boloka tlaleho ea hore na ho phahamisitsoe linkho tse kae e le hore li phahamise ka bohona. Ka lebaka lena, re ne re hloka ho khetha sistimi ea taolo.

Re ile ra nahana ka nako e telele hore na re ka nka efe. 'Nete ke hore ka nako eo pokello ena ea lisebelisoa ho li-server tse tloaelehileng e ne e se e siiloe ke nako, kaha ba ne ba se na liphetolelo tsa morao-rao tsa lits'ebetso. Ka nako e 'ngoe, ho ne ho bile le FreeBSD, e neng e se bonolo ho e tšehetsa. Re ne re utloisisa hore re hloka ho fallela docker kapele kamoo ho ka khonehang. Li-devops tsa rona li ile tsa sheba boiphihlelo ba bona bo teng ka litharollo tse fapaneng mme ba khetha sistimi e joalo ka Nomad.

Fetohela ho Nomad

Nomad ke sehlahisoa sa HashiCorp. Li boetse li tsejoa ka litharollo tsa tsona tse ling:

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

"Consul" ke sesebelisoa sa ho sibolla litšebeletso.

"Terraform" - Sistimi ea ho laola li-server tse u lumellang hore u li hlophise ka tlhophiso, seo ho thoeng ke meaho ea motheo-as-a-code.

"Moferefere" e o lumella ho tsamaisa mechini e fumanehang sebakeng sa heno kapa marung ka lifaele tse ikhethileng.

Nomad ka nako eo e ne e bonahala e le tharollo e bonolo e ka fetoloang kapele ntle le ho fetola lisebelisoa tsohle. Ho phaella moo, ho bonolo haholo ho ithuta. Ke ka lebaka leo re e khethileng e le mokhoa oa ho hloekisa bakeng sa setshelo sa rona.

U hloka eng ho tsamaisa sistimi ea hau ho Nomad?

  1. Pele ho tsohle o hloka setšoantšo sa docker kopo ya hao. U hloka ho e haha ​​​​le ho e beha sebakeng sa polokelo ea litšoantšo tsa docker. Tabeng ea rona, ena ke artifactory - sistimi e u lumellang ho sutumelletsa lintho tse fapaneng tsa mefuta e fapaneng ho eona. E ka boloka li-archives, litšoantšo tsa docker, liphutheloana tsa PHP tsa moqapi, liphutheloana tsa NPM, joalo-joalo.
  2. E boetse e hlokahala faele ea tlhophiso, e tla bolella Nomad eng, kae le ka bongata bofe boo u batlang ho bo sebelisa.

Ha re bua ka Nomad, e sebelisa puo ea HCL e le mokhoa oa eona oa faele ea boitsebiso, e emelang Puo ea Tlhophiso ea HashiCorp. Ena ke setsi se seholo sa Yaml se u lumellang ho hlalosa ts'ebeletso ea hau ka mantsoe a Nomad.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

E u lumella ho bolela hore na u batla ho sebelisa lijana tse kae, ho tloha ho litšoantšo life ho fetisa liparamente tse fapaneng ho tsona nakong ea ho romelloa. Ka hona, o fepa faele ena ho Nomad, 'me e hlahisa lijana ho hlahisa ho latela eona.

Tabeng ea rona, re hlokometse hore ho ngola feela lifaele tsa HCL tse ts'oanang ka ho feletseng bakeng sa tšebeletso ka 'ngoe ho ke ke ha e-ba bonolo haholo, hobane ho na le litšebeletso tse ngata' me ka linako tse ling u batla ho li ntlafatsa. Hoa etsahala hore tšebeletso e le 'ngoe ha e sebelisoe ketsahalong e le' ngoe, empa ka mefuta e sa tšoaneng e fapaneng. Mohlala, e 'ngoe ea litsamaiso tseo re nang le tsona tlhahisong e na le maemo a fetang 100 a tlhahiso. Li matha ho tloha litšoantšong tse tšoanang, empa li fapane ka litlhophiso tsa tlhophiso le lifaele tsa tlhophiso.

Ka hona, re nkile qeto ea hore ho tla ba bonolo hore re boloke lifaele tsohle tsa rona tsa tlhophiso bakeng sa ho romelloa polokelong e le 'ngoe e tloaelehileng. Ka tsela ena li ne li bonahala: li ne li le bonolo ho li boloka 'me re khona ho bona hore na re na le litsamaiso life. Haeba ho hlokahala, ho boetse ho bonolo ho ntlafatsa kapa ho fetola ntho e itseng. Ho eketsa sistimi e ncha le hona ha ho thata - o hloka feela ho theha faele ea tlhophiso ka har'a bukana e ncha. Ka hare ho eona ho na le lifaele tse latelang: tšebeletso.hcl, e nang le tlhaloso ea tšebeletso ea rona, le lifaele tse ling tsa env tse lumellang eona tšebeletso ena, e sebelisoang tlhahisong, hore e lokisoe.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Leha ho le joalo, tse ling tsa litsamaiso tsa rona li kentsoe tlhahiso eseng ka kopi e le 'ngoe, empa tse' maloa ka nako e le 'ngoe. Ka hona, re ile ra etsa qeto ea hore ho tla ba bonolo hore re se ke ra boloka li-configs ka mokhoa oa tsona o hloekileng, empa mokhoa oa tsona o hlophisitsoeng. 'Me re ile ra khetha jinja 2. Ka sebopeho sena, re boloka li-configs tsa ts'ebeletso ka boeona le lifaele tsa env tse hlokahalang bakeng sa eona.

Ho feta moo, re behile sebakeng sa polokelo sengoloa sa phepelo se tloaelehileng mererong eohle, se u lumellang ho qala le ho tsamaisa ts'ebeletso ea hau tlhahisong, tikolohong e lakatsehang, sebakeng seo u se batlang. Tabeng ea ha re ne re fetola sebopeho sa rona sa HCL hore e be template, ebe faele ea HCL, eo pele e neng e le config ea Nomad e tloaelehileng, tabeng ena e ile ea qala ho shebahala e fapane hanyane.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Ke hore, re nkile sebaka sa mefuta e meng ea sebaka sa config ka ho kenya mefuta e fapaneng e nkiloeng lifaeleng tsa env kapa mehloling e meng. Ho phaella moo, re ile ra fumana monyetla oa ho bokella lifaele tsa HCL ka matla, ke hore, re ke ke ra sebelisa feela ho kenya mefuta e tloaelehileng. Kaha jinja e tšehetsa li-loops le maemo, u ka boela ua etsa lifaele tsa tlhophiso moo, tse fetohang ho itšetlehile ka hore na u romela likopo tsa hau hokae.

Ka mohlala, u batla ho fetisetsa tšebeletso ea hau ho tlhahiso ea pele le tlhahiso. Ha re re tlhahisong ea pele ha u batle ho tsamaisa cron scripts, empa u batla feela ho bona ts'ebeletso sebakeng se arohaneng ho etsa bonnete ba hore e ea sebetsa. Ho mang kapa mang ea sebelisang ts'ebeletso, ts'ebetso e shebahala e le bonolo haholo ebile e hlakile. Seo u hlokang ho se etsa feela ke ho kenya faele ea deploy.sh, hlalosa hore na u batla ho sebelisa tšebeletso efe le hore na u batla ho e isa hokae. Ka mohlala, u batla ho romela tsamaiso e itseng ho ea Russia, Belarus kapa Kazakhstan. Ho etsa sena, fetola feela e 'ngoe ea li-parameter,' me u tla ba le faele e nepahetseng ea tlhophiso.

Ha ts'ebeletso ea Nomad e se e kentsoe sehlopheng sa hau, e shebahala tjena.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Taba ea pele, o hloka mofuta o itseng oa balancer kantle, o tla amohela sephethephethe sa basebelisi bohle. E tla sebetsa 'moho le Consul 'me e fumane ho tsoa ho eona hore na, sebakeng sefe, ho aterese efe ea IP ho na le tšebeletso e khethehileng e lumellanang le lebitso la domain name. Litšebeletso ho Consul li tsoa ho Nomad ka boeona. Kaha tsena ke lihlahisoa tse tsoang k'hamphaning e le 'ngoe, li amana haholo. Re ka re Nomad ka ntle ho lebokose a ka ngolisa lits'ebeletso tsohle tse hlahisitsoeng ho eona ka hare ho Consul.

Hang ha mohlahlobi oa thepa ea hau a ka pele a tseba hore na o romela sephethephethe ho tšebeletso efe, o e fetisetsa setšelong se loketseng kapa lijana tse ngata tse lumellanang le kopo ea hau. Ka tlhaho, ho boetse hoa hlokahala ho nahana ka polokeho. Leha lits'ebeletso tsohle li sebetsa ka mechini e ts'oanang e ka har'a lijara, hangata sena se hloka ho thibela phihlello ea mahala ho tsoa litšebeletsong life kapa life ho ea ho tse ling. Re fihletse sena ka ho arola. Tšebeletso e 'ngoe le e' ngoe e ile ea qalisoa ka marang-rang a eona a marang-rang, moo melao le melao ea ho lumella / ho hana ho fihlella lits'ebetsong le lits'ebeletso tse ling li laetsoeng. Li ne li ka fumaneha ka har'a sehlopha sena le ka ntle ho sona. Ka mohlala, haeba u batla ho thibela tšebeletso hore e se ke ea hokela ho database e itseng, sena se ka etsoa ka ho arola maemo a marang-rang. Ke hore, esita le ka phoso, u ke ke ua ikopanya ka phoso ho tloha tikolohong ea teko ho ea polokelong ea hau ea tlhahiso.

Phetoho e ile ea re jella bokae mabapi le mehloli ea batho?

Phetoho ea k'hamphani eohle ho ea Nomad e nkile likhoeli tse ka bang 5-6. Re ile ra tsamaea ka litšebeletso-ka-tšebeletso, empa ka lebelo le potlakileng. Sehlopha se seng le se seng se ne se tlameha ho iketsetsa lijana tsa bona bakeng sa litšebeletso.

Re amohetse mokhoa o joalo hoo sehlopha ka seng se ikarabellang bakeng sa litšoantšo tsa docker tsa litsamaiso tsa bona ka botsona. Li-DevOps li fana ka lisebelisoa tse akaretsang tse hlokahalang bakeng sa ho romelloa, ke hore, tšehetso bakeng sa sehlopha ka boeona, tšehetso bakeng sa tsamaiso ea CI, joalo-joalo. Mme ka nako eo, re ne re e-na le litsamaiso tse fetang 60 tse falliselitsoeng ho Nomad, tse neng li lekana le lijana tse ka bang likete tse peli.

Devops e ikarabella bakeng sa lisebelisoa tse akaretsang tsa ntho e 'ngoe le e' ngoe e amanang le ho tsamaisoa le li-server. 'Me sehlopha se seng le se seng sa nts'etsopele, se na le boikarabello ba ho kenya ts'ebetsong lijana bakeng sa tsamaiso e khethehileng, kaha ke sehlopha se tsebang seo ka kakaretso se se hlokang ka har'a setshelo se itseng.

Mabaka a ho lahla Nomad

Re fumane melemo efe ka ho fetohela mosebetsing re sebelisa Nomad le docker, har'a tse ling?

  1. Re joalo fana ka maemo a lekanang bakeng sa libaka tsohle. Ho nts'etsopele, tikoloho ea QA, tlhahiso ea pele, tlhahiso, litšoantšo tse tšoanang tsa setshelo li sebelisoa, tse nang le litšepiso tse tšoanang. Ka hona, ha u na monyetla oa hore se tla fella ka tlhahiso ha se seo u neng u se lekile sebakeng sa heno kapa tikolohong ea hau ea liteko.
  2. Hape re fumane hore ho lekane ho bonolo ho kenya tšebeletso e ncha. Ho latela pono ea phepelo, litsamaiso life kapa life tse ncha li hlahisoa ka mokhoa o bonolo haholo. E-ea feela sebakeng sa polokelo e bolokang li-configs, eketsa tlhophiso e 'ngoe bakeng sa tsamaiso ea hau moo,' me u se u se u le teng. U ka tsamaisa sistimi ea hau tlhahiso ntle le boiteko bo bong bo tsoang ho li-devops.
  3. All lifaele tsa tlhophiso polokelong e le 'ngoe e tloaelehileng ho ile ha fumaneha hore e ntse e hlahlojoa. Nakong eo re neng re sebelisa litsamaiso tsa rona re sebelisa li-server, re ne re sebelisa Ansible, eo litlhophiso li neng li le sebakeng se le seng sa polokelo. Leha ho le joalo, ho bahlahisi ba bangata ho ne ho le thata ho sebetsa le bona. Mona palo ea li-configs le khoutu eo u hlokang ho e eketsa ho kenya ts'ebeletso e se e le nyane haholo. Hape, ho bonolo haholo ho li-devops ho e lokisa kapa ho e fetola. Maemong a liphetoho, mohlala, ho mofuta o mocha oa Nomad, ba ka nka le ho ntlafatsa lifaele tsohle tse sebetsang sebakeng se le seng.

Empa hape re ile ra kopana le mathata a 'maloa:

Ho ile ha fumaneha hore re e ne e sa khone ho fana ka litšebeletso tse sa tšoaneng tabeng ea Nomad. Ha a ntse a ntša lijana tlas'a maemo a fapaneng, e ne e ka 'na ea sebetsa,' me Nomad o ile a e nka e le sejana se loketseng ho amohela sephethephethe. Sena se etsahetse pele kopo ka hare ho eona e bile le monyetla oa ho qala. Ka lebaka lena, tsamaiso e ile ea qala ho hlahisa liphoso tsa 500 ka nako e khutšoanyane, hobane sephethephethe se ile sa qala ho ea setshelo se neng se e-s'o lokele ho se amohela.

Re ile ra kopana le ba bang likokoana-hloko. Phoso ea bohlokoa ka ho fetisisa ke hore Nomad ha e sebetse sehlopha se seholo hantle haeba u na le litsamaiso le lijana tse ngata. Ha o batla ho ntša e 'ngoe ea li-server tse kenyellelitsoeng ho sehlopha sa Nomad bakeng sa tlhokomelo, ho na le monyetla o moholo oa hore sehlopha se ke ke sa ikutloa se le monate haholo' me se tla arohana. Ka mohlala, lijana tse ling li ka oa 'me tsa se ke tsa phahama - sena se tla u jella chelete e ngata hamorao haeba lisebelisoa tsohle tsa hau tsa tlhahiso li le sehlopheng se laoloang ke Nomad.

Kahoo re ile ra etsa qeto ea ho nahana hore na re lokela ho ea hokae. Ka nako eo, re ile ra hlokomela haholoanyane seo re neng re batla ho se finyella. E leng: re batla ho ts'epahala, mesebetsi e mengata ho feta eo Nomad a fanang ka eona, le sistimi e holileng, e tsitsitseng haholoanyane.

Tabeng ena, khetho ea rona e ile ea oela Kubernetes e le sethala se tsebahalang haholo sa ho qala lihlopha. Haholo-holo kaha boholo le palo ea lijana tsa rona li ne li lekana ka ho lekaneng. Bakeng sa merero e joalo, Kubernetes e ne e bonahala e le mokhoa o loketseng ka ho fetisisa oo re ka o shebang.

Phetoho ho Kubernetes

Ke tla u joetsa hanyane ka mehopolo ea mantlha ea Kubernetes le hore na e fapana joang le Nomad.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Pele ho tsohle, mohopolo oa mantlha ho Kubernetes ke mohopolo oa pod. Popo ke sehlopha sa setshelo se le seng kapa tse ngata tse dulang di matha mmoho. 'Me ba lula ba sebetsa joalo ka ha eka ke mochini o le mong feela. Li fumaneha ho tse ling ka IP 127.0.0.1 likoung tse fapaneng.

Ha re nke hore o na le ts'ebeliso ea PHP e nang le nginx le php-fpm - leano la khale. Mohlomong, o tla batla ho boloka lijana tsa nginx le php-fpm hammoho ka linako tsohle. Kubernetes e u lumella ho fihlela sena ka ho ba hlalosa e le pod e le 'ngoe e tloaelehileng. Sena ke sona seo re neng re sa khone ho se fumana le Nomad.

Khopolo ea bobeli ke ho tsamaisoa. 'Nete ke hore pod ka boeona ke ntho ea nakoana; e qala ebe e nyamela. Na u batla ho bolaea lijana tsa hau tse fetileng pele, ebe u qala liphetolelo tse ncha hang-hang, kapa u batla ho li ntša butle-butle? E hlalosa mokhoa oa ho tsamaisa li-pods tsa hau, ka bongata le mokhoa oa ho li nchafatsa.

Khopolo ea boraro ke tšebeletso ea. Ha e le hantle, ts'ebeletso ea hau ke sistimi ea hau, e amohelang sephethephethe se itseng ebe e e fetisetsa ho pod e le 'ngoe kapa tse ngata tse tsamaellanang le ts'ebeletso ea hau. Ke hore, e u lumella ho bolela hore sephethephethe sohle se tlang ho tšebeletso e joalo le e joalo e nang le lebitso le joalo e tlameha ho romeloa ho li-pods tsena tse khethehileng. 'Me ka nako e ts'oanang e fana ka ho leka-lekanya sephethephethe. Ka mantsoe a mang, o ka qala li-pods tse peli tsa kopo ea hau, 'me sephethephethe sohle se tlang se tla leka-lekanngoa pakeng tsa li-pods tse amanang le tšebeletso ena.

'Me khopolo ea bone ea motheo ke Ingress. Ena ke ts'ebeletso e sebetsang ho sehlopha sa Kubernetes. E sebetsa joalo ka sekala sa kantle sa mojaro se nkang likopo tsohle. U sebelisa Kubernetes API, Ingress e ka tseba hore na likopo tsena li lokela ho romeloa hokae. Ho feta moo, o etsa sena ka mokhoa o bonolo haholo. U ka re likopo tsohle ho moamoheli enoa le URL tse joalo li romelloa ts'ebeletso ena. 'Me likopo tsena tse tlang ho moamoheli enoa le ho URL e' ngoe li romelloa ts'ebeletso e 'ngoe.

Ntho e pholileng ka ho fetisisa ho ea ka pono ea motho ea hlahisang kopo ke hore u khona ho e laola ka bouena. Ka ho seta Ingress config, o ka romela sephethephethe sohle se tlang ho joalo le API ho arola lijana tse ngotsoeng, mohlala, ho Go. Empa sephethephethe sena, se tlang sebakeng se le seng, empa ho URL e fapaneng, se lokela ho romelloa ho lijana tse ngotsoeng PHP, moo ho nang le logic e ngata, empa ha li potlake haholo.

Haeba re bapisa likhopolo tsena kaofela le Nomad, re ka re likhopolo tse tharo tsa pele kaofela li kopane Tšebeletso. 'Me mohopolo oa ho qetela ha o eo ho Nomad ka boeona. Re sebelisitse balancer ea kantle joalo ka eona: e ka ba haproxy, nginx, nginx+, joalo-joalo. Tabeng ea cube, ha ho hlokahale hore u hlahise mohopolo ona o eketsehileng ka thoko. Leha ho le joalo, haeba u sheba Ingress ka hare, e ka ba nginx, haproxy, kapa traefik, empa e hahiloe ho Kubernetes.

Likhopolo tsohle tseo ke li hlalositseng, ha e le hantle, ke lisebelisoa tse teng ka har'a sehlopha sa Kubernetes. Ho li hlalosa ka cube, ho sebelisoa sebopeho sa yaml, se balang haholoanyane le se tsebahalang ho feta lifaele tsa HCL tabeng ea Nomad. Empa ka sebopeho ba hlalosa ntho e tšoanang tabeng ea, mohlala, pod. Ba re - ke batla ho kenya li-pods tse joalo le tse joalo moo, ka litšoantšo tse joalo le tse joalo, ka bongata le joalo.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Ho phaella moo, re ile ra hlokomela hore ha re batle ho theha mohloli o mong le o mong ka letsoho: ho tsamaisoa, litšebeletso, Ingress, joalo-joalo. Ho e-na le hoo, re ne re batla ho hlalosa e 'ngoe le e' ngoe ea litsamaiso tsa rona ho latela Kubernetes nakong ea ho romelloa, e le hore re se ke ra tlameha ho iketsetsa lisebelisoa tsohle tse hlokahalang ka tatellano e nepahetseng. Helm e ile ea khethoa e le tsamaiso e re lumellang ho etsa sena.

Likhopolo tsa mantlha ho Helm

Helm ke mookameli oa sephutheloana bakeng sa Kubernetes. E tšoana haholo le kamoo baokameli ba liphutheloana ka lipuo tsa mananeo ba sebetsang kateng. Li u lumella ho boloka ts'ebeletso e nang le, mohlala, deployment nginx, deployment php-fpm, config for Ingress, configmaps (sena ke mokhatlo o u lumellang ho beha env le liparamente tse ling bakeng sa tsamaiso ea hau) ka mokhoa oa joalo- tse bitsoang lichate. Ka nako e tšoanang Helm e matha holim'a Kubernetes. Ke hore, ona ha se mofuta o itseng oa sistimi e emeng ka thoko, empa ke ts'ebeletso e 'ngoe feela e qalileng ka har'a cube. U sebelisana le eona ka API ea eona ka taelo ea console. Bonolo le botle ba eona ke hore leha helm e robeha kapa u e tlosa sehlopheng, lits'ebeletso tsa hau li ke ke tsa nyamela, hobane helm e sebetsa feela ho qala sistimi. Kubernetes ka boeona e ikarabella bakeng sa ts'ebetso le boemo ba lits'ebeletso.

Re ile ra boela ra hlokomela seo templateization, eo pele re neng re qobelloa ho iketsetsa eona ka ho hlahisa jinja ho li-configs tsa rona, ke e 'ngoe ea likarolo tse ka sehloohong tsa helm. Litlhophiso tsohle tseo u li bōpileng bakeng sa litsamaiso tsa hau li bolokiloe ka helm ka mokhoa oa li-templates, tse batlang li tšoana le jinja, empa, ha e le hantle, li sebelisa templating ea puo ea Go, eo ho eona ho ngoliloeng helm, joaloka Kubernetes.

Helm e eketsa lintlha tse ling bakeng sa rona.

chate - ena ke tlhaloso ea tšebeletso ea hau. Ho batsamaisi ba liphutheloana tse ling e tla bitsoa sephutheloana, bongata kapa ntho e tšoanang. Mona e bitsoa chate.

Melao ea boitšoaro ke mefuta e fapaneng eo u batlang ho e sebelisa ho haha ​​​​litlhophiso tsa hau ho tsoa ho litempele.

lokolloe. Nako le nako ha ts'ebeletso e sebelisoang ho sebelisoa helm e fumana mofuta o eketsehileng oa tokollo. Helm o hopola hore na tlhophiso ea litšebeletso e ne e le eng tokollong e fetileng, tokollo pele ho moo, joalo-joalo. Ka hona, haeba u hloka ho khutlisa, tsamaisa feela taelo ea helm callback, u e supisa mofuta o fetileng oa tokollo. Leha tlhophiso e tsamaellanang sebakeng sa polokelo ea hau e le sieo nakong ea ho khutlisa, helm e ntse e tla hopola hore na e ne e le eng mme e tla khutlisetsa sistimi ea hau boemong boo e neng e le ho eona tokollong e fetileng.

Tabeng ea ha re sebelisa helm, li-configs tse tloaelehileng tsa Kubernetes le tsona li fetoha litempele tseo ho tsona ho ka khonehang ho sebelisa mefuta-futa, mesebetsi le ho sebelisa lipolelo tse nang le maemo. Ka tsela ena o ka bokella tlhophiso ea lits'ebeletso tsa hau ho latela tikoloho.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Ka ts'ebetso, re nkile qeto ea ho etsa lintho ka tsela e fapaneng hanyane le eo re neng re e etsa ka Nomad. Haeba ho Nomad ka bobeli li-deployment configs le n-variables tse neng li hlokahala ho kenya ts'ebeletso ea rona li ne li bolokiloe polokelong e le 'ngoe, mona re nkile qeto ea ho li arola ka libaka tse peli tse arohaneng. Sebaka sa polokelo ea "deploy" se boloka feela li-n-variables tse hlokahalang bakeng sa ho romelloa, 'me "helm" e boloka li-configs kapa lichate.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

See se re file eng?

Leha e le taba ea hore ha re boloke data efe kapa efe ea bohlokoa haholo lifaeleng tsa tlhophiso ka botsona. Ka mohlala, li-passwords ho databases. Li bolokiloe e le liphiri ho Kubernetes, empa leha ho le joalo, ho ntse ho e-na le lintho tse itseng moo tseo re sa batleng ho fa motho e mong le e mong monyetla oa ho li fumana. Ka hona, phihlello ea "deploy" repository e na le moeli, mme sebaka sa "helm" se na le tlhaloso ea ts'ebeletso. Ka lebaka lena, e ka fumanoa ka mokhoa o sireletsehileng ke batho ba bangata ba fapaneng.

Kaha ha re na tlhahiso feela, empa hape le libaka tse ling, ka lebaka la karohano ena re ka boela ra sebelisa lichate tsa rona tsa helm ho tsamaisa litšebeletso eseng feela ho hlahisa, empa hape, ka mohlala, tikolohong ea QA. Esita le ho li tsamaisa sebakeng sa heno ho sebelisoa Minikube - ena ke ntho ea ho tsamaisa Kubernetes sebakeng sa heno.

Ka har'a polokelo e 'ngoe le e 'ngoe, re ile ra siea karohano hore e be libuka tse arohaneng bakeng sa tšebeletso ka 'ngoe. Ke hore, ka har'a bukana e 'ngoe le e' ngoe ho na le litempele tse amanang le chate e tsamaellanang le ho hlalosa lisebelisoa tse lokelang ho sebelisoa ho tsamaisa sistimi ea rona. Re siile li-envs feela sebakeng sa polokelo ea "deploy". Tabeng ena, ha rea ​​ka ra sebelisa templating ho sebelisa jinja, hobane helm ka boeona e fana ka templating ka ntle ho lebokose - ena ke e 'ngoe ea mesebetsi ea eona e ka sehloohong.

Re siile sengoloa sa deployment - deploy.sh, se nolofatsang le ho etsa hore ho be bonolo ho qala ho romelloa ka helm. Kahoo, bakeng sa mang kapa mang ea batlang ho tsamaisa, sebopeho sa phepelo se shebahala se ts'oana hantle le se neng se etsahala ha se tsamaisa Nomad. E tšoanang deploy.sh, lebitso la tšebeletso ea hau, le moo u batlang ho e sebelisa. Sena se etsa hore helm e qale ka hare. Le eona, e bokella li-configs ho tsoa ho litempele, e kenya lifaele tsa boleng bo hlokahalang ho tsona, ebe e li beha, e li kenya ho Kubernetes.

fumanoeng ke

Ts'ebeletso ea Kubernetes e bonahala e rarahane ho feta Nomad.

Ho kenya lits'ebetso ho VM, Nomad le Kubernetes

Mona sephethephethe se tsoang se tla ho Ingress. Ena ke molaoli oa pele feela, ea nkang likopo tsohle ebe o li romella lits'ebeletso tse tsamaellanang le data ea kopo. E li khetha ho ipapisitse le litlhophiso tseo e leng karolo ea litlhaloso tsa ts'ebeliso ea hau ho helm le hore na ke bahlahisi ba ipehetseng bona. Tšebeletso e romela likopo ho li-pods tsa eona, ke hore, lijana tse khethehileng, ho leka-lekanya sephethephethe se kenang pakeng tsa lijana tsohle tsa tšebeletso ena. 'Me, ha e le hantle, ha rea ​​lokela ho lebala hore ha rea ​​​​lokela ho ea kae kapa kae ho tloha ts'ireletso boemong ba marang-rang. Ka hona, karohano e sebetsa sehlopheng sa Kubernetes, se ipapisitseng le ho tšoaea. Litšebeletso tsohle li na le li-tag tse itseng tseo litokelo tsa lits'ebeletso tsa phihlello ea lisebelisoa tse itseng tsa kantle / kahare kahare kapa kantle ho sehlopha li amanang.

Ha re ntse re etsa phetoho, re ile ra bona hore Kubernetes o na le bokhoni bohle ba Nomad, boo re neng re kile ra bo sebelisa, hape ba eketsa lintho tse ngata tse ncha. E ka atolosoa ka li-plugins, 'me ha e le hantle ka mefuta ea lisebelisoa tse tloaelehileng. Ke hore, u na le monyetla eseng feela ho sebelisa ntho e tlang le Kubernetes ka ntle ho lebokose, empa ho iketsetsa mohloli oa hau le tšebeletso e tla bala mohloli oa hau. Sena se u fa likhetho tse ling tsa ho holisa sistimi ea hau ntle le ho kenya Kubernetes hape ntle le ho hloka liphetoho.

Mohlala oa ts'ebeliso e joalo ke Prometheus, e tsamaeang ka har'a sehlopha sa rona sa Kubernetes. E le hore e qale ho bokella metrics ho tsoa tšebeletsong e itseng, re hloka ho eketsa mofuta o mong oa lisebelisoa, seo ho thoeng ke mohlokomeli oa tšebeletso, tlhaloso ea tšebeletso. Prometheus, ka lebaka la hore e khona ho bala mofuta oa sesebelisoa sa tloaelo ha e qala ho Kubernetes, e qala ho bokella metrics ho tsoa tsamaisong e ncha. Ho loketse haholo.

Thomello ea pele eo re e entseng ho Kubernetes e bile ka Hlakubele 2018. 'Me nakong ena ha ho mohla re kileng ra ba le mathata leha e le afe ka eona. E sebetsa ka mokhoa o tsitsitseng ntle le liphoso tse kholo. Ho phaella moo, re ka e atolosa le ho feta. Kajeno re na le bokhoni bo lekaneng boo e nang le bona, 'me re hlile re rata lebelo la nts'etsopele ea Kubernetes. Hajoale, lijana tse fetang 3000 li ho Kubernetes. Sehlopha se na le li-Node tse 'maloa. Ka nako e ts'oanang, e sebetsa, e tsitsitse ebile e khona ho laola haholo.

Source: www.habr.com

Eketsa ka tlhaloso