Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Ini ndinokurudzira kuti uverenge zvinyorwa zveAlexander Sigachev's report Service Discovery mumasisitimu akagoverwa uchishandisa Consul semuenzaniso.

Service Discovery yakagadzirwa kuitira kuti nemutengo wakaderera unogona kubatanidza chishandiso chitsva kune yedu iripo nharaunda. Tichishandisa Sevhisi Kuwanikwa, isu tinogona zvakanyanya kuparadzanisa ingave yeDocker mudziyo kana sevhisi sevhisi kubva kunharaunda yairi kushanda.

Ndinogamuchira munhu wese! Ndiri Alexander Sigachev, ndinoshanda kuInventos. Uye nhasi ini ndichakusuma iwe kune pfungwa yakadai seSevhisi Discovery. Ngatitarisei Service Discovery tichishandisa Consul semuenzaniso.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Ndeapi matambudziko anogadziriswa neSevhisi Discovery? Service Discovery yakagadzirwa kuitira kuti nemutengo wakaderera unogona kubatanidza chishandiso chitsva kune yedu iripo nharaunda. Tichishandisa Sevhisi Discovery, isu tinogona zvakanyanya kupatsanura chero docker mudziyo kana sevhisi sevhisi kubva kunharaunda yairi kushanda.

Chakaita sei? Mumuenzaniso wekare pawebhu, iyi ndiyo yekumberi inobvuma chikumbiro chemushandisi. Ipapo inoiendesa kubackend. Mumuenzaniso uyu, iyi mutoro-balancer inoyera maviri kumashure.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Pano tinoona kuti tiri kutangisa muenzaniso wechitatu wekushandisa. Saizvozvo, kana application yatanga, inonyoresa neSevhisi Discovery. Service Discovery inozivisa load-balancer. Load-balancer inoshandura gadziriso yayo otomatiki uye iyo nyowani yekumashure inoiswa mukushanda. Nenzira iyi, backends inogona kuwedzerwa, kana, zvakasiyana, isingabatanidzwe kubva kubasa.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Chii chimwe chakanakira kuita neSevhisi Discovery? Service Discovery inogona kuchengeta nginx configs, zvitupa, uye runyorwa rweanoshanda backend maseva.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander SigachevService Discovery zvakare inobvumidza iwe kuona kutadza uye kuona kutadza. Ndeapi zvirongwa zvinogoneka zvekuona kukundikana?

  • Ichi chishandiso chatakagadzira chinozivisa otomatiki Service Discovery kuti ichiri kushanda.
  • Service Discovery, kune chikamu chayo, inovhota chikumbiro chekuwanikwa.
  • Kana kuti isu tinoshandisa chechitatu-bato script kana application inotarisa application yedu kuti iripo uye inozivisa Service Discovery kuti zvese zvakanaka uye zvinogona kushanda, kana, ukuwo, kuti zvese zvakaipa uye ichi chiitiko chechishandiso chinoda kubviswa pakuyera.

Chimwe nechimwe chezvirongwa chinogona kushandiswa zvichienderana nekuti tinoshandisa software ipi. Semuenzaniso, isu tichangotanga kugadzira purojekiti nyowani, saka tinogona kupa chirongwa nyore kana application yedu ichizivisa Service Discovery. Kana kuti isu tinogona kubatanidza kuti Service Discovery iri kutarisa.

Kana isu takagara nhaka application kana kugadzirwa nemumwe munhu, saka sarudzo yechitatu yakakodzera kana isu tichinyora mubati, uye zvese izvi zvinouya kubasa redu otomatiki.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Uyu mumwe muenzaniso. Load-balancer nenzira ye nginx inotangwazve. Iyi isarudzo yekushandisa inopihwa neConsul. Iyi ndiyo consul-template. Isu tinotsanangura mutemo. Isu tinoti tiri kushandisa template (Golang Template Engine). Kana zviitiko zvikaitika, kana zviziviso zvekuti shanduko yaitika, inogadzirwa patsva uye iyo "reload" murairo inotumirwa kuSevhisi Discovery. Muenzaniso wakapfava ndewe apo nginx inogadziriswazve nechiitiko uye yotangwazve.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Chii chinonzi Consul?

  • Chekutanga pane zvese, iyi iSevhisi Discovery.

  • Iyo ine yekuwanikwa yekutarisa michina - Hutano Kuongorora.

  • Iyo ine zvakare KV Store.

  • Uye yakavakirwa pakugona kushandisa Multi Datacenter.

