Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Ke fana ka maikutlo a hore u bale sengoloa sa tlaleho ea Alexander Sigachev Service Discovery tsamaisong e ajoang ho sebelisa Consul e le mohlala.

Ts'ebetso ea Ts'ebeletso e entsoe e le hore ka litšenyehelo tse fokolang o ka hokahanya sesebelisoa se secha tikolohong ea rona e teng. Re sebelisa Ts'ebetso ea Ts'ebeletso, re ka arola sets'oants'o sa docker kapa ts'ebeletso e fumanehang tikolohong eo e sebetsang ho eona.

Ke amohela bohle! Ke Alexander Sigachev, ke sebetsa Inventos. 'Me kajeno ke tla u tsebisa khopolo e kang Service Discovery. Ha re shebeng Tšebeletso ea Discovery re sebelisa Consul e le mohlala.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Ke mathata afe ao ho sibolloa ha tšebeletso ho a rarollang? Ts'ebetso ea Ts'ebeletso e entsoe e le hore ka litšenyehelo tse fokolang o ka hokahanya sesebelisoa se secha tikolohong ea rona e teng. Re sebelisa Ts'ebetso ea Ts'ebeletso, re ka arola sets'oants'o sa docker kapa ts'ebeletso e fumanehang tikolohong eo e sebetsang ho eona.

E shebahala joang? Mohlala oa khale ho web, ena ke ntlha e ka pele e amohelang kopo ea mosebelisi. Ebe e e tsamaisa ka morao. Mohlaleng ona, sena se leka-lekanya li-backend tse peli.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Mona re bona hore re qala mohlala oa boraro oa kopo. Ka hona, ha kopo e qala, e ingolisa le Service Discovery. Service Discovery e tsebisa load-balancer. Load-balancer e fetola tlhophiso ea eona ka bo eona mme backend e ncha e qala ts'ebetsong. Ka tsela ena, li-backend li ka eketsoa, ​​​​kapa, ka lehlakoreng le leng, li qheleloa ka thoko mosebetsing.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Ke eng hape eo u ka e etsang ka Service Discovery? Ts'ebetso ea Ts'ebeletso e ka boloka li-configs tsa nginx, litifikeiti, le lethathamo la li-server tse sebetsang tsa backend.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander SigachevService Discovery e boetse e u lumella ho bona mefokolo le ho bona mefokolo. Ke mekhoa efe e ka khonehang ea ho lemoha liphoso?

  • Sesebelisoa sena seo re se ntlafalitseng se tsebisa Service Discovery hore se ntse se sebetsa.
  • Service Discovery, bakeng sa eona, e khetha kopo ea ho fumaneha.
  • Kapa re sebelisa sengoloa sa motho oa boraro kapa sesebelisoa se hlahlobang kopo ea rona hore na se fumaneha hokae le ho tsebisa Service Discovery hore ntho e 'ngoe le e 'ngoe e lokile ebile e ka sebetsa, kapa, ka lehlakoreng le leng, hore ntho e 'ngoe le e' ngoe e mpe 'me mohlala ona oa kopo o hloka ho qheleloa ka thoko ho leka-lekanya.

E 'ngoe le e' ngoe ea merero e ka sebelisoa ho latela hore na re sebelisa software efe. Ka mohlala, re sa tsoa qala ho hlahisa morero o mocha, joale re ka fana ka morero habonolo ha kopo ea rona e tsebisa Ts'ebetso ea Ts'ebeletso. Kapa re ka hokela hore Service Discovery e ntse e hlahloba.

Haeba re futsitse kopo kapa re entsoe ke motho e mong, joale khetho ea boraro e loketse ha re ngola motho ea sebetsang, 'me sena sohle se tla mosebetsing oa rona ka bohona.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Ona ke mohlala o le mong. Load-balancer ka mokhoa oa nginx e qala hape. Ena ke sesebelisoa sa boikhethelo se fanoeng le Consul. Sena ke consul-template. Re hlalosa molao. Re re re sebelisa template (Golang Template Engine). Ha liketsahalo li etsahala, ha litsebiso tsa liphetoho li etsahetse, e tsosolosoa 'me taelo ea "reload" e romeloa ho Service Discovery. Mohlala o bonolo ke ha nginx e hlophisoa bocha ke ketsahalo ebe e qala hape.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Consul ke eng?

  • Pele ho tsohle, sena ke Ts'ebetso ea Ts'ebeletso.

  • E na le mokhoa oa ho hlahloba boteng - Ho hlahloba Bophelo bo Botle.

  • E boetse e na le KV Store.

  • 'Me e ipapisitse le bokhoni ba ho sebelisa Multi Datacenter.

