{"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\/da\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Jeg vil gerne pr\u00e6sentere transskriptionen af Alexander Sigachevs rapport om Service Discovery i distribuerede systemer med eksempel fra Consul.<\/strong><\/p>\n<p><\/p>\n<p>Service Discovery er designet til at muligg\u00f8re tilslutning af nye applikationer til vores eksisterende milj\u00f8 med minimal indsats. Ved at bruge Service Discovery kan vi adskille enten en container i form af Docker eller en virtuel tjeneste fra det milj\u00f8, som den k\u00f8rer i. <\/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=\"Afspil 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>Jeg hilser alle! Jeg er Alexander Sigachev, jeg arbejder i virksomheden Inventos. I dag vil jeg introducere jer for begrebet Service Discovery. Vi vil se n\u00e6rmere p\u00e5 Service Discovery med fokus p\u00e5 Consul.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvilke problemer l\u00f8ser Service Discovery? Service Discovery er skabt for at forbinde nye applikationer til det eksisterende milj\u00f8 med minimale omkostninger. Ved at anvende Service Discovery kan vi i h\u00f8j grad adskille enten en container i form af Docker eller en virtuel tjeneste fra det milj\u00f8, der er i brug. <\/p>\n<p><\/p>\n<p>Hvordan ser det ud? I et klassisk web-eksempel er det frontend, der modtager brugerens anmodning. Derefter udf\u00f8rer den routingen til backend. I dette eksempel balancerer load-balanceren mellem to backends.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Her ser vi, at vi starter en tredje instans af applikationen. N\u00e5r applikationen starter, registrerer den sig i Service Discovery. Service Discovery informerer load-balanceren. Load-balanceren \u00e6ndrer automatisk sin konfiguration, og den nye backend tages i brug. P\u00e5 den m\u00e5de kan backends tilf\u00f8jes eller udelukkes fra driften.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvad er der mere praktisk ved hj\u00e6lp af Service Discovery? I Service Discovery kan der gemmes konfigurationer til nginx, certifikater og en liste over aktive backend-servere.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Service Discovery muligg\u00f8r ogs\u00e5 fejlopdagelse og registrering af nedbrud. Hvilke mulige ordninger findes der for fejlopdagelse?<\/p>\n<p><\/p>\n<ul>\n<li>Denne applikation, som vi har udviklet, informerer selv Service Discovery om, at den stadig er i drift. <\/li>\n<li>Service Discovery sp\u00f8rger applikationen om dens tilg\u00e6ngelighed.<\/li>\n<li>Eller der anvendes et eksternt script eller applikation, der kontrollerer vores applikation for tilg\u00e6ngelighed og informerer Service Discovery om, at alt er i orden og kan fungere, eller omvendt, at alt er d\u00e5rligt, og denne instans af applikationen skal udelukkes fra balanceringen.<\/li>\n<\/ul>\n<p><\/p>\n<p>Hver af ordningerne kan anvendes afh\u00e6ngigt af hvilket software, vi bruger. For eksempel, hvis vi lige er begyndt at udvikle et nyt projekt, kan vi uden problemer implementere en ordning, hvor vores applikation underretter Service Discovery. Alternativt kan vi tilslutte, at Service Discovery udf\u00f8rer kontrol.<\/p>\n<p><\/p>\n<p>Hvis applikationen derimod er overtaget fra nogen anden eller udviklet af en tredjepart, s\u00e5 passer den tredje mulighed, hvor vi skriver en behandler, og alt dette integreres automatisk i vores arbejde.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dette er et eksempel. Load-balancer i form af nginx genstartes. Det er et ekstra v\u00e6rkt\u00f8j, som leveres sammen med Consul. Dette er consul-template. Vi beskriver en regel. Vi siger, at vi bruger en skabelon (Golang skabelongenerator). Ved h\u00e6ndelser, n\u00e5r der sker \u00e6ndringer, regenereres den, og Service Discovery modtager ordren \"reload\". Det enkleste eksempel, hvor nginx omkonfigureres og genstartes ved en h\u00e6ndelse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvad er Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>F\u00f8rst og fremmest er det Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Det har en mekanisme til tilg\u00e6ngelighedskontrol \u2013 Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Det har ogs\u00e5 en KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>Og det har fundamentalt evnen til at anvende Multi Datacenter.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Hvad kan alt dette bruges til? I KV Store kan vi opbevare konfigurations eksempler. Vi kan udf\u00f8re Health Checking for at kontrollere lokale tjenester og underrette. Multi Datacenter bruges til at opbygge et kort over tjenester. For eksempel har Amazon flere zoner og routerer trafikken mest optimalt for at undg\u00e5 un\u00f8dvendige anmodninger mellem datacentre, som takseres separat fra lokal trafik, og som derfor har lavere latens. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lad os se n\u00e6rmere p\u00e5 de termer, der anvendes i Consul. <\/p>\n<p><\/p>\n<ul>\n<li>Consul er en service skrives p\u00e5 Go. En af fordelene ved programmer p\u00e5 Go er, at det kun er \u00e9n bin\u00e6r fil, som man bare downloader. Man kan starte det fra hvilken som helst placering, og der er ingen afh\u00e6ngigheder. <\/li>\n<li>Derudover kan vi ved hj\u00e6lp af n\u00f8gler starte denne service enten i klientmode eller i servermode. <\/li>\n<li>Tillige giver attributten \"datacenter\" mulighed for at s\u00e6tte et flag for hvilket datacenter denne server tilh\u00f8rer. <\/li>\n<li>Konsensus \u2013 er baseret p\u00e5 raft-protokollen. Hvis nogen er interesserede, kan man l\u00e6se n\u00e6rmere om dette p\u00e5 Consuls hjemmeside. Det er en protokol, der g\u00f8r det muligt at bestemme en leder og definere, hvilke data der skal betragtes som gyldige og tilg\u00e6ngelige.<\/li>\n<li>Gossip er en protokol, der muligg\u00f8r interaktion mellem noder. Desuden er dette system decentraliseret. Inden for et datacenter kommunikerer alle noder med deres naboer. Informationen om den aktuelle tilstand overf\u00f8res derfor mellem dem. Man kan sige, at det er rygter mellem naboerne. <\/li>\n<li>LAN Gossip \u2013 lokal datadeling mellem naboer inden for et datacenter. <\/li>\n<li>WAN Gossip \u2013 anvendes, n\u00e5r vi skal synkronisere information mellem to datacentre. Informationen sendes mellem noder, der er markeret som servere. <\/li>\n<li>RPC \u2013 muligg\u00f8r at udf\u00f8re anmodninger gennem klienten p\u00e5 serveren. <\/li>\n<\/ul>\n<p><\/p>\n<p>Beskrivelse af RPC. Antag, at Consul k\u00f8rer som klient p\u00e5 en virtuel maskine eller en fysisk server. Vi henvender os lokalt til den. Derefter anmoder den lokale klient om information fra serveren og synkroniserer sig. Informationen kan afh\u00e6ngigt af indstillingerne hentes fra den lokale cache eller kan synkroniseres med lederen, server-masteren. <\/p>\n<p><\/p>\n<p>Disse to ordninger har b\u00e5de fordele og ulemper. Hvis vi arbejder med den lokale cache, er det hurtigt. Hvis vi arbejder med data, der er gemt p\u00e5 serveren, tager det l\u00e6ngere tid, men vi f\u00e5r mere \u0430\u043a\u0442\u0443elle oplysninger.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvis vi skulle illustrere det grafisk, ser vi et billede af et website. Vi ser, at vi har tre mestre k\u00f8rende. En er markeret med en stjerne som leder. I dette eksempel ser vi tre klienter, der lokalt udveksler information via UDP\/TCP. Og informationen mellem datacentrene overf\u00f8res mellem serverne. Her interagerer klienterne lokalt med hinanden. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvilken API tilbyder Consul? For at f\u00e5 information er der to typer API'er hos Consul.<\/p>\n<p><\/p>\n<p>Dette er DNS API. Som standard k\u00f8rer Consul p\u00e5 port 8600. Vi kan konfigurere anmodningsproxy og sikre adgang gennem lokal opl\u00f8sning, via lokal DNS. Vi kan anmode om information via dom\u00e6net og f\u00e5 information om IP-adressen som svar.<\/p>\n<p><\/p>\n<p>HTTP API \u2013 vi kan lokalt anmode om information om en specifik tjeneste p\u00e5 port 8500 og f\u00e5 et JSON-svar, der viser hvilken IP serveren har, hvilken v\u00e6rt samt hvilken port der er registreret. Yderligere information kan ogs\u00e5 overf\u00f8res via token.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvad kr\u00e6ves der for at starte Consul?<\/p>\n<p><\/p>\n<p>I den f\u00f8rste variant angiver vi i udviklertilstand flaget, at det er udviklertilstand. Agenten starter som server. Og udf\u00f8rer allerede alle funktioner selv p\u00e5 \u00e9n maskine. Praktisk, hurtigt og n\u00e6sten ingen yderligere indstillinger kr\u00e6ves for f\u00f8rste opstart.<\/p>\n<p><\/p>\n<p>Anden tilstand er opstart i produktion. Her er opstarten en smule mere kompliceret. Hvis vi ikke har nogen version af konsollen, skal vi s\u00e6tte den f\u00f8rste maskine i bootstrap, det vil sige denne maskine, der p\u00e5tager sig lederens opgaver. Vi starter den, og derefter oph\u00e6ver vi en anden serverinstans, som vi giver information om, hvor vores master er. Den tredje starter vi. Efter at vi har startet tre maskiner, genstarter vi den f\u00f8rste maskine fra den k\u00f8rende bootstrap i normal tilstand. Data synkroniseres, og det indledende cluster er nu oppe. <\/p>\n<p><\/p>\n<p>Det anbefales at k\u00f8re fra tre til syv instanser i servertilstand. Dette skyldes, at hvis antallet af servere stiger, \u00f8ges tiden til synkronisering af information mellem dem. Antallet af noder skal v\u00e6re ulige for at sikre quorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hvordan sikres Health Checks? I konfigurationsmappen for Consul skriver vi i JSON et kontrolregel. Den f\u00f8rste variant er tilg\u00e6ngeligheden af domenet google.com i dette eksempel. Og vi angiver, at denne kontrol skal udf\u00f8res med et interval p\u00e5 30 sekunder. P\u00e5 denne m\u00e5de kontrollerer vi, at vores node har adgang til det ydre netv\u00e6rk.<\/p>\n<p><\/p>\n<p>Den anden mulighed er at kontrollere sig selv. Vi bruger almindelig curl til at kontakte localhost p\u00e5 den angivne port med et interval p\u00e5 10 sekunder. <\/p>\n<p><\/p>\n<p>Disse kontroller summeres op og sendes til Service Discovery. Baseret p\u00e5 tilg\u00e6ngeligheden bliver noderne enten ekskluderet eller inkluderet i listen over tilg\u00e6ngelige og korrekt fungerende maskiner. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Consul tilbyder ogs\u00e5 en UI-gr\u00e6nseflade, der startes med et separat flag og vil v\u00e6re tilg\u00e6ngelig p\u00e5 maskinen. Dette g\u00f8r det muligt at se information og desuden foretage nogle \u00e6ndringer. <\/p>\n<p><\/p>\n<p>I dette eksempel er fanen 'Service' \u00e5ben. Det vises, at der k\u00f8rer tre tjenester, hvoraf en er Consul. Antallet af udf\u00f8rte kontroller. Der er tre datacentre, hvor maskinerne befinder sig.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery i distribuerede systemer med eksemplet Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dette er et eksempel p\u00e5 fanen \u00abNodes\u00bb. Her ser vi, at de har sammensatte navne involverende datacentre. Her vises ogs\u00e5, hvilke tjenester der er aktive, dvs. vi ser, at tags ikke er angivet. I disse ekstra tags kan der angives oplysninger, som udvikleren kan bruge til at angive yderligere parametre. <\/p>\n<p><\/p>\n<p>Man kan ogs\u00e5 videregive oplysninger til Consul om diskens tilstand og den gennemsnitlige belastning.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Vi har en Docker-container, hvordan bruger vi den med Consul?<\/p>\n<p><\/p>\n<p>Svar: Der er flere tilgange til Docker-containeren. En af de mest almindelige er at bruge en tredjeparts Docker-container, der er ansvarlig for registreringen. N\u00e5r den startes, gives der adgang til Docker-socket. Alle begivenheder omkring registrering og de-publicering af containeren registreres i Consul.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: S\u00e5 Consul starter selv Docker-containeren?<\/p>\n<p><\/p>\n<p>Svar: Nej. Vi starter Docker-containeren. Og ved konfigurationen angiver vi - lyt p\u00e5 den p\u00e5g\u00e6ldende socket. Det er omtrent det samme som arbejdet med certifikatet, n\u00e5r vi passerer oplysninger om, hvor og hvad vi har. <\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: S\u00e5 inde i den Docker-container, som vi fors\u00f8ger at tilslutte til Service Discovery, skal der v\u00e6re en form for logik, der kan afgive data til Consul?<\/p>\n<p><\/p>\n<p>Svar: Ikke helt. N\u00e5r den starter, videregiver vi variabler gennem milj\u00f8et. Lad os sige, service name, service port. I registreringen lytter denne information og indl\u00e6ser det i Consul.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Jeg har ogs\u00e5 et sp\u00f8rgsm\u00e5l om UI. Vi har udrullet UI, lad os sige, p\u00e5 produktionsserveren. Hvad med sikkerheden? Hvor opbevares dataene? Kan man p\u00e5 en eller anden m\u00e5de akkumulere data?<\/p>\n<p><\/p>\n<p>Svar: I UI er det netop data fra databasen og Service Discovery. Koderne angiver vi selv i indstillingerne. <\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Kan det offentligg\u00f8res p\u00e5 internettet?<\/p>\n<p><\/p>\n<p>Svar: Som standard starter Consul p\u00e5 localhost. For at offentligg\u00f8re dette til internettet skal man have en form for proxy. Vi er ansvarlige for sikkerhedsreglerne selv.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Giver det historiske data ud af boksen? Det ville v\u00e6re interessant at se statistikken for Health Checks. Man kan diagnosticere problemer, hvis serveren ofte g\u00e5r ned.<\/p>\n<p><\/p>\n<p>Svar: Jeg er ikke sikker p\u00e5, at der er detaljer om tjekkene. <\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Det er ikke s\u00e5 vigtigt, hvad den nuv\u00e6rende tilstand er, men hvorvidt der er en dynamik.<\/p>\n<p><\/p>\n<p>Svar: Til analyse \u2013 ja.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Er Service Discovery for Docker bedre ikke at bruge Consul?<\/p>\n<p><\/p>\n<p>Svar: Jeg ville ikke anbefale at bruge det. Form\u00e5let med pr\u00e6sentationen er at introducere, hvad det er for et begreb. Historisk set har det gjort et spring, efter min mening, til version 1. Nu findes der allerede mere avancerede l\u00f8sninger, s\u00e5som Kubernetes, som har alt dette under motorhjelmen. I Kubernetes ligger Service Discovery under Etcd. Men jeg er ikke s\u00e5 fortrolig med det som med Consul. Derfor besluttede jeg at demonstrere Service Discovery med Consul som eksempel.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Bremser skemaet med lederen serveren starten af applikationen generelt? Og hvordan bestemmer Consul en ny leder, hvis den nuv\u00e6rende er nede?<\/p>\n<p><\/p>\n<p>Svar: De har beskrevet et helt protokol. Hvis det er interessant, kan man l\u00e6se om det.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Er Consul vores fuldgyldige server, og flyver alle foresp\u00f8rgsler gennem det?<\/p>\n<p><\/p>\n<p>Svar: Det fungerer ikke som en fuldgyldig server, men d\u00e6kker et bestemt omr\u00e5de. Det slutter som regel med service.consul. Og derefter f\u00f8lger vi logikken. Vi bruger ikke dom\u00e6nenavne i produktionen, men internt infrastruktur, der typisk skjules bag cache-serveren, n\u00e5r vi arbejder med DNS.<\/p>\n<p><\/p>\n<p>Sp\u00f8rgsm\u00e5l: Alts\u00e5, hvis vi vil tilg\u00e5 databasen, skal vi i hvert fald sp\u00f8rge Consul for f\u00f8rst at finde denne database, korrekt?<\/p>\n<p><\/p>\n<p>Svar: Ja. Hvis vi arbejder med DNS, fungerer det som uden Consul, n\u00e5r vi bruger DNS-navne. Normalt foretager moderne applikationer ikke et DNS-opslag for hver foresp\u00f8rgsel, fordi vi har etableret forbindelsen, alt fungerer, og i den n\u00e6rmeste fremtid bruger vi det n\u00e6sten ikke. Hvis forbindelsen brydes, s\u00e5 ja, vi sp\u00f8rger igen, hvor databasen ligger og g\u00e5r til den.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat om produkter fra Hashicorp.<\/a><\/noindex> \u2014 Chat for Hashicorp-brugere: Consul, Nomad, Terraform.<\/p>\n<p><\/p>\n<p>P.S. Om sundhedstjek. I Consul, ligesom i Kubernetes, bruges det samme system til at tjekke servicens livskvalitet baseret p\u00e5 statuskode.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK for sund\n503 Service Unavailable for usund<\/code><\/pre>\n<p><\/p>\n<p>Kilder:<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>Kilde: <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.3 - 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\/da\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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 distribuerede systemer med fokus p\u00e5 Consul. Alexander Sigachev | ProHoster","description":"Jeg foresl\u00e5r at tage et kig p\u00e5 referatet fra Alexander Sigachevs pr\u00e6sentation om Service Discovery i distribuerede systemer med fokus p\u00e5 Consul. Service Discovery er skabt for at minimere.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/56387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}