Zvose izvi zvingashandiswe chii? MuKV Store tinogona kuchengeta muenzaniso configs. Kuongorora Hutano tinogona kutarisa sevhisi yemuno tozivisa. Multi Datacenter inoshandiswa kuitira kuti mepu yebasa ivakwe. Semuenzaniso, Amazon ine nzvimbo dzinoverengeka uye nzira dzemigwagwa nenzira yakanyatsonaka kuitira kuti pasave nezvikumbiro zvisingakoshi pakati penzvimbo dzedata, dzinobhadhariswa zvakaparadzana netraffic yenzvimbo uye, nekudaro, ine latency shoma.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Ngatinzwisise zvishoma nezve mazwi anoshandiswa muConsul.

  • Consul ibasa rakanyorwa muGo. Imwe yemabhenefiti eiyo Go chirongwa ndeye 1 binary faira raunongodhawunirodha. Yakatangwa kubva chero kupi uye iwe hauna zvekuvimba nazvo.
  • Zvadaro, tichishandisa makiyi, tinogona kutanga sevhisi iyi ingave mutengi mode kana muserver mode.
  • Zvakare, iyo "datacenter" hunhu inobvumidza iwe kuseta mureza kune iyo data data sevha iyi ndeyayo.
  • Kubvumirana - zvichibva pane raft protocol. Kana paine munhu anofarira, unogona kuverenga zvakawanda nezve izvi pane Consul webhusaiti. Iyi iprotocol inobvumidza iwe kuti uone mutungamiri uye uone kuti ndeipi mari inoonekwa seinoshanda uye inowanikwa.
  • Makuhwa iprotocol inogonesa kudyidzana pakati pemanodhi. Uyezve, iyi system inoiswa decentralized. Mukati meimwe data data, node dzese dzinotaurirana nevavakidzani vavo. Uye, maererano naizvozvo, ruzivo pamusoro pemamiriro ezvinhu epanguva ino runoendeswa kune mumwe nemumwe. Tinogona kutaura kuti aya makuhwa pakati pevavakidzani.
  • LAN Gossip - kuchinjana kwemashoko emunharaunda pakati pevavakidzani mukati meiyo data center.
  • WAN Gossip - inoshandiswa patinoda kuwiriranisa ruzivo pakati penzvimbo mbiri dze data. Ruzivo rwunoyerera pakati pemanodhi akanyorwa sevhavha.
  • RPC - inobvumidza iwe kuita zvikumbiro kuburikidza nemutengi pane server.

Tsanangudzo yeRPC. Ngatitii Consul iri kushanda semutengi pamushini chaiwo kana sevha yemuviri. Tinobata naye munharaunda. Uye ipapo mutengi wemunharaunda anokumbira ruzivo kubva kune server uye inowiriraniswa. Zvichienderana nezvirongwa, ruzivo runogona kutorwa kubva kucheki yemunharaunda, kana kuti inogona kuwiriraniswa nemutungamiri, neserver master.

Zvirongwa zviviri izvi zvine zvazvakanakira nezvazvakaipira. Kana tikashanda necache yemunharaunda, saka inokurumidza. Kana tikashanda ne data yakachengetwa pavhavha, zvinotora nguva yakareba, asi tinowana ruzivo rwakakosha.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Kana iwe ukaratidza izvi zvakajeka, saka uyu ndiwo mufananidzo wesaiti. Tinoona kuti tine shasha nhatu dzinomhanya. Imwe inotarwa nenyeredzi semutungamiri. Mumuenzaniso uyu, kune vatengi vatatu vanochinjana ruzivo munharaunda nemumwe kuburikidza neUDP/TCP. Uye ruzivo pakati pe data data inotamiswa pakati pemaseva. Pano vatengi vanodyidzana munharaunda.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Ndeipi API inopihwa Consul? Kuti uwane ruzivo, Consul ine marudzi maviri eAPI.

Iyi ndiyo DNS API. Nekutadza, Consul inomhanya pachiteshi 8600. Tinogona kugadzirisa chikumbiro cheproxy uye kupa mukana kuburikidza nekugadzirisa kwenzvimbo, kuburikidza nemunharaunda DNS. Isu tinogona kubvunza nedomeini uye kugamuchira IP kero ruzivo mukupindura.

HTTP API - kana isu tinogona munharaunda kukumbira ruzivo nezve chaiyo sevhisi pachiteshi 8500 uye tigamuchire mhinduro yeJSON, iyo IP server inei, ndeipi host, chiteshi chipi chakanyoreswa. Uye rumwe ruzivo runogona kuendeswa kuburikidza nechiratidzo.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Chii chaunoda kumhanya Consul?

