{"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\/et\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Tutvustan teile Aleksandr Sigat\u0161evi ettekannet teemal Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet.<\/strong><\/p>\n<p><\/p>\n<p>Teenuste avastamine on loodud selleks, et uue rakenduse liitmine meie olemasoleva keskkonnaga oleks v\u00f5imalikult madalate kuludega. Kasutades Teenuste avastamist, saame maksimaalselt eraldada kas konteineri nagu Docker v\u00f5i virtuaalteenuse sellest keskkonnast, kus see on k\u00e4ivitatud. <\/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=\"M\u00e4ngi videot\" 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>Tere k\u00f5igile! Mina olen Aleksandr Sigat\u0161ev, t\u00f6\u00f6tan ettev\u00f5ttes Inventos. T\u00e4na tutvustan teile sellist m\u00f5istet nagu Teenuste avastamine. Uurime Teenuste avastamist Consuli n\u00e4itel.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Milliseid probleeme lahendab Teenuste avastamine? Teenuste avastamine on loodud selleks, et uue rakenduse liitmine meie olemasoleva keskkonnaga oleks v\u00f5imalikult madalate kuludega. Kasutades Teenuste avastamist, saame maksimaalselt eraldada kas konteineri nagu Docker v\u00f5i virtuaalteenuse sellest keskkonnast, kus see on k\u00e4ivitatud. <\/p>\n<p><\/p>\n<p>Kuidas see v\u00e4lja n\u00e4eb? Klassikalise n\u00e4itena veebist \u2013 see on frontend, mis v\u00f5tab kasutaja p\u00e4ringu vastu. Edasi suunatakse see backend'i. Antud n\u00e4itel tasakaalustab load-balancer kahte backend'i.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Siin n\u00e4eme, et k\u00e4ivitame rakenduse kolmanda koopia. Kui rakendus k\u00e4ivitatakse, registreerib see end Teenuste avastamises. Teenuste avastamine teavitab load-balancerit. Load-balancer muudab oma konfiguratsiooni automaatselt ja uus backend rakendub. Nii saab backend'ide lisamine v\u00f5i vastupidi, nende t\u00f6\u00f6lt k\u00f5rvaldamine toimuda.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mida veel on mugav teha Teenuste avastamise abil? Teenuste avastamisest v\u00f5ivad leida konfiguratsioonid nginx, sertifikaadid ja aktiivsete backend-serveerijate loetelu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Samuti v\u00f5imaldab Teenuste avastamine avastada vigu ja talitlush\u00e4ireid. Millised skeemid on v\u00f5imalikud talitlush\u00e4irete avastamisel?<\/p>\n<p><\/p>\n<ul>\n<li>See rakendus, mille me v\u00e4lja t\u00f6\u00f6tasime, teavitab Teenuste avastamist, et see on ikka veel t\u00f6\u00f6korras. <\/li>\n<li>Teenuste avastamine k\u00fcsib rakenduse juurest k\u00e4ttesaadavuse kohta.<\/li>\n<li>V\u00f5i kasutatakse kolmanda osapoole skripti v\u00f5i rakendust, mis kontrollib meie rakenduse k\u00e4ttesaadavust ja teavitab Teenuste avastamist, et k\u00f5ik on korras ja v\u00f5ib t\u00f6\u00f6tada, v\u00f5i vastupidi, et k\u00f5ik on halvasti ja tuleb see rakenduse koopia tasakaalustamisest k\u00f5rvaldata.<\/li>\n<\/ul>\n<p><\/p>\n<p>Iga skeem v\u00f5ib rakenduda s\u00f5ltuvalt sellest, millist tarkvara me kasutame. N\u00e4iteks, kui me just alustasime uue projekti arendamist, saame probleemideta tagada skeemi, kus meie rakendus teavitab Service Discovery't. V\u00f5i v\u00f5ime \u00fchendada, et Service Discovery viib l\u00e4bi kontrolli.<\/p>\n<p><\/p>\n<p>Kui aga rakendus on meile p\u00e4randatud v\u00f5i v\u00e4lise arendaja loodud, sobib siin kolmas variant, kus me kirjutame t\u00f6\u00f6tleja, ja see k\u00f5ike integreerub meie t\u00f6\u00f6ga automaatselt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See on \u00fcks n\u00e4ide. Nginx'i kujul olev load-balancer taask\u00e4ivitub. See on lisat\u00f6\u00f6riist, mis on saadaval koos Consul'iga. See on consul-template. Me m\u00e4\u00e4ratleme reegli. R\u00e4\u00e4gime, et kasutame \u0448\u0430\u0431\u043b\u043e\u043d\u0430 (Golangi templatiserija). Toimingute korral, teavitamisel, et on toimunud muudatusi, ta genereeritakse uuesti ja Service Discovery'le saadetakse k\u00e4sk \u201ereload\u201d. Lihtne n\u00e4ide, kui s\u00fcndmuse korral konfigureeritakse nginx uuesti ja k\u00e4ivitatakse.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mis on Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Ennek\u00f5ike on see Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Sellel on k\u00e4ttesaadavuse kontrollimise mehhanism \u2013 Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Samuti sisaldab see KV Store'i.<\/p>\n<p>\n<\/li>\n<li>\n<p>Ja selle aluseks on v\u00f5imalus kasutada Multi Datacenter'i.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Milleks seda k\u00f5ike kasutada? KV Store'is saame s\u00e4ilitada konfigureerimise n\u00e4iteid. Health Checking v\u00f5imaldab meil kontrollida kohalikke teenuseid ja teavitada. Multi Datacenter'i kasutatakse selleks, et saaksime koostada teenuste kaardi. N\u00e4iteks Amazonil on mitu tsooni ja see suunab liikluse k\u00f5ige optimaalsemalt, et v\u00e4ltida tarbetuid p\u00e4ringuid andmekeskuste vahel, mis arvestatakse eraldi kohaliku liikluse j\u00e4tkude ja seega on v\u00e4iksem viivitus. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vaatame natuke termineid, mida Consul'is kasutatakse. <\/p>\n<p><\/p>\n<ul>\n<li>Consul on Go keeles kirjutatud teenus. \u00dcks Go programmi eeliseid on see, et see on 1 binaarfail, mille saad lihtsalt alla laadida. K\u00e4ivitage see \u00fcksk\u00f5ik kus ja teil pole s\u00f5ltuvusi. <\/li>\n<li>Edasi saame klahvide abil k\u00e4ivitada selle teenuse kas kliendi v\u00f5i serveri re\u017eiimis. <\/li>\n<li>Samuti v\u00f5imaldab atribuut \u201edatacenter\u201d m\u00e4\u00e4rata, millisele andmekeskusele see server kuulub. <\/li>\n<li>Consensus p\u00f5hineb raft-protokollil. Kui kedagi huvitab, saab selle kohta rohkem lugeda Consul'i veebisaidilt. See on protokoll, mis v\u00f5imaldab m\u00e4\u00e4rata liidri ja otsustada, millised andmed on kehtivad ja k\u00e4ttesaadavad.<\/li>\n<li>Gossip \u2013 see protokoll, mis tagab node'ide vahelise suhtluse. See s\u00fcsteem on detsentraliseeritud. \u00dches andmekeskuses suhtlevad k\u00f5ik node'id omavahel. Seega edastavad nad \u00fcksteisele teavet jooksva seisundi kohta. V\u00f5ib \u00f6elda, et see on naabrite vahelised kuulujutud. <\/li>\n<li>LAN Gossip \u2013 lokaalne andmevahetus naabrite vahel \u00fches andmekeskuses. <\/li>\n<li>WAN Gossip \u2013 kasutatakse, kui on vajalik teabe s\u00fcnkroniseerimine kahe andmekeskuse vahel. Teave liigub node'ide vahel, mis on m\u00e4rgitud serveriteks. <\/li>\n<li>RPC \u2013 v\u00f5imaldab p\u00e4ringute tegemist kliendi kaudu serveris. <\/li>\n<\/ul>\n<p><\/p>\n<p>RPC kirjeldus. Oletame, et virtuaalses v\u00f5i f\u00fc\u00fcsilises serveris t\u00f6\u00f6tab Consul kliendina. Me p\u00f6\u00f6rdume selle poole kohalikult. Edasi kohalik klient p\u00e4rib teavet serverilt ja s\u00fcnkroniseerib. Teave v\u00f5ib s\u00f5ltuvalt seadistustest tulla lokaalsest vahem\u00e4lust v\u00f5i s\u00fcnkroniseerida serveri liidriga. <\/p>\n<p><\/p>\n<p>Nendel kahe schemel on nii eeliseid kui ka puudusi. Kui t\u00f6\u00f6tame kohalikus vahem\u00e4lus, siis on see kiire. Kui t\u00f6\u00f6tame serveris hoitava teabega, siis on see aeglasem, kuid saame v\u00e4rskemat teavet.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kui seda graafiliselt kujutada, siis on meil selline skeem. N\u00e4eme, et meil on k\u00e4ivitatud kolm liidrit. \u00dcks on t\u00e4histatud t\u00e4hega liidrina. Selles n\u00e4ites on kolm klienti, kes vahetavad omavahel teavet kohaliku UDP\/TCP kaudu. Teave andmekeskuste vahel edastatakse serverite vahel. Siin suheldakse klientide vahel kohalikult. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Millist API't pakub Consul? Teabe hankimiseks on Consul'il kaks t\u00fc\u00fcpi API'd.<\/p>\n<p><\/p>\n<p>See on DNS API. Vaikimisi k\u00e4ivitub Consul 8600 pordin. Saame seadistada p\u00e4ringu proksimise ja tagada juurdep\u00e4\u00e4su kohaliku resolvimise kaudu, kohaliku DNS-i kaudu. Saame p\u00e4rida domeeni ja saame vastuseks IP-aadressi teavet.<\/p>\n<p><\/p>\n<p>HTTP API \u2013 v\u00f5i saame kohalikult 8500 pordin k\u00fcsida teavet konkreetse teenuse kohta ja saame JSON vastuse, millise IP'l on server, milline host, milline port on registreeritud. Ja lisainformatsioon v\u00f5ib olla edastatud token'i kaudu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mida on vaja, et Consul k\u00e4ivitada?<\/p>\n<p><\/p>\n<p>Esimeses variandis m\u00e4\u00e4rame arendaja re\u017eiimis lipu, et see on arendaja re\u017eiim. Agent k\u00e4ivitub serverina. Ja t\u00e4idab kogu funktsiooni juba \u00fchel masinal iseseisvalt. Mugav, kiire ja praktiliselt mingit t\u00e4iendavat seadistamist esimese k\u00e4ivitamise jaoks ei ole vajalik.<\/p>\n<p><\/p>\n<p>Teine re\u017eiim on tootmisre\u017eiim. Siin k\u00e4ivitamine veidi keerulisem. Kui meil pole \u00fchtegi konsoliversiooni, peame tooma esimesena t\u00f6\u00f6tama masina, st selle masina, mis v\u00f5tab \u00fcle juhi kohustused. K\u00fclastame seda, seej\u00e4rel k\u00e4ivitame teise serveri koopia, edastades talle teabe, kus asub meie meister. Kolmandat t\u00f5stame \u00fcles. P\u00e4rast kolme masina t\u00f5stmist k\u00e4ivitame esimesel masinal, mis on k\u00e4ivitunud bootstrap'ist, oma tavalises re\u017eiimis. Andmed s\u00fcnkroniseeritakse ja algne kluster on juba \u00fcles t\u00f5stetud. <\/p>\n<p><\/p>\n<p>Soovitav on k\u00e4ivitada kolm kuni seitse eksemplari serverire\u017eiimis. See tuleneb asjaolust, et kui serverite arv suureneb, suureneb ka teabe s\u00fcnkroniseerimise aeg nende vahel. Nodide arv peab olema paaritu, et tagada kvoorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kuidas tagatakse tervisekontrollid? Configuratsiooni katalooge Consul jaoks kirjutame me reegli kontrollimise nagu JSON. Esimene variant on selle n\u00e4ite j\u00e4rgi juurdep\u00e4\u00e4setavuse kontrollimine domeenile google.com. Ja \u00fctleme, et iga 30 sekundi tagant tuleb seda kontrolli teostada. Nii kontrollime, et meie nodal on juurdep\u00e4\u00e4s v\u00e4lisele v\u00f5rgule.<\/p>\n<p><\/p>\n<p>Teine variant on kontrollida iseennast. Me teeme tavalise curl'i kutse localhost'i kindlaksm\u00e4\u00e4ratud pordile iga 10 sekundi tagant. <\/p>\n<p><\/p>\n<p>Need kontrollid summeeritakse ja saadetakse Teenuse Tuvastamisse. Tuginedes juurdep\u00e4\u00e4setavusele, kas need nodid v\u00e4listatakse v\u00f5i ilmuvad saadaval ja korralikult t\u00f6\u00f6tavate masinate nimekirja. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Samuti pakub Consul UI-liidest, mis k\u00e4ivitub eraldi lipuga ja on saadaval masinatel. See v\u00f5imaldab vaadata teavet ning teha ka m\u00f5ningaid muudatusi. <\/p>\n<p><\/p>\n<p>Selles n\u00e4ites on avatud 'Teenuse' vahekaart. N\u00e4idatud on, et kolm teenust on k\u00e4ivitatud, neist \u00fcks on Consul. Kontrollimise tulemuste hulk. Ja on kolme andmekeskust, kus masinad asuvad.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Teenuste avastamine jaotatud s\u00fcsteemides, kasutades Consuli n\u00e4idet. Aleksandr Sigat\u0161ev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See on \"Nodes\" vahekaart. N\u00e4eme, et neil on koos nimesid andmekeskustega. Siin on n\u00e4idatud ka, millised teenused on aktiivsed, st me n\u00e4eme, et silte ei ole m\u00e4\u00e4ratud. Nendes t\u00e4iendavates siltes saab m\u00e4\u00e4rata teavet, mida arendaja saab kasutada t\u00e4iendavate parameetrite m\u00e4\u00e4ramiseks. <\/p>\n<p><\/p>\n<p>Samuti saab Consulile edastada teavet ketaste oleku ja keskmise koormuse kohta.<\/p>\n<p><\/p>\n<p>K\u00fcsimused<\/p>\n<p><\/p>\n<p>K\u00fcsimus: Meil on Docker konteiner, kuidas seda kasutada Consuliga?<\/p>\n<p><\/p>\n<p>Vastus: Docker konteineri jaoks on mitu l\u00e4henemist. \u00dcks levinumaid on kasutada kolmandat osapoolt Docker konteinerit, mis vastutab registri eest. K\u00e4ivitamisel edastatakse talle Docker socket. K\u00f5ik konteineri registreerimise ja t\u00fchistamise s\u00fcndmused salvestatakse Consulisse.<\/p>\n<p><\/p>\n<p>K\u00fcsimus: St Consul k\u00e4ivitab ise Docker konteineri?<\/p>\n<p><\/p>\n<p>Vastus: Ei. Me k\u00e4ivitame Docker konteineri. Ja konfiguratsioonis m\u00e4\u00e4rame \u2013 kuula sellist socketit. See on umbes sama, nagu t\u00f6\u00f6tamine sertifikaadiga, kui edastame teavet, kus ja mis meil on. <\/p>\n<p><\/p>\n<p>K\u00fcsimus: Tundub, et Docker konteineris, mille proovime Service Discovery'ga\u00fchendada, peab olema mingi loogika, mis oskab edastada andmeid Consulile?<\/p>\n<p><\/p>\n<p>Vastus: Mitte p\u00e4ris. Kui see k\u00e4ivitub, edastame me keskkonnamuutujate kaudu muutujad. Oletame, teenuse nimi, teenuse port. Register kuulab seda teavet ja salvestab selle Consulisse.<\/p>\n<p><\/p>\n<p>K\u00fcsimus: Mul on veel UI kohta k\u00fcsimus. Oleme k\u00e4ivitanud UI, eeldades, et see on tootmiserveris. Mis on turvalisusega? Kus andmed asuvad? Kas saab andmeid kuidagi koguda?<\/p>\n<p><\/p>\n<p>Vastus: UI puhul tulevad andmed tegelikult andmebaasist ja Service Discovery'st. Paroolid paneme seadistustes ise paika. <\/p>\n<p><\/p>\n<p>K\u00fcsimus: Kas seda on lubatud internetis avaldada?<\/p>\n<p><\/p>\n<p>Vastus: Vaikimisi k\u00e4ivitub Consul localhost'is. Et seda internetti avaldada, tuleb paigaldada m\u00f5ni proxy. Turvalisuse eest vastutame ise.<\/p>\n<p><\/p>\n<p>K\u00fcsimus: Kas ajaloolisi andmeid pakutakse? Huvi on vaadata tervise kontrollide statistikat. Kas t\u00f5epoolest saab diagnoosida probleeme, kui server sageli koos allub.<\/p>\n<p><\/p>\n<p>Vastus: Ma ei ole kindel, et seal on kontrollide detaile. <\/p>\n<p><\/p>\n<p>K\u00fcsimus: M\u00f5ningase t\u00e4htsuse oma oleva seisundi osas, kui palju olla d\u00fcnaamikast.<\/p>\n<p><\/p>\n<p>Vastus: Anal\u00fc\u00fcsimiseks \u2013 jah.<\/p>\n<p><\/p>\n<p>K\u00fcsimus: Kas Docker jaoks Service Discovery't Consuliga kasutada on parem mitte?<\/p>\n<p><\/p>\n<p>Vastus: Ma ei soovitaks seda kasutada. Ettekanne tutvustab, mis see m\u00f5isted on. Aajaloos on see teinud teed, minu arvates, esimese versiooni juurde. Praegu on olemas palju t\u00e4iuslikumaid lahendusi, n\u00e4iteks Kubernetes, millega on see k\u00f5ik koos. Kuberneteses j\u00e4\u00e4b Service Discovery Etcd'ile alla. Kuid ma ei tunne seda nii h\u00e4sti kui Consulit. Seet\u00f5ttu otsustasin Service Discovery n\u00e4idata Consuli n\u00e4itel.<\/p>\n<p><\/p>\n<p>K\u00fcsimus: Kas liidri serveri skeem ei aeglusta rakenduse k\u00e4ivitamist tervikuna? Ja kuidas Consul m\u00e4\u00e4rab uue liidri, kui see on maas?<\/p>\n<p><\/p>\n<p>Vastus: Neil on v\u00e4lja t\u00f6\u00f6tatud kogu protokoll. Kui see huvitab, siis saad seda lugeda.<\/p>\n<p><\/p>\n<p>K\u00fcsimus: Kas Consul toimib t\u00e4ieliku serverina ja k\u00f5ik p\u00e4ringud liiguvad l\u00e4bi selle?<\/p>\n<p><\/p>\n<p>Vastus: Ta ei t\u00f6\u00f6ta t\u00e4ieliku serverina, vaid h\u00f5lmab kindlat ala. See l\u00f5ppeb tavaliselt service.consul'iga. Ja edasi juhindume loogikast. Me ei kasuta tootmises domeeninimesid, vaid sisemist infrastruktuuri, mis peidetakse tavaliselt serveri vahem\u00e4lu taha, kui t\u00f6\u00f6tame DNS-iga.<\/p>\n<p><\/p>\n<p>K\u00fcsimus: St. kui soovime andmebaasi juurde p\u00e4\u00e4seda, peame me igal juhul Consulit k\u00fcsima, et k\u00f5igepealt leida see andmebaas, eks?<\/p>\n<p><\/p>\n<p>Vastus: Jah. Kui t\u00f6\u00f6tame DNS-i kaudu, siis see t\u00f6\u00f6tab nagu ilma Consulita, kui kasutame DNS-nimesid. Tavalised t\u00e4nap\u00e4evased rakendused ei kontrolli igas p\u00e4ringus domeeninime, sest me oleme connect-iga \u00fchendust loonud, k\u00f5ik t\u00f6\u00f6tab ja l\u00e4hitulevikus me ei kasutagi seda. Kui \u00fchendus katkeb, siis \u2013 jah, k\u00fcsime j\u00e4lle, kus meie andmebaas on ja l\u00e4heme selle juurde.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">HashiCorp toodete vestlus<\/a><\/noindex> \u2014 HashiCorpi kasutajate vestlus: Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. Mis puutub tervisekontrollidesse. Consulis, nagu ka Kuberneteses, kasutatakse sama s\u00fcsteemi teenuse eluj\u00f5udmise kontrollimiseks p\u00f5hinedes staatuse koodile.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK tervislik\n503 Teenus ei ole k\u00e4ttesaadav tervislikul<\/code><\/pre>\n<p><\/p>\n<p>Allikad:<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>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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 jaotatud s\u00fcsteemides Consuli n\u00e4itel. Aleksandr Sigat\u0161ov | ProHoster","description":"Soovitan tutvuda Aleksandr Sigat\u0161ovi ettekandega \"Service Discovery jaotatud s\u00fcsteemides Consuli n\u00e4itel\". Service Discovery on loodud selleks, et minimaalsete.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/56387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}