See sohle se ka sebelisetsoa eng? Lebenkeleng la KV re ka boloka mohlala oa configs. Ho hlahloba bophelo bo botle re ka sheba litšebeletso tsa lehae mme ra tsebisa. Multi Datacenter e sebelisoa e le hore 'mapa oa litšebeletso o ka hahoa. Mohlala, Amazon e na le libaka tse 'maloa le sephethephethe sa litsela ka tsela e nepahetseng ka ho fetesisa e le hore ho se be le likopo tse sa hlokahaleng lipakeng tsa litsi tsa data, tse lefisoang ka thoko ho sephethephethe sa lehae mme, ka hona, li na le latency e nyane.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Ha re utloisise hanyenyane ka mantsoe a sebelisoang ho Consul.

  • Consul ke tšebeletso e ngotsoeng ho Go. E 'ngoe ea melemo ea lenaneo la Go ke 1 binary file eo u sa tsoa e jarolla. E tsebisitsoe kae kapa kae 'me ha u na lintho tse itšetlehileng ka tsona.
  • Ebe, ka ho sebelisa linotlolo, re ka qala ts'ebeletso ena ka mokhoa oa bareki kapa ka mokhoa oa seva.
  • Hape, tšobotsi ea "datacenter" e u lumella ho beha folakha eo setsi sa data se leng ho sona.
  • Consensus - e thehiloeng ho protocol ea raft. Haeba mang kapa mang a thahasella, o ka bala haholoanyane ka sena ho webosaete ea Consul. Ena ke protocol e u lumellang hore u tsebe moetapele le ho tseba hore na ke chelete efe e nkoang e nepahetse ebile e fumaneha.
  • Lesebo ke protocol e lumellang ho sebelisana lipakeng tsa li-node. Ho feta moo, tsamaiso ena e arotsoe. Ka har'a setsi se le seng sa data, li-node tsohle li buisana le baahelani ba tsona. 'Me, ka hona, tlhahisoleseding e mabapi le boemo ba hona joale e fetisetsoa ho e mong. Re ka re sena ke lesebo pakeng tsa baahisani.
  • LAN Gossip - phapanyetsano ea data ea sebakeng seo pakeng tsa baahelani ka har'a setsi se le seng sa data.
  • WAN Gossip - e sebelisoa ha re hloka ho hokahanya tlhahisoleseling lipakeng tsa litsi tse peli tsa data. Boitsebiso bo phalla pakeng tsa li-node tse tšoailoeng e le seva.
  • RPC - e u lumella ho etsa likopo ka moreki ho seva.

Tlhaloso ea RPC Ha re re Consul e sebetsa joalo ka moreki mochining o sebetsang kapa seva sa 'mele. Re ikopanya le eena sebakeng sa heno. Ebe moreki oa lehae o kopa tlhahisoleseling ho tsoa ho seva mme e hokahanngoa. Ho ipapisitsoe le litlhophiso, tlhahisoleseling e ka khutlisoa ho cache ea lehae, kapa e ka hokahanngoa le moetapele, le mong'a seva.

Merero ena e 'meli e na le melemo le mathata. Haeba re sebetsa le cache ea lehae, joale e potlakile. Haeba re sebetsa ka data e bolokiloeng ho seva, ho nka nako e telele, empa re fumana lintlha tse ling tse nepahetseng.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Haeba u bontša sena ka mokhoa o hlakileng, joale sena ke setšoantšo sa sebaka seo. Rea bona hore re na le masters a mararo a mathang. E 'ngoe e tšoailoe ka naleli e le moetapele. Mohlala ona, ho na le bareki ba bararo ba fapanyetsanang tlhahisoleseding sebakeng sa heno ka UDP / TCP. 'Me tlhahisoleseding pakeng tsa litsi tsa data e fetisetsoa pakeng tsa li-server. Mona bareki ba sebelisana le ba bang sebakeng sa heno.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Consul e fana ka API efe? Bakeng sa ho fumana tlhahisoleseling, Consul e na le mefuta e 'meli ea API.

Ena ke DNS API. Ka ho sa feleng, Consul e sebetsa boema-kepeng ba 8600. Re ka hlophisa proxying ea kopo le ho fana ka phihlello ka tharollo ea lehae, ka DNS ea lehae. Re ka botsa ka domain mme ra fumana tlhahisoleseling ea aterese ea IP.

HTTP API - kapa re ka kopa tlhahisoleseling sebakeng sa heno mabapi le ts'ebeletso e itseng ho port 8500 mme ra fumana karabo ea JSON, hore na IP ea seva e na le eng, ke moamoheli ofe, ke boema-kepe bofe bo ngolisitsoeng. Mme tlhahisoleseling e eketsehileng e ka fetisoa ka token.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

U hloka eng ho tsamaisa Consul?