Mune yekutanga sarudzo, mune yekuvandudza modhi tinoratidza mureza kuti iyi ndiyo nzira yekuvandudza. Mumiririri anotanga sevhavha. Uye inoita basa rese yakazvimirira pamushini mumwe. Yakanaka, inokurumidza uye isingaite hapana mamwe marongero anodiwa kwekutanga kwekutanga.

Yechipiri modhi ndeyekutanga mukugadzira. Apa ndipo panotanga kunetsa zvishoma. Kana isu tisina chero shanduro ye consul, saka tinofanira kuunza muchina wekutanga mubootstrap, i.e. muchina uyu, unozotora mabasa emutungamiri. Isu tinosimudza, tobva tasimudza yechipiri muenzaniso weserver, tichiipfuudza ruzivo uko tenzi wedu aripo. Tinosimudza wechitatu. Mushure mekunge tave nemichina mitatu kumusoro, tinoitangazve mune yakajairwa modhi pamushini wekutanga kubva kune inomhanya bootstrap. Iyo data inowiriraniswa uye yekutanga cluster yatokwira.

Inokurudzirwa kumhanyisa matatu kusvika manomwe zviitiko mune server mode. Izvi zvinokonzerwa nekuti kana nhamba yemaseva ichikura, saka nguva yekubatanidza ruzivo pakati pavo inowedzera. Huwandu hwemanodhi hunofanirwa kuve husinganzwisisike kuti ive nechokwadi chehuwandu.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Macheki ehutano anopihwa sei? Isu tinonyora mutemo wekusimbisa muchimiro cheJson mune Consul yekumisikidza dhairekitori. Sarudzo yekutanga kuvepo kweiyo google.com domain mumuenzaniso uyu. Uye isu tinoti cheki iyi inoda kuitwa panguva dzemakumi matatu masekonzi. Nenzira iyi tinotarisa kuti node yedu inokwanisa kuwana kune yekunze network.

Chechipiri sarudzo ndeyekuzviongorora. Isu tinoshandisa yakajairwa curl kufonera localhost pane yakatarwa chiteshi panguva dzegumi masekonzi.

Macheki aya anopfupikiswa uye anotumirwa kuSevhisi Discovery. Zvichienderana nekuwanikwa, idzi node dzinogona kusabatanidzwa kana kuoneka mune rondedzero yeanowanikwa uye nemazvo anoshanda michina.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Consul inopawo UI interface, iyo inotangwa nemureza wakasiyana uye ichave iripo pamushini. Izvi zvinokubvumira kuti uone ruzivo uye iwe unogonawo kuita dzimwe shanduko.

Mumuenzaniso uyu, "Sevhisi" tab yakazaruka. Zvinotaridza kuti masevhisi matatu ari kushanda, mumwe wavo ndiConsul. Nhamba yekuongorora kwakaitwa. Uye kune matatu nzvimbo dzedata umo michina iripo.

Service Discovery mumasisitimu akagoverwa uchishandisa muenzaniso weConsul. Alexander Sigachev

Uyu muenzaniso weNodes tab. Isu tinoona kuti vane mazita emubatanidzwa anosanganisira nzvimbo dzedata. Inoratidzawo kuti ndeapi masevhisi ari kushanda, i.e. tinoona kuti hapana ma tag akaiswa. Aya ma tag ekuwedzera anogona kupa rumwe ruzivo rwunogona kushandiswa nemugadziri kuratidza mamwe ma parameter.

Iwe unogona zvakare kutumira ruzivo kuConsul nezve mamiriro emadhisiki uye avhareji mutoro.

Mibvunzo yako

Mubvunzo: Tine docker mudziyo, tingaishandisa sei neConsul?

Mhinduro: Kune akati wandei nzira dze docker mudziyo. Imwe yeakajairika ndeye kushandisa yechitatu-bato docker mudziyo une mutoro wekunyoresa. Pakutanga, docker socket inopfuudzwa kwairi. Zvese kunyoreswa kwemidziyo uye de-kuburitswa zviitiko zvakanyorwa muConsul.

Mubvunzo: Saka Consul pachayo inotanga iyo docker mudziyo?

Mhinduro: Kwete. Isu tiri kumhanyisa docker mudziyo. Uye pakugadzirisa isu tinoratidza - teerera kune yakadaro uye socket. Izvi zvakangofanana nemabatiro atinoita chitupa, patinoisa ruzivo rwekuti ndekupi uye chii chatinacho.

