{"id":56387,"date":"2020-02-12T00:00:00","date_gmt":"2020-02-11T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev"},"modified":"2020-02-18T14:04:39","modified_gmt":"2020-02-18T11:04:39","slug":"service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Jag vill att du ska ta del av redog\u00f6relsen av Alexander Sigachevs f\u00f6redrag om Service Discovery i distribuerade system med Consul som exempel.<\/strong><\/p>\n<p><\/p>\n<p>Service Discovery \u00e4r utformat f\u00f6r att ansluta en ny applikation till v\u00e5r befintliga milj\u00f6 med minimi kostnader. Genom att anv\u00e4nda Service Discovery kan vi maximalt separera antingen en container i form av en Docker, eller en virtuell tj\u00e4nst fr\u00e5n den milj\u00f6 d\u00e4r den k\u00f6rs. <\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"IYWsZ8HFrCw\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/IYWsZ8HFrCw\/hqdefault.jpg\" alt=\"Spela video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Jag h\u00e4lsar alla! Jag heter Alexander Sigachev, arbetar p\u00e5 f\u00f6retaget Inventos. Idag kommer jag att introducera er f\u00f6r konceptet Service Discovery. Vi kommer att titta p\u00e5 Service Discovery med Consul som exempel.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vilka problem l\u00f6ser Service Discovery? Service Discovery \u00e4r utformat f\u00f6r att ansluta en ny applikation till v\u00e5r befintliga milj\u00f6 med minimi kostnader. Genom att anv\u00e4nda Service Discovery kan vi maximalt separera antingen en container i form av en Docker, eller en virtuell tj\u00e4nst fr\u00e5n den milj\u00f6 d\u00e4r den k\u00f6rs. <\/p>\n<p><\/p>\n<p>Hur ser det ut? Ett klassiskt exempel p\u00e5 webben \u2013 det \u00e4r frontend som tar emot anv\u00e4ndarens f\u00f6rfr\u00e5gan. Sedan utf\u00f6r det routering till backend. I detta exempel balanserar load-balancern mellan tv\u00e5 backend.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>H\u00e4r ser vi att vi startar en tredje instans av applikationen. N\u00e4r applikationen startar registrerar den sig i Service Discovery. Service Discovery informerar load-balancern. Load-balancern \u00e4ndrar sin konfiguration automatiskt och den nya backend kopplas in. P\u00e5 s\u00e5 s\u00e4tt kan backend l\u00e4ggas till eller, tv\u00e4rtom, tas bort fr\u00e5n drift.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vad mer \u00e4r praktiskt att g\u00f6ra med hj\u00e4lp av Service Discovery? I Service Discovery kan konfigurationer av Nginx, certifikat och en lista \u00f6ver aktiva backend-servrar lagras.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Service Discovery m\u00f6jligg\u00f6r ocks\u00e5 uppt\u00e4ckten av fel och avbrott. Vilka m\u00f6jliga scenarier finns det vid feluppt\u00e4ckten?<\/p>\n<p><\/p>\n<ul>\n<li>Den h\u00e4r applikationen som vi har utvecklat informerar sj\u00e4lv Service Discovery om att den fortfarande \u00e4r operativ. <\/li>\n<li>Service Discovery \u00e5 sin sida fr\u00e5gar applikationen om tillg\u00e4nglighet.<\/li>\n<li>Eller s\u00e5 anv\u00e4nds ett externt skript eller applikation som kontrollerar v\u00e5r applikation f\u00f6r tillg\u00e4nglighet och informerar Service Discovery att allt \u00e4r bra och att vi kan arbeta, eller vice versa, att n\u00e5got \u00e4r fel och den h\u00e4r instansen av applikationen m\u00e5ste tas bort fr\u00e5n balanseringen.<\/li>\n<\/ul>\n<p><\/p>\n<p>Varje schema kan till\u00e4mpas beroende p\u00e5 vilken programvara vi anv\u00e4nder. Till exempel, om vi just har b\u00f6rjat utveckla ett nytt projekt kan vi utan problem tillhandah\u00e5lla ett schema d\u00e4r v\u00e5r applikation notifierar Service Discovery. Eller s\u00e5 kan vi ansluta s\u00e5 att Service Discovery genomf\u00f6r kontroller.<\/p>\n<p><\/p>\n<p>Om applikationen visade sig vara en arvet fr\u00e5n n\u00e5gon annan eller utvecklad av en extern part, s\u00e5 passar den tredje varianten, d\u00e4r vi skriver en hanterare, och allt detta integreras automatiskt i v\u00e5rt arbete.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detta \u00e4r ett av exemplen. Load-balancer i form av nginx laddas om. Detta \u00e4r ett ytterligare verktyg som tillhandah\u00e5lls tillsammans med Consul. Det \u00e4r consul-template. Vi beskriver en regel. Vi s\u00e4ger att vi anv\u00e4nder en mall (Golang-mallverktyget). Vid h\u00e4ndelser, n\u00e4r notifieringar om \u00e4ndringar intr\u00e4ffar, regenereras den och Service Discovery skickar kommandot \"reload\". Ett enkelt exempel \u00e4r n\u00e4r nginx rekonfigureras och startas om vid en h\u00e4ndelse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vad \u00e4r Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>F\u00f6rst och fr\u00e4mst \u00e4r det Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Det har en mekanism f\u00f6r tillg\u00e4nglighetskontroll \u2013 Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Det har ocks\u00e5 en KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>Och dess grund f\u00f6ruts\u00e4tter m\u00f6jlighet att anv\u00e4nda Multi Datacenter.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Vad kan allt detta anv\u00e4ndas till? I KV Store kan vi lagra exempel p\u00e5 konfigurationer. Health Checking kan anv\u00e4ndas f\u00f6r att kontrollera lokala tj\u00e4nster och notifiera. Multi Datacenter anv\u00e4nds f\u00f6r att kunna bygga en karta \u00f6ver tj\u00e4nster. Till exempel har Amazon flera zoner och dirigerar trafiken p\u00e5 mest optimala s\u00e4tt, s\u00e5 att det inte finns on\u00f6diga f\u00f6rfr\u00e5gningar mellan datacentren, vilka debiteras separat fr\u00e5n lokal trafik och d\u00e4rmed har l\u00e4gre latens. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>L\u00e5t oss ta en liten titt p\u00e5 de termer som anv\u00e4nds i Consul. <\/p>\n<p><\/p>\n<ul>\n<li>Consul \u00e4r en tj\u00e4nst skriven i Go. En av f\u00f6rdelarna med programmet skrivet i Go \u00e4r att det \u00e4r en bin\u00e4rfil som du helt enkelt laddar ner. Du startar den fr\u00e5n valfri plats och har inga beroenden. <\/li>\n<li>Sedan kan vi med hj\u00e4lp av nycklar starta den h\u00e4r tj\u00e4nsten antingen i klientl\u00e4ge eller i serverl\u00e4ge. <\/li>\n<li>Attributet \"datacenter\" l\u00e5ter oss s\u00e4tta en flagga f\u00f6r vilket datacenter denna server tillh\u00f6r. <\/li>\n<li>Consensus baseras p\u00e5 raft-protokollet. Om n\u00e5gon \u00e4r intresserad kan man l\u00e4sa mer om det p\u00e5 Consuls webbplats. Det \u00e4r ett protokoll som g\u00f6r det m\u00f6jligt att best\u00e4mma ledaren och avg\u00f6ra vilka data som ska beaktas som giltiga och tillg\u00e4ngliga.<\/li>\n<li>Gossip \u2013 en protokoll som m\u00f6jligg\u00f6r interaktion mellan noder. Detta system \u00e4r decentraliserat. Inom ett datacenter kommunicerar alla noder med sina grannar. Och d\u00e4rmed \u00f6verf\u00f6rs information om aktuellt tillst\u00e5nd mellan dem. Man kan s\u00e4ga att det h\u00e4r \u00e4r skvaller mellan grannarna. <\/li>\n<li>LAN Gossip \u2013 lokal datadelning mellan grannar inom ett datacenter. <\/li>\n<li>WAN Gossip \u2013 anv\u00e4nds n\u00e4r vi beh\u00f6ver synkronisera information mellan tv\u00e5 datacenter. Informationen \u00f6verf\u00f6rs mellan noder som markeras som servrar. <\/li>\n<li>RPC \u2013 m\u00f6jligg\u00f6r att utf\u00f6ra f\u00f6rfr\u00e5gningar via en klient p\u00e5 servern. <\/li>\n<\/ul>\n<p><\/p>\n<p>Beskrivning av RPC. Anta att Consul k\u00f6rs som en klient p\u00e5 en virtuell eller fysisk server. Vi kommunicerar lokalt med den. Sedan beg\u00e4r den lokala klienten information fr\u00e5n servern och synkroniseras. Beroende p\u00e5 inst\u00e4llningarna kan informationen ges fr\u00e5n den lokala cachen eller synkroniseras med ledaren, servermaster. <\/p>\n<p><\/p>\n<p>Dessa tv\u00e5 scheman har b\u00e5de f\u00f6rdelar och nackdelar. Om vi arbetar med lokal cache, \u00e4r det snabbt. Om vi arbetar med data som lagras p\u00e5 servern, tar det l\u00e4ngre tid, men vi f\u00e5r mer aktuell information.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Om vi skulle illustrera detta grafiskt, skulle det se ut som en webbplatsbild. Vi ser att tre masters k\u00f6rs. En markerad med en stj\u00e4rna som ledare. I det h\u00e4r exemplet finns tre klienter som utbyter information lokalt via UDP\/TCP. Och information mellan datacentren \u00f6verf\u00f6rs mellan servrar. H\u00e4r interagerar klienterna lokalt med varandra. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vilken API tillhandah\u00e5ller Consul? F\u00f6r att f\u00e5 information finns det tv\u00e5 typer av API i Consul.<\/p>\n<p><\/p>\n<p>Detta \u00e4r DNS API. Som standard k\u00f6rs Consul p\u00e5 port 8600. Vi kan konfigurera en proxyfr\u00e5ga och s\u00e4kerst\u00e4lla tillg\u00e5ng genom lokal uppl\u00f6sning, via lokal DNS. Vi kan g\u00f6ra ett dom\u00e4nanrop och f\u00e5 information om IP-adressen som svar.<\/p>\n<p><\/p>\n<p>HTTP API \u2013 antingen kan vi p\u00e5 8500-porten lokalt beg\u00e4ra information om en specifik tj\u00e4nst och f\u00e5 ett JSON-svar som visar vilken IP som servern har, vilken v\u00e4rd, vilken port som \u00e4r registrerad. Ytterligare information kan ocks\u00e5 \u00f6verf\u00f6ras via token.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vad beh\u00f6vs f\u00f6r att starta Consul?<\/p>\n<p><\/p>\n<p>I den f\u00f6rsta versionen anger vi i utvecklarl\u00e4ge en flagga som visar att detta \u00e4r utvecklarl\u00e4ge. Agenten startar som en server och utf\u00f6r hela funktionen sj\u00e4lvst\u00e4ndigt p\u00e5 en och samma maskin. Bekv\u00e4mt, snabbt och det kr\u00e4vs praktiskt taget inga ytterligare inst\u00e4llningar f\u00f6r f\u00f6rsta start.<\/p>\n<p><\/p>\n<p>Det andra l\u00e4get \u00e4r produktionsstart. H\u00e4r blir lanseringen n\u00e5got mer komplicerad. Om vi inte har n\u00e5gon version av konsolen m\u00e5ste vi starta det f\u00f6rsta systemet i bootstrap-berget, d.v.s. denna maskin kommer att ta ansvar som ledare. Vi startar den, och sedan startar vi den andra serverinstansen, och \u00f6verf\u00f6r informationen om var v\u00e5r huvudserver ligger. Den tredje startas. Efter att tre maskiner har blivit aktiverade, startar vi den f\u00f6rsta maskinen fr\u00e5n det p\u00e5g\u00e5ende bootstrapet i normalt l\u00e4ge. Data synkroniseras, och den inledande klustret \u00e4r redan aktivt. <\/p>\n<p><\/p>\n<p>Det rekommenderas att starta mellan tre och sju instanser i serverl\u00e4ge. Detta beror p\u00e5 att om antalet servrar \u00f6kar, \u00f6kar tiden f\u00f6r informationssynkronisering mellan dem. Antalet noder b\u00f6r vara oj\u00e4mnt f\u00f6r att s\u00e4kerst\u00e4lla kvorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hur s\u00e4kerst\u00e4lls Health Checks? I konfigurationskatalogen f\u00f6r Consul skriver vi en kontrollregel i JSON-format. F\u00f6rsta alternativet \u00e4r tillg\u00e4ngligheten av, i detta exempel, domen google.com. Och vi anger att denna kontroll ska g\u00f6ras var 30:e sekund. P\u00e5 s\u00e5 s\u00e4tt kontrollerar vi att v\u00e5r nod har tillg\u00e5ng till det externa n\u00e4tverket.<\/p>\n<p><\/p>\n<p>Det andra alternativet \u00e4r sj\u00e4lvkontroll. Vi skickar en vanlig curl-anrop till localhost p\u00e5 den angivna porten med ett intervall p\u00e5 10 sekunder. <\/p>\n<p><\/p>\n<p>Dessa kontroller summeras och g\u00e5r till Service Discovery. Baserat p\u00e5 tillg\u00e4ngligheten antingen utesluts noderna eller l\u00e4ggs till i listan \u00f6ver tillg\u00e4ngliga och korrekt fungerande maskiner. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Consul tillhandah\u00e5ller ocks\u00e5 ett anv\u00e4ndargr\u00e4nssnitt som startas med en separat flagga och som kommer att finnas tillg\u00e4ngligt p\u00e5 maskinen. Detta g\u00f6r att man kan visa information och ocks\u00e5 g\u00f6ra vissa \u00e4ndringar. <\/p>\n<p><\/p>\n<p>I detta exempel har fliken \"Tj\u00e4nst\" \u00f6ppnats. Det visas att tre tj\u00e4nster k\u00f6rs, varav en \u00e4r Consul. Antalet verifieringar som har utf\u00f6rts. Och det finns tre datacenter d\u00e4r maskinerna befinner sig.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerade system med exempel fr\u00e5n Consul. Alexander Sigajev.\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detta \u00e4r ett exempel p\u00e5 fliken \u00abNodes\u00bb. Vi ser att de har sammansatta namn med data-center involverade. H\u00e4r visas ocks\u00e5 vilka tj\u00e4nster som \u00e4r aktiverade, det vill s\u00e4ga vi ser att taggarna inte \u00e4r angivna. I dessa extra taggar kan man ange viss information som utvecklaren kan anv\u00e4nda f\u00f6r att ange ytterligare parametrar. <\/p>\n<p><\/p>\n<p>Man kan ocks\u00e5 skicka information till Consul om diskarnas status, om den genomsnittliga belastningen.<\/p>\n<p><\/p>\n<p>Fr\u00e5gor<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: Vi har en docker-container, hur anv\u00e4nder man den med Consul?<\/p>\n<p><\/p>\n<p>Svar: Det finns flera metoder f\u00f6r docker-containern. En av de vanligaste \u00e4r att anv\u00e4nda en extern docker-container ansvarig f\u00f6r registreringen. Vid start \u00f6verf\u00f6rs dockersocket. Alla h\u00e4ndelser kring registrering och avpublisering av containern registreras i Consul.<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: Det vill s\u00e4ga, startar Consul docker-containern sj\u00e4lv?<\/p>\n<p><\/p>\n<p>Svar: Nej. Vi startar docker-containern. Och vid konfiguration anger vi \u2013 lyssna p\u00e5 den h\u00e4r soketen. Det fungerar ungef\u00e4r p\u00e5 samma s\u00e4tt som med certifikatet, n\u00e4r vi \u00f6verf\u00f6r information om var och vad som finns. <\/p>\n<p><\/p>\n<p>Fr\u00e5ga: S\u00e5 inuti docker-containern som vi f\u00f6rs\u00f6ker koppla till Service Discovery m\u00e5ste det finnas n\u00e5gon logik som kan skicka data till Consul?<\/p>\n<p><\/p>\n<p>Svar: Inte riktigt. N\u00e4r den startar skickar vi genom milj\u00f6variabler. Till exempel, servicens namn, serviceport. I registret lyssnar den p\u00e5 denna information och registrerar den i Consul.<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: Jag har \u00e4nnu en fr\u00e5ga om UI. Vi har distribuerat UI, s\u00e4g, p\u00e5 produktionsservern. Vad h\u00e4nder med s\u00e4kerheten? Var lagras data? Kan man p\u00e5 n\u00e5got s\u00e4tt samla data?<\/p>\n<p><\/p>\n<p>Svar: I UI kommer faktiskt datan fr\u00e5n databasen och fr\u00e5n Service Discovery. L\u00f6senord anges manuellt i inst\u00e4llningarna. <\/p>\n<p><\/p>\n<p>Fr\u00e5ga: Kan detta publiceras p\u00e5 internet?<\/p>\n<p><\/p>\n<p>Svar: Som standard startar Consul p\u00e5 localhost. F\u00f6r att publicera detta p\u00e5 internet m\u00e5ste man installera en proxy. Vi ansvarar sj\u00e4lva f\u00f6r s\u00e4kerhetsregler.<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: Ger den historiska data direkt ur l\u00e5dan? Det skulle vara intressant att se statistik om Health Checks. Man kan ju diagnostisera problem om servern ofta g\u00e5r ner.<\/p>\n<p><\/p>\n<p>Svar: Jag \u00e4r inte s\u00e4ker p\u00e5 att det finns detaljer om kontrollerna d\u00e4r. <\/p>\n<p><\/p>\n<p>Fr\u00e5ga: Inte s\u00e5 mycket det aktuella tillst\u00e5ndet, utan mer dynamiken \u00e4r viktig.<\/p>\n<p><\/p>\n<p>Svar: F\u00f6r analys \u2013 ja.<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: B\u00e4ttre att inte anv\u00e4nda Service Discovery f\u00f6r docker med Consul?<\/p>\n<p><\/p>\n<p>Svar: Jag skulle inte rekommendera att anv\u00e4nda det. Syftet med presentationen \u00e4r att introducera vad detta begrepp inneb\u00e4r. Historiskt sett har det utvecklats till, enligt min mening, version 1. Nu finns det mer fullfj\u00e4drade l\u00f6sningar, som Kubernetes, som har allt detta under huven. Inom Kubernetes Service Discovery \u00e4r Etcd underl\u00e4gsen. Men jag k\u00e4nner inte till det s\u00e5 v\u00e4l som jag g\u00f6r med Consul. D\u00e4rf\u00f6r best\u00e4mde jag mig f\u00f6r att demonstrera Service Discovery med hj\u00e4lp av Consul.<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: F\u00f6rdr\u00f6jer schemat med ledarservrar applikationens start \u00f6verlag? Och hur identifierar Consul en ny ledare om den nuvarande ligger nere?<\/p>\n<p><\/p>\n<p>Svar: De har beskrivit en hel protokoll. Om du \u00e4r intresserad kan du l\u00e4sa om det.<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: Aggerar Consul som en fullst\u00e4ndig server och g\u00e5r alla f\u00f6rfr\u00e5gningar genom den?<\/p>\n<p><\/p>\n<p>Svar: Den fungerar inte som en fullst\u00e4ndig server utan tar en viss zon. Den slutar vanligtvis med service.consul. Och s\u00e5 f\u00f6ljer vi logiken. Vi anv\u00e4nder inte dom\u00e4nnamn i produktion, utan specifikt intern infrastruktur, som oftast d\u00f6ljs bakom cachelagring av servern, om vi arbetar med DNS.<\/p>\n<p><\/p>\n<p>Fr\u00e5ga: S\u00e5, om vi vill komma \u00e5t databasen, kommer vi p\u00e5 ett eller annat s\u00e4tt att beh\u00f6va konsultera Consul f\u00f6r att f\u00f6rst hitta den databasen, r\u00e4tt?<\/p>\n<p><\/p>\n<p>Svar: Ja. Om vi arbetar med DNS fungerar det som utan Consul n\u00e4r vi anv\u00e4nder DNS-namn. Vanligtvis g\u00f6r inte moderna applikationer en DNS-f\u00f6rfr\u00e5gan f\u00f6r varje beg\u00e4ran, eftersom vi har uppr\u00e4ttat en anslutning och allt fungerar. Under en tid anv\u00e4nder vi praktiskt taget inte det. Om anslutningen bryts, ja, d\u00e5 fr\u00e5gar vi igen var v\u00e5r databas \u00e4r och g\u00e5r dit.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat om Hashicorp-produkter<\/a><\/noindex> \u2014 Anv\u00e4ndarchatt f\u00f6r Hashicorp: Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. Ang\u00e5ende h\u00e4lsokontroller. I Consul som i Kubernetes anv\u00e4nds samma system f\u00f6r att kontrollera tj\u00e4nsters h\u00e4lsostatus baserat p\u00e5 statuskoden.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK f\u00f6r h\u00e4lsosam\n503 Tj\u00e4nst otillg\u00e4nglig f\u00f6r oh\u00e4lsosam<\/code><\/pre>\n<p><\/p>\n<p>K\u00e4llor:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.consul.io\/docs\/agent\/checks.html\">https:\/\/www.consul.io\/docs\/agent\/checks.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/\">https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/\">https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/<\/a><\/noindex><\/p>\n<p>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/487706\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u0448\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Service Discovery, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u0432\u0438\u0434\u0435 \u0434\u043e\u043a\u0435\u0440\u0430, \u043b\u0438\u0431\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0442 \u0442\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-56387","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-11T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:04:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Service Discovery i distribuerade system med fokus p\u00e5 Consul. Alexander Sigachev | ProHoster","description":"Jag f\u00f6resl\u00e5r att du l\u00e4ser rapporten av Alexander Sigachev om Service Discovery i distribuerade system med fokus p\u00e5 Consul. Service Discovery skapades f\u00f6r att med minimal.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\u0432 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-11T21:00:00+00:00","article:modified_time":"2020-02-18T11:04:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"56387","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:25:40","updated":"2022-10-01 05:49:52","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/56387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}