Khethong ea pele, ka mokhoa oa nts'etsopele, re bonts'a folakha hore ena ke mokhoa oa nts'etsopele. Moemeli o qala joalo ka seva. 'Me e etsa mosebetsi oohle ka boikemelo mochining o le mong. E bonolo, e potlakile ebile ha ho na litlhophiso tse ling tse hlokahalang bakeng sa qalo ea pele.

Mokhoa oa bobeli ke ho qala tlhahiso. Mona ke moo ho qala ho ba thata hanyane. Haeba re se na phetolelo leha e le efe ea consul, joale re tlameha ho tlisa mochine oa pele ka har'a bootstrap, ke hore mochine ona, o tla nka boikarabelo ba moeta-pele. Re e phahamisa, ebe re phahamisa mohlala oa bobeli oa seva, re e fetisetsa tlhahisoleseding moo mong'a rona a leng teng. Re phahamisa ea boraro. Ka mor'a hore re be le mechine e meraro holimo, re qala hape ka mokhoa o tloaelehileng mochine oa pele ho tloha bootstrap e sebetsang. Lintlha li hokahantsoe 'me sehlopha sa pele se se se ntse se le teng.

Ho khothalletsoa ho tsamaisa maemo a mararo ho isa ho a supileng ka mokhoa oa seva. Sena se bakoa ke taba ea hore haeba palo ea li-server e ntse e hōla, joale nako ea ho hokahanya tlhahisoleseding pakeng tsa bona ea eketseha. Palo ea li-node e tlameha ho ba e sa tloaelehang ho netefatsa palo.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Litlhahlobo tsa Bophelo bo Botle li fanoa joang? Re ngola molao oa netefatso ka mokhoa oa Json bukeng ea tlhophiso ea Consul. Khetho ea pele ke ho fumaneha ha sebaka sa google.com mohlaleng ona. 'Me re re cheke ena e hloka ho etsoa ka linako tse ling tsa metsotsoana e 30. Ka tsela ena re hlahloba hore node ea rona e na le phihlello ho marang-rang a kantle.

Khetho ea bobeli ke ho itlhahloba. Re sebelisa curl e tloaelehileng ho letsetsa localhost boema-kepeng bo boletsoeng ka nako ea metsotsoana e 10.

Licheke tsena li akaretsoa 'me li romelloa ho Service Discovery. Ho ipapisitsoe le boteng, li-node tsena ha li kenyelletsoe kapa li hlaha lethathamong la mechini e teng le e sebetsang ka nepo.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Consul e boetse e fana ka sebopeho sa UI, se hlahisoang ka folakha e arohaneng mme se tla fumaneha mochining. Sena se o lumella ho sheba tlhahisoleseling hape o ka etsa liphetoho tse ling.

Mohlaleng ona, tab ya "Tshebeletso" e bulehile. Ho bontšoa hore litšebeletso tse tharo lia sebetsa, e 'ngoe ea tsona ke Consul. Palo ea licheke tse entsoeng. Hape ho na le litsi tse tharo tsa data tseo ho tsona mechini e leng teng.

Tšebeliso ea Ts'ebeletso litsamaisong tse ajoang ho sebelisoa mohlala oa Consul. Alexander Sigachev

Ona ke mohlala oa tab ea Nodes. Rea bona hore ba na le mabitso a kopaneng a kenyelletsang litsi tsa data. E boetse e bontša hore na ke litšebeletso life tse sebetsang, ke hore, rea bona hore ha ho li-tag tse behiloeng. Li-tag tsena tsa tlatsetso li ka fana ka tlhaiso-leseling eo mohlahlami a ka e sebelisang ho hlakisa liparamente tse ling.

U ka boela ua fetisetsa tlhahisoleseding ho Consul mabapi le boemo ba disks le mojaro o tloaelehileng.

Lipotso

Potso: Re na le setshelo sa docker, re ka se sebelisa joang le Consul?

Karabo: Ho na le mekhoa e mengata ea sejana sa docker. E 'ngoe ea tse atileng haholo ke ho sebelisa setshelo sa motho oa boraro se ikarabellang bakeng sa ngoliso. Ha e qala, sokete ea docker e fetisetsoa ho eona. Liketsahalo tsohle tsa ngoliso ea lijana le liketsahalo tsa ho tlosoa ha khatiso li tlalehiloe ho Consul.

Potso: Joale Consul ka boeona e qala setshelo sa docker?

Karabo: Che. Re tsamaisa sejana sa docker. 'Me ha re hlophisa re bontša - mamela sokete e joalo le e joalo. Sena se batla se tšoana le kamoo re sebetsang ka setifikeiti, ha re kenya tlhahisoleseling mabapi le hore na re na le eng le hore na re na le eng.

Potso: Hoa fumaneha hore ka har'a sets'oants'o sa Docker seo re lekang ho se hokela ho Discovery ea Ts'ebeletso ho lokela ho ba le mofuta o itseng oa kelello o ka romellang data ho Consul?