Mubvunzo: Zvinoitika kuti mukati meDocker mudziyo watiri kuyedza kubatanidza neSevhisi Discovery panofanira kunge paine imwe mhando yepfungwa inogona kutumira data kuConsul?

Mhinduro: Kwete. Kana yatanga, tinopfuudza zvinoshanduka kuburikidza nemamiriro ekunze. Ngatitii zita rebasa, chiteshi chebasa. Rejista inoteerera ruzivo urwu uye inoiisa muConsul.

Mubvunzo: Ndine mumwe mubvunzo nezve UI. Isu takatumira iyo UI, semuenzaniso, pane yekugadzira server. Zvakadini nokuchengeteka? Ko data yakachengetwa kupi? Zvinoita here neimwe nzira kuunganidza data?

Mhinduro: MuUI mune data kubva kudhatabhesi uye kubva Service Discovery. Isu tinoseta mapassword muzvirongwa isu pachedu.

Mubvunzo: Izvi zvinogona kubudiswa paInternet?

Mhinduro: By default, Consul inotanga pane localhost. Kuti ushambadze paInternet, iwe unozofanirwa kuisa imwe mhando yeproxy. Isu tine mutoro wemitemo yedu yekuchengetedza.

Mubvunzo: Inopa nhoroondo data kunze kwebhokisi? Zvinonakidza kutarisa nhamba dzeHealth Checks. Iwe unogona zvakare kuongorora matambudziko kana sevha inowanzotadza.

Mhinduro: Handina chokwadi kuti pane zvinyorwa zvecheki ipapo.

Mubvunzo: Mamiriro azvino haana kukosha zvakanyanya semafambiro.

Mhinduro: Yekuongorora - hongu.

Mubvunzo: Zviri nani kusashandisa Service Discovery yeConsul docker?

Mhinduro: Handingakurudziri kuishandisa. Chinangwa cheshumo ndechekuzivisa kuti pfungwa yakadaro iripo. Nhoroondo, yakaita nzira yayo, mumaonero angu, kune 1st version. Ikozvino kune mamwe akazara mhinduro, semuenzaniso, Kubernetes, iyo ine zvese izvi pasi pehodhi. Sechikamu cheKubernetes Service Discovery yakaderera kune Etcd. Asi ini handisi kujairana nazvo sezvandiri kuConsul. Naizvozvo, ndakafunga kuita Service Discovery ndichishandisa Consul semuenzaniso.

Mubvunzo: Ko chirongwa chine mutungamiriri server hachinonoke kutanga kwechikumbiro chakazara here? Uye Consul anoona sei mutungamiri mutsva kana uyu ari kunyepa?

Mhinduro: Vane protocol yose yakatsanangurwa. Kana uchifarira, unogona kuiverenga.

Mubvunzo: Consul inoita sevhavha yakazara kwatiri uye zvikumbiro zvese zvinobhururuka nazvo?

Mhinduro: Haiite sevhavha yakazara, asi inotora imwe nzvimbo. Kazhinji inopera nebasa.consul. Uye zvino tinoenderera mberi zvine musoro. Isu hatishandise mazita emazita mukugadzira, asi zviri mukati memukati, iyo inowanzovanzwa kuseri kwe server caching kana tikashanda tichishandisa DNS.

Mubvunzo: Ndiko kuti, kana tichida kuwana dhatabhesi, saka chero zvakadaro isu tichadhonza Consul kuti tiwane iyi dhatabhesi kutanga, handiti?

Mhinduro: Hongu. Kana tikashanda tichishandisa DNS, zvino inoshanda zvakafanana nepasina Consul patinoshandisa mazita eDNS. Kazhinji, zvikumbiro zvemazuva ano hazvidhonze zita rezita muchikumbiro chese, nekuti isu takaisa batanidza, zvese zvinoshanda uye munguva pfupi iri kutevera hatizvishandise. Kana kubatana kwakaputsika, saka hongu, tinobvunza zvakare kuti hwaro hwedu huri kupi uye toenda kwairi.

hashicorp chigadzirwa chat -Hashicorp mushandisi chat: Consul, Nomad, Terraform

P.S. Panyaya yekuongororwa utano. Consul, saKubernetes, anoshandisa iyo yakafanana sisitimu yekutarisa mamiriro ekupona kwesevhisi zvichienderana nekodhi mamiriro.

200 OK for healthy
503 Service Unavailable for unhealthy

Sources:
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

Voeg