{"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\/it\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Vi propongo di familiarizzare con la trascrizione della relazione di Aleksandr Sigacev sul Service Discovery nei sistemi distribuiti, utilizzando come esempio Consul.<\/strong><\/p>\n<p><\/p>\n<p>Il Service Discovery \u00e8 stato creato per consentire di collegare una nuova applicazione al nostro ambiente esistente con il minimo sforzo. Utilizzando il Service Discovery, possiamo massimizzare la separazione tra un contenitore, come Docker, o un servizio virtuale e l'ambiente in cui \u00e8 in esecuzione. <\/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=\"Guarda il 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>Salve a tutti! Sono Aleksandr Sigacev, lavoro per l'azienda Inventos. Oggi vi presenter\u00f2 un concetto chiamato Service Discovery. Esamineremo il Service Discovery utilizzando Consul come esempio.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quali problemi risolve il Service Discovery? \u00c8 stato creato per consentire di collegare una nuova applicazione al nostro ambiente esistente con il minimo sforzo. Utilizzando il Service Discovery, possiamo massimizzare la separazione tra un contenitore, come Docker, o un servizio virtuale e l'ambiente in cui \u00e8 in esecuzione. <\/p>\n<p><\/p>\n<p>Come si presenta? In un classico esempio web: \u00e8 un frontend che riceve la richiesta dell'utente. Successivamente esegue la route verso il backend. In questo esempio, il load-balancer bilancia tra due backend.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qui vediamo che stiamo avviando una terza istanza dell'applicazione. Quando l'applicazione si avvia, effettua la registrazione nel Service Discovery. Il Service Discovery informa il load-balancer. Il load-balancer modifica automaticamente la propria configurazione e il nuovo backend inizia a lavorare. In questo modo \u00e8 possibile aggiungere backend o, al contrario, escluderli dal lavoro.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quali altre operazioni \u00e8 conveniente eseguire tramite il Service Discovery? Pu\u00f2 memorizzare le configurazioni di nginx, i certificati e l'elenco dei server backend attivi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Inoltre, il Service Discovery consente di rilevare guasti e malfunzionamenti. Quali sono le possibili modalit\u00e0 di rilevamento dei guasti?<\/p>\n<p><\/p>\n<ul>\n<li>Questa applicazione che abbiamo sviluppato informa autonomamente il Service Discovery che \u00e8 ancora operativa. <\/li>\n<li>Il Service Discovery, dal suo canto, interroga l'applicazione per verificare la sua disponibilit\u00e0.<\/li>\n<li>Oppure si pu\u00f2 utilizzare uno script o un'applicazione esterna che verifica la disponibilit\u00e0 della nostra applicazione e informa il Service Discovery che tutto va bene e si pu\u00f2 procedere o, al contrario, che ci sono problemi e che \u00e8 necessario escludere questa istanza dell'applicazione dal bilanciamento.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ogni schema pu\u00f2 essere applicato a seconda del software che utilizziamo. Ad esempio, se abbiamo appena iniziato a sviluppare un nuovo progetto, possiamo facilmente implementare uno schema in cui la nostra applicazione avvisa il Service Discovery. Oppure possiamo collegarci perch\u00e9 il Service Discovery esegue il controllo.<\/p>\n<p><\/p>\n<p>Se l'applicazione ci \u00e8 stata lasciata in eredit\u00e0 o \u00e8 stata sviluppata da un terzo, allora si applica la terza opzione, in cui scriviamo un gestore e tutto ci\u00f2 si integra automaticamente nel nostro lavoro.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questo \u00e8 un esempio. Il bilanciatore di carico in forma di nginx si riavvia. \u00c8 un'utilit\u00e0 aggiuntiva fornita insieme a Consul. Questo \u00e8 consul-template. Descriviamo una regola. Diciamo che utilizziamo un modello (Template Engine Golang). Quando si verificano eventi, con notifiche riguardanti modifiche, viene rigenerato e al Service Discovery viene inviata la comando \"reload\". Un esempio semplice, quando a seguito di un evento nginx viene riconfigurato e riavviato.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Che cos'\u00e8 Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Prima di tutto, \u00e8 un Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Ha un meccanismo di verifica della disponibilit\u00e0 - Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Possiede anche un KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>E alla base ha la possibilit\u00e0 di utilizzare Multi Datacenter.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>A cosa serve tutto questo? Nel KV Store possiamo memorizzare esempi di configurazioni. Possiamo eseguire controlli del servizio locale e avvisare tramite Health Checking. Il Multi Datacenter \u00e8 utilizzato per costruire una mappa dei servizi. Ad esempio, Amazon ha diverse zone e instrada il traffico in modo ottimale, affinch\u00e9 non ci siano richieste superflue tra i data center, che vengono tariffate separatamente rispetto al traffico locale, e quindi hanno una latenza minore. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Analizziamo un po' i termini utilizzati in Consul. <\/p>\n<p><\/p>\n<ul>\n<li>Consul \u00e8 un servizio scritto in Go. Uno dei vantaggi dei programmi scritti in Go \u00e8 che si tratta di un unico file binario che puoi scaricare. Puoi avviarlo da qualsiasi posizione senza alcuna dipendenza. <\/li>\n<li>Successivamente, utilizzando le chiavi, possiamo avviare questo servizio sia in modalit\u00e0 client che in modalit\u00e0 server. <\/li>\n<li>Inoltre, l'attributo \"datacenter\" consente di contrassegnare a quale data center appartiene questo server. <\/li>\n<li>Il consenso si basa sul protocollo raft. Se qualcuno \u00e8 interessato, pu\u00f2 leggere di pi\u00f9 sul sito di Consul. Questo \u00e8 un protocollo che consente di designare un leader e stabilire quali dati considerare validi e accessibili.<\/li>\n<li>Gossip \u00e8 un protocollo che consente l'interazione tra i nodi. Inoltre, questo sistema \u00e8 decentralizzato. All'interno di un unico data center, tutti i nodi comunicano con i vicini. Di conseguenza, le informazioni sullo stato attuale vengono scambiate tra di loro. Si pu\u00f2 dire che si tratta di pettegolezzi tra vicini. <\/li>\n<li>LAN Gossip \u00e8 lo scambio locale di dati tra i vicini all'interno di un singolo data center. <\/li>\n<li>WAN Gossip viene utilizzato quando \u00e8 necessario sincronizzare le informazioni tra due data center. Le informazioni vengono trasferite tra nodi contrassegnati come server. <\/li>\n<li>RPC consente di effettuare richieste attraverso il client su un server. <\/li>\n<\/ul>\n<p><\/p>\n<p>Descrizione di RPC. Supponiamo che su una macchina virtuale o su un server fisico sia in esecuzione Consul come client. Ci si rivolge localmente a esso. Successivamente, il client locale richiede informazioni al server e si sincronizza. Le informazioni, a seconda delle impostazioni, possono essere fornite dalla cache locale o possono essere sincronizzate con il leader, il master del server. <\/p>\n<p><\/p>\n<p>Questi due schemi hanno sia vantaggi che svantaggi. Se lavoriamo con la cache locale, \u00e8 veloce. Se lavoriamo con i dati memorizzati sul server, \u00e8 pi\u00f9 lento, ma otteniamo informazioni pi\u00f9 aggiornate.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Se si rappresenta graficamente, ecco un'immagine del sito. Possiamo vedere che sono attivi tre master. Uno \u00e8 contrassegnato con una stella come leader. In questo esempio, ci sono tre client che scambiano informazioni localmente tramite UDP\/TCP. Le informazioni tra i data center vengono trasferite tra i server. Qui i client interagiscono tra loro localmente. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quale API fornisce Consul? Per ottenere informazioni, ci sono due tipi di API in Consul.<\/p>\n<p><\/p>\n<p>Questa \u00e8 l'API DNS. Per impostazione predefinita, Consul viene avviato sulla porta 8600. Possiamo configurare il proxy delle richieste e garantire l'accesso tramite risoluzione locale, tramite DNS locale. Possiamo effettuare una richiesta tramite dominio e ricevere in risposta informazioni sull'indirizzo IP.<\/p>\n<p><\/p>\n<p>HTTP API \u2013 oppure possiamo richiedere localmente sulla porta 8500 informazioni su un servizio specifico e ottenere una risposta JSON che indica quale IP ha il server, quale host, quale porta \u00e8 registrata. Informazioni aggiuntive possono essere trasmesse tramite token.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cosa serve per avviare Consul?<\/p>\n<p><\/p>\n<p>Nella prima opzione, in modalit\u00e0 sviluppatore indichiamo il flag che si tratta della modalit\u00e0 sviluppatore. L'Agent si avvia come server e svolge gi\u00e0 autonomamente tutte le funzioni su una sola macchina. Pratico, veloce e praticamente non sono necessari ulteriori settaggi per il primo avvio.<\/p>\n<p><\/p>\n<p>La seconda modalit\u00e0 \u00e8 l\u2019avvio in production. Qui l'avvio si complica un po\u2019. Se non abbiamo alcuna versione del consule, dobbiamo portare nel bootstrap la prima macchina, cio\u00e8 questa macchina assumer\u00e0 le responsabilit\u00e0 di leader. La solleviamo, quindi solleviamo un secondo esempio di server, passando le informazioni su dove si trova il master. Solleviamo il terzo. Dopo che sono state sollevate tre macchine, sulla prima macchina dal bootstrap avviato, la riavviamo in modalit\u00e0 normale. I dati si sincronizzano e il cluster iniziale \u00e8 gi\u00e0 attivo. <\/p>\n<p><\/p>\n<p>Si raccomanda di avviare da tre a sette esempi in modalit\u00e0 server. Questo \u00e8 dovuto al fatto che se il numero dei server cresce, aumenta il tempo necessario per la sincronizzazione delle informazioni tra di loro. Il numero di nodi deve essere dispari per garantire il quorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Come si garantiscono i controlli di salute? Nella directory per la configurazione di Consul scriviamo in formato Json una regola di verifica. La prima opzione \u00e8 la disponibilit\u00e0, in questo esempio, del dominio google.com. E indichiamo che ogni 30 secondi deve essere eseguita questa verifica. In questo modo controlliamo che il nostro nodo abbia accesso alla rete esterna.<\/p>\n<p><\/p>\n<p>La seconda opzione \u00e8 il controllo di se stesso. Effettuiamo una chiamata curl a localhost sulla porta specificata con un intervallo di 10 secondi. <\/p>\n<p><\/p>\n<p>Queste verifiche vengono sommate e inviate al Service Discovery. Sulla base della disponibilit\u00e0, questi nodi vengono esclusi o appariranno nell'elenco delle macchine disponibili e funzionanti correttamente. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Inoltre, Consul offre un'interfaccia UI che pu\u00f2 essere avviata con un flag separato e sar\u00e0 disponibile sulla macchina. Questo consente di visualizzare informazioni e apportare alcune modifiche. <\/p>\n<p><\/p>\n<p>In questo esempio, \u00e8 aperta la scheda 'Servizio'. Si mostra che sono stati avviati tre servizi, uno dei quali \u00e8 Consul. La quantit\u00e0 di controlli eseguiti e ci sono tre data center in cui si trovano le macchine.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery nei sistemi distribuiti prendendo come esempio Consul. Aleksandr Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questo \u00e8 un esempio di scheda \u00abNodes\u00bb. Possiamo vedere che hanno nomi composti che coinvolgono i data center. Qui viene anche mostrato quali servizi sono attivi, ovvero vediamo che i tag non sono stati assegnati. In questi tag aggiuntivi \u00e8 possibile specificare alcune informazioni che il sviluppatore pu\u00f2 utilizzare per indicare parametri extra. <\/p>\n<p><\/p>\n<p>\u00c8 possibile anche inviare informazioni a Consul sullo stato dei dischi e sul carico medio.<\/p>\n<p><\/p>\n<p>Domande<\/p>\n<p><\/p>\n<p>Domanda: Abbiamo un container Docker, come possiamo usarlo con Consul?<\/p>\n<p><\/p>\n<p>Risposta: Ci sono diversi approcci per un container Docker. Uno dei pi\u00f9 comuni \u00e8 utilizzare un container Docker esterno responsabile della registrazione. Al momento dell'avvio, gli viene passato il socket di Docker. Tutti gli eventi di registrazione e de-registrazione del container vengono registrati in Consul.<\/p>\n<p><\/p>\n<p>Domanda: Quindi Consul avvia autonomamente il container Docker?<\/p>\n<p><\/p>\n<p>Risposta: No. Siamo noi a lanciare il container Docker. E nella configurazione specifichiamo \u2013 ascolta su questo socket. \u00c8 simile a come funziona con il certificato, quando passiamo informazioni su dove e cosa abbiamo. <\/p>\n<p><\/p>\n<p>Domanda: Quindi, dentro il container Docker che stiamo cercando di collegare a Service Discovery, deve esserci una logica che sa come fornire i dati a Consul?<\/p>\n<p><\/p>\n<p>Risposta: Non proprio. Quando parte, passiamo variabili attraverso l'ambiente. Ad esempio, nome del servizio, porta del servizio. Nel registro ascolta queste informazioni e le inserisce in Consul.<\/p>\n<p><\/p>\n<p>Domanda: Ho ancora una domanda sull'interfaccia utente. Abbiamo distribuito l'UI, ad esempio, su un server di produzione. Cosa dire della sicurezza? Dove vengono memorizzati i dati? \u00c8 possibile in qualche modo accumulare dati?<\/p>\n<p><\/p>\n<p>Risposta: Nell'UI ci sono proprio i dati dal database e da Service Discovery. Le password le impostiamo nelle impostazioni noi stessi. <\/p>\n<p><\/p>\n<p>Domanda: \u00c8 possibile pubblicarlo su Internet?<\/p>\n<p><\/p>\n<p>Risposta: Per impostazione predefinita, Consul si avvia su localhost. Per pubblicarlo su Internet, sar\u00e0 necessario impostare un proxy. Ci occupiamo noi delle regole di sicurezza.<\/p>\n<p><\/p>\n<p>Domanda: Fornisce dati storici immediatamente? \u00c8 interessante vedere le statistiche sui controlli di stato. \u00c8 possibile diagnosticare problemi se il server si interrompe frequentemente.<\/p>\n<p><\/p>\n<p>Risposta: Non sono sicuro che ci siano dettagli sui controlli. <\/p>\n<p><\/p>\n<p>Domanda: Non \u00e8 tanto importante lo stato attuale, quanto \u00e8 importante la dinamica.<\/p>\n<p><\/p>\n<p>Risposta: Per l'analisi \u2013 s\u00ec.<\/p>\n<p><\/p>\n<p>Domanda: Non \u00e8 meglio non utilizzare Consul per Service Discovery per Docker?<\/p>\n<p><\/p>\n<p>Risposta: Non lo consiglierei. Lo scopo della relazione \u00e8 presentare il concetto. Storicamente ha fatto un percorso, a mio avviso, fino alla prima versione. Ora ci sono soluzioni pi\u00f9 complete, come Kubernetes, che ha tutto questo sotto il cofano. Nel contesto di Kubernetes, Service Discovery \u00e8 inferiore a Etcd. Ma non sono cos\u00ec esperto di quest'ultimo come di Consul. Pertanto, ho deciso di illustrare Service Discovery con un esempio di Consul.<\/p>\n<p><\/p>\n<p>Domanda: Lo schema con il server leader non rallenta l'avvio dell'applicazione nel complesso? E come fa Consul a determinare un nuovo leader, se quello attuale \u00e8 inattivo?<\/p>\n<p><\/p>\n<p>Risposta: Hanno descritto un intero protocollo. Se sei interessato, puoi leggere.<\/p>\n<p><\/p>\n<p>Domanda: Consul funge da server completo e tutte le richieste passano attraverso di esso?<\/p>\n<p><\/p>\n<p>Risposta: Non \u00e8 un server completo, ma gestisce un determinato ambito. Di solito finisce con service.consul. E poi seguiamo la logica. Non usiamo nei production nomi di dominio, ma piuttosto infrastrutture interne, che di solito sono nascoste dietro la cache del server, se lavoriamo tramite DNS.<\/p>\n<p><\/p>\n<p>Domanda: Cio\u00e8, se vogliamo accedere al database, dovremo comunque chiamare Consul per prima cosa per trovare quel database, corretto?<\/p>\n<p><\/p>\n<p>Risposta: S\u00ec. Se lavoriamo tramite DNS, funziona come senza Consul, quando usiamo nomi DNS. Solitamente le applicazioni moderne non interrogano ogni volta il nome di dominio, poich\u00e9 abbiamo stabilito la connessione e tutto funziona; nel prossimo futuro non lo usiamo praticamente mai. Se la connessione si interrompe, allora s\u00ec, chiediamo di nuovo dove si trova il nostro database e ci dirigiamo verso di esso.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat sui prodotti hashicorp<\/a><\/noindex> \u2014 Chat degli utenti Hashicorp: Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. Riguardo ai controlli di stato. In Consul, come in Kubernetes, viene utilizzato lo stesso sistema di verifica dello stato di salute del servizio basato sul codice di stato.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK per sano\n503 Servizio non disponibile per malato<\/code><\/pre>\n<p><\/p>\n<p>Fonti:<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>Fonte: <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\/it\/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=\"it_IT\" \/>\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\/it\/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 nei sistemi distribuiti usando Consul. Aleksandr Sigachev | ProHoster","description":"Ti consiglio di dare un'occhiata alla registrazione della relazione di Aleksandr Sigachev su Service Discovery nei sistemi distribuiti usando Consul come esempio. Service Discovery \u00e8 stato creato per funzionare con il minimo.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/56387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}