Karabo: Ha ho joalo. Ha e qala, re fetisa mefuta-futa ka ho feto-fetoha ha tikoloho. Ha re re lebitso la tšebeletso, boema-kepe ba tšebeletso. Rejistara e mamela tlhahisoleseling ena mme e e kenya ho Consul.

Potso: Ke na le potso e 'ngoe ka UI. Re sebelisitse UI, mohlala, ho seva sa tlhahiso. Ho thoe’ng ka tšireletso? Lintlha li bolokiloe hokae? Na hoa khoneha ho bokella data ka tsela e itseng?

Karabo: Ho UI ho na le data ho tsoa ho database le ho tsoa ho Service Discovery. Re ipehela li-password li-setting ka borona.

Potso: Na see se ka hatisoa Inthaneteng?

Karabo: Ka kamehla, Consul e qala ho localhost. Ho phatlalatsa Inthaneteng, o tla hloka ho kenya mofuta o itseng oa moemeli. Re ikarabella bakeng sa melao ea rona ea polokeho.

Potso: Na e fana ka lintlha tsa histori ka ntle ho lebokose? Hoa thahasellisa ho sheba lipalo-palo tsa Tlhahlobo ea Bophelo bo Botle. U ka boela ua hlahloba mathata haeba hangata seva se hlōleha.

Karabo: Ha ke na bonnete ba hore ho na le lintlha tsa licheke moo.

Potso: Boemo ba hajoale ha bo bohlokoa joalo ka matla.

Karabo: Bakeng sa tlhahlobo - ho joalo.

Potso: Na ho molemo ho se sebelise Service Discovery bakeng sa Consul docker?

Karabo: Ha ke khothaletse ho e sebelisa. Sepheo sa tlaleho ke ho hlahisa hore na mohopolo o joalo o teng. Ho latela nalane, e entse tsela, ka maikutlo a ka, ho ea ho mofuta oa 1. Hona joale ho se ho ntse ho e-na le tharollo e feletseng, mohlala, Kubernetes, e nang le tsena tsohle tlas'a hood. Joalo ka karolo ea Kubernetes Service Discovery e tlase ho Etcd. Empa ha ke e tsebe joalo ka ha ke tloaelane le Consul. Ka hona, ke ile ka etsa qeto ea ho etsa Service Discovery ke sebelisa Consul e le mohlala.

Potso: Na morero o nang le seva sa moetapele ha o liehe ho qala ha kopo ka kakaretso? Hona Consul e tseba joang moetapele e mocha haeba enoa a bua leshano?

Karabo: Ba na le protocol eohle e hlalositsoeng. Haeba u thahasella, u ka e bala.

Potso: Consul e sebetsa joalo ka seva e felletseng bakeng sa rona mme likopo tsohle li fofa ho eona?

Karabo: Ha e sebetse joalo ka seva e felletseng, empa e nka sebaka se itseng. Hangata e qetella ka tšebeletso.consul. 'Me joale re tsoela pele ka mokhoa o utloahalang. Ha re sebelise mabitso a marang-rang tlhahisong, empa ho e-na le lisebelisoa tsa ka hare, tse atisang ho patoa ka mor'a caching ea seva haeba re sebetsa re sebelisa DNS.

Potso: Ke hore, haeba re batla ho fumana database, ho sa tsotellehe boemo leha e le bofe re tla hula Consul ho fumana database ena pele, na?

Karabo: Ho joalo. Haeba re sebetsa re sebelisa DNS, joale e sebetsa ka mokhoa o ts'oanang le ntle le Consul ha re sebelisa mabitso a DNS. Ka tloaelo, lits'ebetso tsa sejoale-joale ha li hule lebitso la domain ho kopo e 'ngoe le e' ngoe, hobane re kentse khokahano, ntho e ngoe le e ngoe e ea sebetsa mme haufinyane ha re e sebelise. Haeba khokahano e robehile, e, re boetse re botsa hore na setsi sa rona se hokae ebe re ea ho sona.

moqoqo oa lihlahisoa tsa hashicorp - Puisano ea basebelisi ba Hashicorp: Consul, Nomad, Terraform

P.S. Mabapi le tlhahlobo ea bophelo bo botle. Consul, joalo ka Kubernetes, e sebelisa sistimi e ts'oanang ho lekola boemo ba ho pholoha ba ts'ebeletso e ipapisitseng le boemo ba khoutu.

200 OK for healthy
503 Service Unavailable for unhealthy

Lisebelisoa:
https://www.consul.io/docs/agent/checks.html
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
https://thoslin.github.io/microservice-health-check-in-kubernetes/

Source: www.habr.com

Eketsa ka tlhaloso