Console - Guida rapida
Consul è uno strumento basato su Hashicorp per scoprire e configurare una varietà di servizi diversi nella tua infrastruttura. È basato e costruito su Golang. Uno dei motivi principali per costruire Consul era mantenere i servizi presenti nei sistemi distribuiti. Alcune delle caratteristiche significative fornite da Console sono le seguenti.
Service Discovery - Utilizzando DNS o HTTP, le applicazioni possono trovare facilmente i servizi da cui dipendono.
Health Check Status- Può fornire un numero qualsiasi di controlli sanitari. Viene utilizzato dai componenti di rilevamento del servizio per instradare il traffico lontano da host malsani.
Key/Value Store - Può utilizzare l'archivio chiave / valore gerarchico di Console per qualsiasi numero di scopi, tra cui configurazione dinamica, contrassegno delle funzioni, coordinamento, elezione del leader, ecc.
Multi Datacenter Deployment- Consul supporta più datacenter. Viene utilizzato per creare livelli aggiuntivi di astrazione per crescere in più regioni.
Web UI - Consul fornisce ai suoi utenti una bellissima interfaccia web con la quale può essere facile da usare e gestire tutte le funzionalità di console.
Scoperta del servizio
La scoperta dei servizi è una delle caratteristiche più importanti di Consul. È definito come il rilevamento di diversi servizi e protocolli di rete utilizzando i quali viene trovato un servizio. L'utilizzo della scoperta dei servizi è un vantaggio per i sistemi distribuiti. Questo è uno dei problemi principali che devono affrontare le odierne industrie su larga scala con il progresso dei sistemi distribuiti nel loro ambiente.
Confronto con Etcd e Zookeeper
Quando esaminiamo altri strumenti di rilevamento dei servizi in questo dominio, abbiamo due opzioni popolari. Alcuni dei principali attori dell'industria del software lo hanno utilizzato in passato. Questi strumenti sonoEtcd e Zookeeper.
Consideriamo la seguente tabella per confrontare i diversi aspetti di ogni strumento. Capiremo anche cosa utilizza internamente ciascuno di loro.
Proprietà | Console | Etcd | Custode dello zoo |
---|---|---|---|
Interfaccia utente | A disposizione |
|
|
RPC | A disposizione | A disposizione |
|
Controllo della salute | API HTTP | API HTTP | TCP |
Valore chiave | 3 modalità di coerenza | Buona consistenza | Forte coerenza |
Token System | A disposizione |
|
|
linguaggio | Golang | Golang | Giava |
Console - Membri e agenti
I membri di console possono essere definiti come l'elenco di diversi agenti e modalità server utilizzando i quali viene distribuito un cluster di console. Consul ci fornisce una funzionalità della riga di comando tramite la quale possiamo facilmente elencare tutti gli agenti associati a console.
L'agente del console è il processo centrale di Console. L'agente conserva le informazioni sull'appartenenza, registra i servizi, esegue controlli, risponde alle domande, ecc. Qualsiasi agente può essere eseguito in una delle due modalità:Client o Server. Queste due modalità possono essere utilizzate in base al loro ruolo deciso quando si utilizza console. L'agente console ci aiuta fornendoci le informazioni elencate di seguito.
Node name - Questo è il nome host della macchina.
Datacenter- Il datacenter in cui l'agente è configurato per essere eseguito. Ogni nodo deve essere configurato per segnalare al proprio data center.
Server- Indica se l'agente è in esecuzione in modalità server o client. I nodi del server partecipano al quorum di consenso, archiviando lo stato del cluster e gestendo le query.
Client Addr- È l'indirizzo utilizzato per le interfacce client dall'agente. Include le porte per le interfacce HTTP, DNS e RPC.
Cluster Addr- È l'indirizzo e l'insieme di porte utilizzati per la comunicazione tra gli agenti Consul in un cluster. Questo indirizzo deve essere raggiungibile da tutti gli altri nodi.
Nel prossimo capitolo capiremo l'architettura di Console.
Il diagramma dell'architettura per il console che lavora in un data center può essere descritto al meglio come mostrato di seguito:
Come possiamo osservare, ci sono tre diversi server, che sono gestiti da Console. L'architettura di lavoro funziona utilizzando l'algoritmo raft, che ci aiuta a eleggere un leader tra i tre diversi server. Questi server vengono quindi etichettati in base ai tag comeFollower e Leader. Come suggerisce il nome, il follower è responsabile di seguire le decisioni del leader. Tutti e tre questi server sono ulteriormente collegati tra loro per qualsiasi comunicazione.
Ogni server interagisce con il proprio client utilizzando il concetto di RPC. La comunicazione tra i clienti è possibile grazie aGossip Protocolcome menzionato sotto. La funzione di comunicazione con Internet può essere resa disponibile utilizzando il metodo di comunicazione TCP o gossip. Questa comunicazione è in contatto diretto con uno dei tre server.
Algoritmo Raft
Raft è un algoritmo di consenso per la gestione di un registro replicato. Si basa sul principio diCAP Theorem, in cui si afferma che in presenza di una partizione di rete, si deve scegliere tra coerenza e disponibilità. Non tutti e tre i fondamenti del teorema CAP possono essere raggiunti in un dato momento. Uno deve scambiare al meglio per due di loro.
UN Raft Clustercontiene diversi server, di solito nel numero dispari. Ad esempio, se abbiamo cinque server, consentirà al sistema di tollerare due errori. In qualsiasi momento, ogni server si trova in uno dei tre stati:Leader, Follower, o Candidate. In un'operazione normale, c'è esattamente un leader e tutti gli altri server sono seguaci. Questi follower sono in uno stato passivo, ovvero non emettono richieste da soli, ma rispondono semplicemente alle richieste dei leader e del candidato.
La figura seguente descrive il modello di flusso di lavoro utilizzando il quale funziona l'algoritmo raft:
Dati valore chiave
Dalla versione 0.7.1 del Console, è stata introdotta un'introduzione di dati sui valori chiave separati. Il comando KV viene utilizzato per interagire con l'archivio valori-chiave del Console tramite la riga di comando. Espone i comandi di primo livello perInserting, Updating, Reading e Deletingdal negozio. Per ottenere l'archivio oggetti chiave / valore, chiamiamo il metodo KV disponibile per il client console -
kv := consul.KV()
Il KVPair Structureviene utilizzato per rappresentare una singola voce chiave / valore. Possiamo visualizzare la struttura di Consul KV Pair nel seguente programma.
type KVPair struct {
Key string
CreateIndex uint64
ModifyIndex uint64
LockIndex uint64
Flags uint64
Value []byte
Session string
}
Qui, le varie strutture menzionate nel codice sopra possono essere definite come segue:
Key- È un nome URL con barra. Ad esempio: siti / 1 / dominio.
CreateIndex - Numero di indice assegnato quando la chiave è stata creata per la prima volta.
ModifyIndex - Numero di indice assegnato quando la chiave è stata aggiornata l'ultima volta.
LockIndex - Numero di indice creato quando viene acquisito un nuovo blocco sulla voce chiave / valore
Flags - Può essere utilizzato dall'app per impostare il valore personalizzato.
Value - È un array di byte di massimo 512 kb.
Session - Può essere impostato dopo aver creato un oggetto sessione.
Tipi di protocollo
Esistono due tipi di protocollo in Console, chiamati come:
- Protocollo di consenso e
- Protocollo di pettegolezzi
Vediamoli ora di capirli in dettaglio.
Protocollo di consenso
Il protocollo di consenso viene utilizzato da Console per fornire la coerenza come descritto dal teorema CAP. Questo protocollo è basato sull'algoritmo Raft. Quando si implementa il protocollo di consenso, l'algoritmo Raft viene utilizzato dove i nodi raft si trovano sempre in uno dei tre stati: Follower, Candidate o Leader.
Protocollo di pettegolezzi
Il protocollo gossip può essere utilizzato per gestire l'appartenenza, inviare e ricevere messaggi attraverso il cluster. In console, l'utilizzo del protocollo gossip avviene in due modi,WAN (Wireless Area Network) e LAN(Rete locale). Esistono tre librerie conosciute, che possono implementare un algoritmo di gossip per scoprire i nodi in una rete peer-to-peer -
teknek-gossip - Funziona con UDP ed è scritto in Java.
gossip-python - Utilizza lo stack TCP ed è possibile condividere i dati anche tramite la rete costruita.
Smudge - È scritto in Go e utilizza UDP per scambiare informazioni sullo stato.
I protocolli di gossip sono stati utilizzati anche per ottenere e mantenere una coerenza del database distribuito o con altri tipi di dati in stati coerenti, contando il numero di nodi in una rete di dimensioni sconosciute, diffondendo notizie in modo robusto, organizzando nodi, ecc.
Chiamate di procedura remota
L'RPC può essere indicato come l'abbreviazione per le chiamate di procedura remota. È un protocollo che un programma utilizza per richiedere un servizio da un altro programma. Questo protocollo può essere posizionato in un altro computer su una rete senza dover riconoscere i dettagli di rete.
La vera bellezza dell'utilizzo di RPC in Consul è che ci aiuta a evitare i problemi di latenza che la maggior parte degli strumenti del servizio di rilevamento aveva qualche tempo fa. Prima di RPC, Console aveva soloTCP e UDPconnessioni basate, che erano buone con la maggior parte dei sistemi, ma non nel caso dei sistemi distribuiti. RPC risolve tali problemi riducendo il periodo di tempo di trasferimento delle informazioni sui pacchetti da un luogo a un altro. In quest'area, GRPC di Google è un ottimo strumento per guardare avanti nel caso in cui si desideri osservare i benchmark e confrontare le prestazioni.
A scopo dimostrativo, utilizzeremo l'agente console in modalità sviluppatore utilizzando la modalità -dev. Solo per la configurazione della macchina locale, eseguiremo una singola configurazione della console di sistema.Please do not use this single node consul cluster in your production. Come già menzionato da Hashicorp nello scenario di un cluster di console a nodo singolo,the data loss is inevitable.
Installazione di Console
Consul può essere installato tramite la pagina dei download su www.consul.io/downloads.html
Puoi estrarre il pacchetto binario nella sezione Download della tua macchina.
$ cd Downloads $ chmod +x consul
$ sudo mv consul /usr/bin/
Ora iniziamo a usare console usando il -dev flag.
$ consul agent -dev -data-dir=/tmp/consul
L'output sarebbe come mostrato nello screenshot seguente.
Ora puoi controllare i membri del tuo console utilizzando il seguente comando.
$ consul members
L'output sarebbe come mostrato nello screenshot seguente.
Se vuoi unire altri nodi a questo nodo -
$ consul join <Node 2> <Node 3>
In alternativa, puoi eseguire il seguente comando sui nodi 2 e 3:
$ consul join <Node 1>
Utilizzando la riga di comando
La riga di comando di console è composta da diverse opzioni, alcune delle più comunemente utilizzate sono le seguenti:
agent - che gestisce un agente Console.
configtest - per convalidare un file di configurazione.
event - per avviare un nuovo evento.
exec - per eseguire un comando sui nodi Console.
force-leave - costringendo un membro del cluster a lasciare il cluster.
info - ci fornisce le informazioni di debug per gli operatori.
join - per fare in modo che un agente Console si unisca al cluster.
keygen - per generare una nuova chiave di crittografia.
keyring - per gestire le chiavi di crittografia del livello di gossip.
kv - per interagire con l'archivio valori-chiave.
leave - di lasciare il Console cluster e spegnerlo senza forza.
lock - per eseguire un comando per tenere premuto un lucchetto.
maint - per controllare il nodo o la modalità di manutenzione del servizio.
members - elenca i membri di un cluster Console.
monitor - trasmette i log da un agente Console.
operator - ci fornisce un cluster di strumenti per gli operatori Console.
reload - attiva l'agente per ricaricare i file di configurazione.
rtt - stima il tempo di andata e ritorno della rete tra i nodi.
snapshot - salva, ripristina e ispeziona le istantanee dello stato del server Consul.
version - per stampare la versione attuale di Console.
watch - Fare attenzione ai cambiamenti nel Console.
Modello di console
Il console-template ci fornisce un demone che interroga l'istanza di Consul e aggiorna un numero qualsiasi di modelli specificati sul file system. Il console-template può facoltativamente eseguire comandi arbitrari al termine del processo di aggiornamento. Questa opzione ci aiuta a configurare il cluster di console senza fare tutto manualmente da soli.
Il modello del console deve essere formato su /tmp/<name-of-file>.conf.tmpfl. La lingua in cui è scritto il modello secondoHashicorp Configuration Language (HCL).
Puoi scaricare il modello di console da questa pagina .
Provalo utilizzando il seguente comando:
$ ./consul-template -h
L'output sarebbe come mostrato nello screenshot seguente.
Se desideri spostare questo binario in uno spazio più prominente, in modo che sia disponibile per l'utente ogni volta. Puoi digitare i seguenti comandi:
$ chmod +x consul-template $ sudo mv consul-template /usr/share/bin/
A scopo dimostrativo, utilizzeremo una configurazione di esempio di nginxda utilizzare come nostro servizio. Puoi provare altre demo suhttps://github.com/hashicorp/consul-template/tree/master/examples o meglio annotare il proprio modello.
$ vim /tmp/nginx.conf.ctmpl
L'output sarebbe come mostrato nello screenshot seguente.
Il file di configurazione potrebbe essere simile a:
{{range services}} {{$name := .Name}} {{$service := service .Name}} upstream {{$name}} {
zone upstream-{{$name}} 64k; {{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60
weight = 1;
{{else}}server 127.0.0.1:65535; # force a 502{{end}}
} {{end}}
server {
listen 80 default_server;
location / {
root /usr/share/nginx/html/;
index index.html;
}
location /stub_status {
stub_status;
}
{{range services}} {{$name := .Name}} location /{{$name}} {
proxy_pass http://{{$name}};
}
{{end}}
}
Ora usando il file binario del modello di console, esegui i seguenti comandi:
$ consul-template \
-template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
Con il comando precedente il processo è iniziato. Successivamente è possibile aprire un altro terminale e visualizzare il file nginx.conf completamente renderizzato utilizzando il seguente comando.
$ cat /etc/nginx/conf.d/default.conf
L'output sarebbe come mostrato nello screenshot seguente.
In questo capitolo capiremo come funzionano i microservizi con Consul. Impareremo anche come i seguenti componenti influenzano Console.
- Utilizzando docker
- Registratore di edifici per l'individuazione dei servizi
- Utilizzando rkt e Nomad
Cerchiamo ora di discutere ciascuno di questi in dettaglio.
Utilizzando Docker
Prima di cominciare, please do not use this setup in productionpoiché viene utilizzato solo a scopo dimostrativo. Docker è un servizio basato su container tramite il quale possiamo distribuire facilmente le nostre applicazioni. Per utilizzare Consul, utilizzeremo l'immagine al seguente link –0
https://hub.docker.com/r/progrium/consul/.
Si presume che il tuo sistema abbia Docker installato e configurato correttamente. Proviamo a tirare giù l'immagine dall'hub Docker, eseguendo il seguente comando:
$ docker pull progrium/consul
L'output sarebbe come mostrato nello screenshot seguente.
Pubblicheremo alcune interfacce con le loro porte (usando l'opzione -p su Docker) nel modo seguente.
- 8400 (RPC)
- 8500 (HTTP)
- 8600 (DNS)
Inoltre, come per il pull effettuato, imposteremo il nome del nome host come node1Puoi cambiarlo in qualsiasi cosa tu voglia usando il -h flag con un tuo nome host come mostrato di seguito.
$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul
-server -bootstrap
L'output sarebbe come mostrato nello screenshot seguente.
Puoi anche abilitare la modalità UI per il Console usando:
$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul
-server -bootstrap -ui-dir /ui
È possibile controllare l'output basato sull'interfaccia utente su http://localhost:8500. Lo screenshot seguente fornisce un'idea migliore dell'output basato sull'interfaccia utente.
Per utilizzare console su vari contenitori Docker su nodi diversi, possiamo eseguire i seguenti comandi su nodi diversi:
Su Node1
$ docker run -d --name node1 -h node1 progrium/consul -server -bootstrap-expect 3
Dove, -bootstrap-expect 3 significa che il server console attenderà fino a quando non ci saranno 3 peer connessi prima di eseguire il bootstrap automatico e diventare un cluster funzionante.
Prima di andare oltre, dobbiamo ottenere l'IP interno del contenitore ispezionando il contenitore. Per il nostro utilizzo, scopo del caso, dichiareremo il file$ JOIN_IP.
$ JOIN_IP = "$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"
Su Node2
Quindi, iniziamo Node2 e diciamogli di unirsi a Node1 usando la variabile dichiarata nel programma sopra.
$docker run -d --name node2 -h node2 progrium/consul -server -join $JOIN_IP
Su Node3
$ docker run -d --name node3 -h node3 progrium/consul -server -join $JOIN_IP
Registratore di edifici per l'individuazione dei servizi
Registrator registra e annulla automaticamente la registrazione dei servizi per qualsiasi container Docker ispezionando i container non appena sono online. Il registratore che stiamo per utilizzare attualmente supporta i registri dei servizi collegabili, che attualmente includonoConsul, Etcd e SkyDNS2. L'utilizzo di Registrator è altamente raccomandato quando stiamo interagendo con diversi servizi sulla rete.
$ docker pull gliderlabs/registrator:latest
L'output sarebbe come mostrato nello screenshot seguente.
$ docker run -d \
--name = registrator \
--net = host \
--volume = /var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator:latest \
consul://localhost:8500
L'output sarebbe come mostrato nello screenshot seguente.
L'output che hai ricevuto è l'ID del Docker Container che hai appena avviato. È possibile verificare se il contenitore è in esecuzione o meno utilizzando il comando -
$ docker ps -a
L'output sarebbe come mostrato nello screenshot seguente.
È inoltre possibile visualizzare i log di Registrator utilizzando il seguente comando.
$ docker logs registrator
Utilizzando rkt e Nomad
Rkt è un altro servizio basato su container, che puoi utilizzare nel tuo ambiente. È costruito daCoreOS. La ragione principale per costruire rkt era migliorare la sicurezza che era uno dei problemi di crisi per Docker quando era ancora in fase di sviluppo nel 2013-14.
Per quanto riguarda Console, possiamo utilizzare Rkt Registrator per lavorare sulla scoperta del servizio con Console. Questo particolare progetto Registrator, coperto da rkt, è in fase di sviluppo ed ènot recommended for production level use.
Puoi controllare se rkt è installato o meno, andando sul suo percorso ed eseguendo il seguente comando.
$ ./rkt
È possibile controllare l'output per verificare se è installato correttamente o meno come mostrato nello screenshot seguente.
Per provare rkt e Consul, controlla - https://github.com/r3boot/rkt-registrator.
Strumento nomade
Una delle opzioni più comunemente utilizzate e preferite è lo strumento Nomad. Nomad è uno strumento per la gestione di un cluster di macchine e l'esecuzione di applicazioni su di esse. È simile aMesos o Kubernetes. Per impostazione predefinita, Nomad copre il Docker e il driver rkt al suo interno. Quindi, se stai cercando una distribuzione su larga scala di container con Consul. Nomad potrebbe essere una buona soluzione. Check out -https://www.nomadproject.io/docs/drivers/rkt.html per ulteriori informazioni su Nomad.
In questo capitolo, discuteremo di come vengono utilizzati i seguenti componenti in Console.
- Bootstrap automatico
- Bootstrap manuale
- Utilizzo dell'inoltro DNS
- Caching DNS
Cerchiamo ora di discutere ciascuno di questi in dettaglio.
Avvio automatico
Il bootstrap è una delle caratteristiche principali di Consul. Quando installi console per la prima volta, viene automaticamente configurato per rilevare, identificare e unire i nodi che incontra. Durante la formazione del cluster, il bootstrap automatico è una caratteristica incorporata di Consul. Per ottenere maggiori informazioni su console, il modo migliore è utilizzare il comando seguente:
$ sudo consul info
L'output sarebbe come mostrato nello screenshot seguente.
Questo comando mostrerà l'effettivo funzionamento del console in real working scenarios. Mostrerà l'algoritmo Raft funzionante in Console. Il comando di avvio automatico può essere mostrato utilizzando il seguente comando:
$ consul agent -server -data-dir = ”/tmp/consul” -bootstrap-expect 3
Automatic bootstrapping cannot be done in -dev mode.
Questa opzione informa il Console del numero previsto di nodi del server e si avvia automaticamente quando i server sono disponibili.
Avvio manuale
Il bootstrap manuale è una vecchia e utile funzionalità di Consul. In realtà, durante la versione precedente di Consul, il bootstrap deve essere eseguito manualmente durante l'installazione e l'utilizzo di console per la prima volta. Successivamente, ci si rese conto che non era possibile eseguire questa operazione da riga di comando in momenti diversi. Quindi, è stato introdotto il bootstrap automatico. È sempre possibile utilizzare il bootstrap manualmente utilizzando i seguenti comandi.
In this case, we will assume that a 3-node consul cluster is to be built.
Sono disponibili due opzioni per eseguire il bootstrap manuale
Esecuzione di comandi su 2 nodi: sul nodo B e sul nodo C puoi eseguire le seguenti operazioni:
$ consul join <Node A Address>
Comando in esecuzione su 1 nodo -
$ consul join <Node B Address> <Node C Address>
Utilizzo dell'inoltro DNS
Il DNS è servito da port 53. L'inoltro DNS può essere eseguito utilizzandoBIND, dnsmasq e iptables. Per impostazione predefinita, il Consul agent esegue un server DNS in ascolto sulla porta 8600. Inviando le richieste DNS al server DNS del Consul agent, puoi ottenere l'indirizzo IP di un nodo che esegue il servizio a cui sei interessato.
L'interfaccia DNS di Consul rende disponibili le informazioni sulla porta per un servizio tramite SRV records. Senza aggiungere manualmente la logica nel codice, in genere si è limitati solo alle informazioni sull'indirizzo IP (cioè un record) del servizio che si sta richiedendo.
L'opzione migliore è disporre di più server BIND, ciascuno con un agente Consul in locale. Qualsiasi richiesta ricevuta da un server BIND verrà inoltrata al server DNS di Consul Agent locale.
Utilizzando Bind
Possiamo usare il DNS Forwarding usando la funzione Bind. Può essere fatto utilizzando il seguente comando.
$ sudo apt-get install bind9 bind9utils bind9-doc
L'output sarebbe come mostrato nello screenshot seguente.
Modifichiamo il file /etc/bind/named.conf con il seguente comando.
$ sudo vim /etc/bind/named.conf
Nel file, aggiungi le seguenti righe sotto l'ultima riga del codice.
options {
directory "/var/cache/bind";
recursion yes;
allow-query { localhost; };
forwarders {
8.8.8.8;
8.8.4.4;
};
dnssec-enable no;
dnssec-validation no;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
include "/etc/bind/consul.conf";
L'output sarebbe come mostrato nello screenshot seguente.
Puoi prendere il seguente comando Bind per configurare Consul.
$ sudo vim /etc/bind/consul.conf
Aggiungi le seguenti righe quando crei il file:
zone "consul" IN {
type forward;
forward only;
forwarders { 127.0.0.1 port 8600; };
};
Ora puoi iniziare a eseguire il tuo consul agent utilizzando il seguente comando. (Ricordarsi di riavviare anche il servizio bind9.)
$ sudo service bind9 restart $ consul agent -server -bootstrap-expect 1 -data-dir = /tmp/consul -configdir = [Path]
Il sistema deve essere configurato per inviare query al server DNS dell'agente Consul locale. Questo viene fatto aggiornando ilresolv.conffile sul sistema in modo che punti a 127.0.0.1. Nella maggior parte dei casi, Console dovrà essere configurato per funzionare sulla porta 53.
È possibile aggiungere le seguenti informazioni a /etc/resolv.conf:
nameserver 127.0.0.1
Caching DNS
Consul fornisce tutti i risultati DNS con un valore "0 TTL" (Time to Live). Ciò impedisce qualsiasi memorizzazione nella cache. Tuttavia, a causa dei valori TTL, può essere impostato per consentire la memorizzazione nella cache dei risultati DNS con il downstream di Consul. Valori TTL più elevati riducono il numero di ricerche sui server Consul e velocizzano le ricerche per i client, a costo di risultati sempre più obsoleti.
A tale scopo, utilizzeremo la cache DNS utilizzando il metodo seguente:
$ sudo apt-get install dnsmasq
L'output sarebbe come mostrato nello screenshot seguente.
Ora possiamo eseguire una configurazione molto semplice:
$ echo "server = /consul/127.0.0.1#8600" > /etc/dnsmasq.d/10-consul
Tutto ciò che stiamo facendo qui è specificare che le richieste DNS per i servizi di console, che devono essere gestite dal server DNS su 127.0.0.1 sulla porta 8600. A meno che non si cambino le impostazioni predefinite della console, dovrebbe funzionare.
In casi normali, dovrebbe essere usato il seguente comando.
$ dig @127.0.0.1 -p 8600 web.service.consul
Con Dnsmasq, dovresti usare il seguente comando.
$ dig web.service.consul
L'output sarebbe come mostrato nello screenshot seguente.
In questo capitolo impareremo come interrogare i nodi con le seguenti funzioni:
- Utilizzando dig
- Utilizzando il comando Monitor
- Utilizzando il comando Watch
- Registrando servizi esterni
Cerchiamo di comprendere in dettaglio ciascuna di queste funzioni.
Utilizzando Dig
Il console ascolta 127.0.0.1:8600 per le query DNS nel console. Il modo in cui determina quali nodi sono disponibili per fornire un servizio utilizza controlli che possono essere:
Uno script che viene eseguito e restituisce un file nagios compliant code.
Un controllo HTTP che restituisce un codice di risposta HTTP.
Un controllo TCP che verifica se una porta è aperta.
Il comando generale per provare dig è -
$ dig @127.0.0.1 -p <port> <service-name>.consul
Ora proviamo un campione dig comando -
$ dig @127.0.0.1 -p 8600 web.service.consul
L'output sarebbe come mostrato nello screenshot seguente.
Utilizzo del comando Monitor
Viene utilizzato per connettersi e mostrare i log di un agente Consul in esecuzione. Questo comando mostrerà i registri recenti. Consente inoltre di registrare l'agente a un livello di registrazione relativamente alto. Consiste di vari livelli di registro, che puoi seguire, come: Trace, Debug, Info, Warn ed Err.
Proviamo il seguente comando:
$ consul monitor
L'output sarebbe come mostrato nello screenshot seguente.
È inoltre possibile impostare il comando monitor utilizzando i comandi secondari come -log-level e -rpc-address. Per impostazione predefinita, l'indirizzo della RPC è 127.0.0.1:8400. Per maggiori info, clicca qui .
Utilizzo del comando Watch
Questo comando ci fornisce un meccanismo per controllare i cambiamenti nell'elenco di nodi, membri del servizio, valore chiave, ecc. Richiama anche un processo con i valori più recenti della vista. Se non viene specificato alcun processo, vengono elaborati i valori correntiSTDOUT, che può essere un modo utile per esaminare i dati in Consul. La guida del comando Consul Watch ha una varietà di opzioni diverse, come mostrato nella seguente schermata:
Proviamo una demo con -type = service come mostrato nel seguente comando.
$ consul watch -type = service -service = consul
Per ulteriori informazioni su questo argomento, fare clic qui .
Registrando servizi esterni
Una volta registrata, l'interfaccia DNS sarà in grado di restituire i "record A" o i record CNAME appropriati per il servizio. Registriamo un servizio esterno, come Amazon, come mostrato nel seguente blocco di codice e anche nello screenshot.
$ sudo curl -X PUT -d '{"Datacenter": "dc1", "Node": "amazon",
"Address": "www.amazon.com",
"Service": {"Service": "shop", "Port": 80}}'
http://127.0.0.1:8500/v1/catalog/register
Il comando precedente specifica un servizio chiamato come negozio. Questo nodo è chiamato amazon con il suo URL disponibile su www.amazon.com sulla porta 80. Controlliamo l'output su console per assicurarci di aver installato correttamente questo servizio. Per questo, apri la finestra del browser su localhost: 8500.
Per rimuovere il servizio, possiamo semplicemente usare il seguente comando.
$ curl -X PUT -d '{"Datacenter": "dc1", "Node": "amazon"}'
http://127.0.0.1:8500/v1/catalog/deregister
Controlliamo l'interfaccia utente come mostrato nello screenshot seguente.
In questo capitolo apprenderemo gli eventi di failover in Console. Questo sarà fatto con l'aiuto delle seguenti funzionalità:
- Errore del singolo cluster
- Jepsen Testing
- Errore di più cluster
- Scattare istantanee
Cerchiamo di capire ciascuno di questi in dettaglio.
Errore del singolo cluster
In un singolo errore del cluster, il cluster posizionato in uno dei data center inizia a non funzionare. In ogni caso, è importante assicurarsi che in caso di failover il sistema non possa solo prevenirlo, ma anche avere un backup su cui fare affidamento. Per prevenire gli eventi di Console Failover, useremo qualcosa chiamato come Consul-alert. Il progetto principale può essere trovato su -https://github.com/AcalephStorage/consul-alerts.
Consul-alerts è un demone altamente disponibile per l'invio di notifiche e promemoria basati sui controlli di integrità del Console. Questo progetto esegue un daemon e un'API su localhost: 9000 e si connette all'agente console locale (localhost: 8500) con il datacenter predefinito (dc1).
Esistono due metodi per iniziare con il progetto. Il primo metodo è installarlo tramiteGO. Per gli utenti che hanno installato e configurato GO, possono seguire i passaggi indicati di seguito:
$ go get github.com/AcalephStorage/consul-alerts $ go install
$ consul-alerts start
L'ultimo comando può essere facilmente utilizzato per sovrascrivere le porte predefinite per avviso console, opzione datacenter, token console-acl, ecc. Il comando può anche essere scritto come indicato di seguito:
$ consul-alerts start --alert-addr = localhost:9000 --consul-addr = localhost:8500
--consul-dc = dc1 --consul-acl-token = ""
Il secondo metodo prevede che l'utente utilizzi Docker. Entrambi i metodi sono ugualmente utili in diversi scenari. Per utilizzare Consul-alerts su Docker, estraiamo l'immagine dall'hub Docker utilizzando il seguente comando.
$ docker pull acaleph/consul-alerts
Nel metodo Docker, possiamo considerare le seguenti tre opzioni:
- Utilizzando Consul Agent che è costruito nel container stesso.
- Utilizzando il Consul Agent in esecuzione su un altro Docker Container.
- Utilizzo degli avvisi di console per collegarsi a un'istanza di console remota.
Discutiamo ora entrambi in dettaglio.
Utilizzando Consul Agent che è costruito nel container stesso
Avviamo il console agent utilizzando il seguente comando:
$ docker run -ti \
--rm -p 9000:9000 \
--hostname consul-alerts \
--name consul-alerts \
--entrypoint = /bin/consul \
acaleph/consul-alerts \
agent -data-dir /data -server -bootstrap -client = 0.0.0.0
Qui, stiamo ignorando il entrypoint per Console come menzionato dalla bandiera --entrypoint. Insieme ad esso, stiamo avviando il client menzionando la porta utilizzata utilizzando-p flag, data directory /data utilizzando il flag -data-dir e client come 0.0.0.0.
In una nuova finestra di terminale, avvia l'opzione di avvisi di console.
$ docker exec -ti consul-alerts /bin/consul-alerts start --alertaddr = 0.0.0.0:9000
--log-level = info --watch-events --watch-checks
Qui, nei passaggi precedenti, stiamo eseguendo gli avvisi del console per iniziare in modalità interattiva. La porta dell'indirizzo di avviso è indicata come 9000. L'orologio controlla se gli agenti del console sono abilitati o meno insieme ai controlli del console.
Possiamo vedere chiaramente che gli avvisi del console sono stati avviati facilmente e ha registrato un nuovo controllo sanitario con l'aggiunta dell'agente del console. Il datacenter viene considerato come dc1, che può essere modificato in base all'utente.
Utilizzando il Consul Agent in esecuzione su un altro Docker Container
Qui puoi utilizzare qualsiasi tipo di immagine console da eseguire sul Docker Container. Utilizzando l'immagine degli avvisi della console, possiamo collegare facilmente il contenitore degli avvisi della console con il contenitore degli avvisi della console. Questo viene fatto usando il--link flag.
Note - Prima di utilizzare il seguente comando, assicurati che il contenitore di console sia già in esecuzione su un altro terminale.
$ docker run -ti \
-p 9000:9000 \
--hostname consul-alerts \
--name consul-alerts \
--link consul:consul \
acaleph/consul-alerts start \
--consul-addr=consul:8500 \
--log-level = info --watch-events --watch-checks
Utilizzo degli avvisi di console per collegarsi a un'istanza di console remota
Qui, dovremmo utilizzare il seguente comando per utilizzare gli avvisi del console per collegarsi a un'istanza di console remota.
$ docker run -ti \
-p 9000:9000 \
--hostname consul-alerts \
--name consul-alerts \
acaleph/consul-alerts start \
--consul-addr = remote-consul-server.domain.tdl:8500 \
--log-level = info --watch-events --watch-checks
Jepsen Testing
Jespen è uno strumento scritto per testare la tolleranza parziale e il networking in qualsiasi sistema. Verifica il sistema creando alcune operazioni casuali sul sistema.Jepsen is written in Clojure. Sfortunatamente, per la demo, i test di Jepsen richiedono un enorme livello di formazione di cluster con i sistemi di database e quindi non rientrano nell'ambito di applicazione per essere coperti qui.
Jepsen funziona configurando l'archivio dati in prova su cinque host diversi. Crea un client, per l'archivio dati sottoposto a test, indicando ciascuno dei cinque nodi per inviare le richieste. Crea anche una serie speciale di client chiamata "Nemesis", che devastano il cluster come, tagliando i collegamenti tra i nodi utilizzandoiptables. Quindi procede a effettuare richieste simultaneamente su diversi nodi, partizionando e riparando alternativamente la rete.
Alla fine dell'esecuzione del test, cura il cluster, attende il ripristino del cluster e quindi verifica se lo stato intermedio e finale del sistema è quello previsto. Alcuni estratti sono stati presi da qui .
Per maggiori informazioni sui test Jepsen, controlla qui .
Errore di più cluster
Durante un evento di failover di più cluster, i cluster distribuiti in più datacenter non riescono a supportare i servizi supportati dal cliente. Consul ci consente di garantire che, quando si verifica una di queste condizioni, Consul abbia funzionalità che ti aiutano ad abilitare i servizi in questo tipo di condizioni.
Affinché ciò avvenga, esamineremo un progetto che ci aiuti a consentire la replica di Console da un cluster a più cluster. Il progetto ci fornisce un modo per replicare le coppie K / V su più Data Center Consul utilizzando il demone di replica console. Puoi visualizzare questo progetto Hashicorp su -https://github.com/hashicorp/consul-replicate. Alcuni dei prerequisiti per provare questo progetto includono:
- Golang
- Docker
- Consul
- Git
Cominciamo con i seguenti comandi:
Note - Prima di eseguire il seguente comando, assicurati di avere Git correttamente installato e configurato sulla tua macchina.
$ git clone - https://github.com/hashicorp/consul-replicate.git
L'output sarebbe come mostrato nello screenshot seguente.
$ cd consul-replicate $ make
L'output sarebbe come mostrato nello screenshot seguente.
Se hai qualche problema con la creazione del file binario, puoi anche provare a estrarre manualmente le immagini Docker usando il seguente comando:
$ docker pull library/golang:1.7.4
Il comando sopra menzionato creerà bin / consul-replicate, che può essere richiamato come binario. La tabella seguente mostra l'elenco completo dei sottocomandi che copre:
Opzione | Descrizione |
---|---|
auth | Il nome utente di autenticazione di base (e la password opzionale), separati da due punti. Non esiste un valore predefinito. |
console * | La posizione dell'istanza di console da interrogare (può essere un indirizzo IP o un FQDN) con la porta. |
max-stantio | La massima stoltezza di una query. Se specificato, Consule distribuirà il lavoro su tutti i server anziché solo sul leader. Il valore predefinito è 0 (nessuno). |
ssl | Usa HTTPS mentre parli con il Console. Richiede che il server della console sia configurato per le connessioni protette del server. Il valore predefinito è falso. |
ssl-verify | Verifica i certificati durante la connessione tramite SSL. Ciò richiede l'uso di -ssl. Il valore predefinito è vero. |
syslog | Invia l'output del log a syslog (oltre a stdout e stderr). Il valore predefinito è falso |
syslog-facility | La funzionalità da utilizzare durante l'invio a syslog. Ciò richiede l'uso di -syslog. L'impostazione predefinita è LOCALE |
gettone | Il token API Consul. Non esiste un valore predefinito. |
prefisso * | Il prefisso di origine che include il, con le opzioni prefisso di destinazione, separato da due punti (:). Questa opzione è additiva e può essere specificata più volte per la replica di più prefissi. |
escludere | Un prefisso da escludere durante la replica. Questa opzione è additiva e può essere specificata più volte per escludere più prefissi. |
aspettare | Il minimo (: massimo) per attendere la stabilità prima di replicare, separato da due punti (:). Se il valore massimo opzionale viene omesso, si presume che sia 4 volte il valore minimo richiesto. Non esiste un valore predefinito. |
riprova | La quantità di tempo da attendere se Consule restituisce un errore durante la comunicazione con l'API. Il valore predefinito è 5 secondi. |
config | Il percorso di un file di configurazione o directory dei file di configurazione su disco, relativo alla directory di lavoro corrente. I valori specificati sulla CLI hanno la precedenza sui valori specificati nel file di configurazione. Non esiste un valore predefinito. |
a livello di registro | Il livello di registro per l'output. Questo si applica alla registrazione stdout / stderr così come alla registrazione syslog (se abilitata). I valori validi sono "debug", "info", "warn e" err ". Il valore predefinito è" warn ". |
una volta | Esegui Consule Replicate una volta ed esci (al contrario del comportamento predefinito di daemon). (Solo CLI) |
versione | Visualizza le informazioni sulla versione ed esci. (Solo CLI) |
Scattare istantanee
Gli snapshot sono una parte essenziale e importante per la gestione del cluster Consul in caso di backup. Per impostazione predefinita, Console ci fornisce un modo per salvare le istantanee del cluster di console. Console ci fornisce quattro comandi secondari separati utilizzando i quali possiamo usare console per creare istantanee, che sono:
- Salvataggio istantanea del console
- Agente snapshot del console
- Ispezione istantanea del console
- Ripristino snapshot Console
Cerchiamo di capire ciascuno di questi in dettaglio.
Salvataggio istantanea del console
Questo comando è impostato per recuperare un'istantanea atomica point-in-time dello stato dei server Consul, che include voci chiave / valore, catalogo servizi, query preparate, sessioni e ACL. L'istantanea viene salvata nel nome file menzionato.
$ consul snapshot save <name-of-the-file>.snap
L'output sarebbe come mostrato nello screenshot seguente.
Per verificare la presenza del file nella directory corrente, verificarlo eseguendolo nella directory corrente. Nel caso di un nodo non leader, eseguire il seguente comando:
$ consul snapshot save -stale <name-of-file>.snap
Consulente Snapshot
Questo sottocomando avvia un processo che acquisisce istantanee dello stato dei server Consul e le salva localmente o le invia a un servizio di archiviazione remoto opzionale.
Ispezione istantanea del console
Viene utilizzato per ispezionare l'istantanea point-in-time dello stato dei server Consul, che include voci chiave / valore, catalogo servizi, query preparate, sessioni e ACL. Il comando può essere eseguito come segue:
Note - Ricorda che il seguente comando può essere eseguito solo nella Directory, dove viene salvata l'istantanea.
$ consul snapshot save <name-of-the-file>.snap
L'output sarebbe come mostrato nello screenshot seguente.
Ripristino istantanea console
Il comando snapshot restore viene utilizzato per ripristinare un'istantanea point-in-time dello stato dei server Consul, che include voci chiave / valore, catalogo servizi, query preparate, sessioni e ACL. L'istantanea viene letta dal file di backup salvato.
Note - Ricorda che il seguente comando può essere eseguito solo nella directory in cui viene salvata l'istantanea.
$ consul snapshot restore <name-of-the-file>.snap
L'output sarebbe come mostrato nello screenshot seguente.
Se stai lavorando su Consul con AWS, questo progetto potrebbe aiutarti a risparmiare tempo - https://github.com/pshima/consul-snapshot.
In questo capitolo impareremo come utilizzare l'interfaccia utente (interfaccia utente) di Console e comprenderne i componenti importanti.
Console UISetup
Consul ci fornisce un'utile interfaccia utilizzando la quale possiamo gestire le cose a nostro agio. Puoi facilmente visualizzare l'interfaccia utente del console su qualsiasi porta desideri. L'interfaccia utente di Console può essere divisa in tre parti importanti, che sono:
ACL - Set di regole per bloccare facilmente i tuoi cluster facilmente
Datacenter - Ti consente di gestire facilmente i data center e di lavorare con il tuo cluster.
Nodes - Aggiornamento rapido sui nodi utilizzati dal cluster Consul
Utilizzo dell'interfaccia utente di Console
Per utilizzare l'interfaccia utente di Console, dobbiamo installare il pacchetto dell'interfaccia utente fornito dal team di Hashicorp sul sito del progetto di Console. Quindi, proviamo a scaricarlo dalla fonte e iniziamo a usarlo. Si prega di utilizzaresudo prima di ogni comando nel caso in cui il file Permission Denied error è mostrato.
$ mkdir /opt/consul-ui
$ cd /opt/consul-ui $ wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_web_ui.zip
$ unzip consul_0.7.2_web_ui.zip $ rm consul_0.7.2_web_ui.zip
È possibile visualizzare l'output dell'interfaccia utente di Console utilizzando il seguente comando su qualsiasi agente.
$ consul agent -dev -ui -data-dir /tmp/consul
L'output sarebbe come mostrato nello screenshot seguente.
Per impostazione predefinita, osserverai l'interfaccia utente in http://localhost:8500/ui. La parte / ui è la stessa dell'API HTTP del console.
Per utilizzare l'interfaccia utente di Console su un Docker, eseguire il seguente comando per l'immagine Docker (progrium / console):
$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul
-server -bootstrap -ui-dir /ui
L'output sarebbe come mostrato nello screenshot seguente.
Caratteristiche dell'interfaccia utente di Console
Puoi iniziare a navigare nell'interfaccia utente di Console esaminando alcune delle sue funzionalità, come:
- Nodes
- ACL
- Key/Value
- Settings
- Datacenter
- Services
Cerchiamo di capire ciascuno di questi in dettaglio.
Nodi
L'utilizzo di base dei nodi nel dashboard dell'interfaccia utente può essere osservato come mostrato nella schermata seguente.
Quando fai clic su un nodo particolare come node1 nel nostro caso, possiamo vedere che le informazioni sul nodo possono essere facilmente viste come:
Puoi annullare la registrazione del nodo in qualsiasi momento da Console. Semplifica la gestione dei nodi dal punto di vista di un cluster ad alto livello di console.
ACL (elenchi di controllo di accesso)
Una delle migliori caratteristiche di Consul sono le liste di controllo degli accessi. Puoi scrivere le tue diverse autorizzazioni per diversi cluster in vari data center. Uno dei modi più semplici per attivare gli ACL è aggiungere un nuovo file json nella directory dei dati di Consul. Per abilitare e aggiornare l'ACL, è possibile aggiungere il token ACL principale nel campo nelle impostazioni e aggiornarlo utilizzando la scheda ACL
Per ulteriori informazioni, controlla qui
Chiave / Valore
L'opzione Valore chiave per Console è presente per impostazione predefinita nell'interfaccia utente di Console. Puoi creare la tua chiave utilizzando l'interfaccia utente di Console. Fornisce inoltre un'opzione per creare una cartella in cui archiviare la chiave.
impostazioni
Puoi controllare l'opzione delle impostazioni dell'interfaccia utente di Console nella parte in alto a destra dello schermo. Facendo clic su tale opzione, puoi facilmente vedere che Consul ti fornisce un'opzione che consente di configurare le sue impostazioni di archiviazione locale e il sistema di token per la verifica.
Banca dati
L'opzione del datacenter può essere facilmente modificata e cambiata a scelta. L'interfaccia utente di Console aggiorna automaticamente il rilevamento del numero di data center su cui sta lavorando.
Servizi
L'interfaccia utente di Console fornisce anche una scheda Servizi per configurare e visualizzare i servizi attualmente implementati utilizzando Consul. Ci fornisce un'opzione per configurare i servizi a seconda dei nodi.
In questo capitolo impareremo come utilizzare Consul su AWS (Amazon Web Services).
Caratteristiche di AWS
Alcune funzionalità utili durante l'utilizzo di Consul in AWS sono:
- Facile da mantenere gli stati del cluster.
- Scalabilità e alta disponibilità.
- Ottima interfaccia utente per la gestione dei cluster su più datacenter.
- Opzioni della riga di comando facili da usare.
Se stai cercando una soluzione con la quale possiamo distribuire facilmente Consul su AWS con Docker. Controlla il seguente link -https://github.com/dwmkerr/terraform-consul-cluster.
Distribuzione AWS
Per l'utilizzo di AWS, possiamo iniziare creando un VPC per esso. Per la distribuzione di console in AWS, utilizzeremo un modello di avvio rapido fornito dal servizio AWS. Questo modello può essere facilmente trovato su:https://aws.amazon.com/quickstart/architecture/consul/.
Per questo capitolo, si presume che tu conosca già le basi di AWS. Il modello AWS CloudFormation creerà i seguenti componenti:
UN VPC con sottoreti pubbliche e private in tre zone di disponibilità.
UN Seed Consul server e a Seed client insieme a due gruppi Auto Scaling.
Puoi scegliere di creare 3, 5 o 7 server. Il numero di client è impostato su tre per impostazione predefinita, ma è configurabile dall'utente.
Dnsmasq, che viene installato e configurato per Consul come parte dell'installazione.
Un cluster Console che utilizza bootstrap_expect opzione.
Dai un'occhiata alla seguente illustrazione per capire come i diversi componenti sono interconnessi.
Utilizzando AWS
Assicurati di aver già effettuato l'accesso alla tua infrastruttura AWS utilizzando la console web. Ora, inserisci il seguente URL nella finestra del browser. Dopo aver digitato l'URL e premuto Invio, si aprirà il sito Web di AWS.
Per questa demo, sceglieremo di distribuirlo in un nuovo VPC (Virtual Private Cloud). Puoi sempre controllare la tua gestione VPC di AWS al seguente link: https: // <awsregion> .console.aws.amazon.com / vpc / home. Per la prima volta gli utenti, la regione predefinita è l'Oregon occidentale negli Stati Uniti. Quindi, puoi visitare direttamente l'URL su - https: // us-west- 2.console.aws.amazon.com/vpc/home.
Come puoi vedere il servizio VPC di AWS è operativo e non hai VPC, cioè già in esecuzione / configurato sul tuo account AWS. Ora fai clic sull'opzione Distribuisci su AWS in un nuovo VPC o Distribuisci in un VPC esistente in base alla tua scelta. È possibile visualizzare l'opzione sul sito Web come mostrato nella seguente schermata.
Facendo clic sull'opzione sopra descritta, puoi vedere che si apre un'altra finestra, che è simile a quella mostrata di seguito.
Come puoi vedere nel modello, l'URL è già scelto per tuo conto da AWS. Ti dà anche la libertà di personalizzare il modello di formazione delle nuvole come preferisci. Puoi personalizzarlo se lo desideri e fare clic sul pulsante Avanti per procedere.
Come puoi vedere, ci sono vari valori e opzioni differenti che puoi configurare qui. Per alcune modifiche, puoi rinominarlo a tua scelta in sostituzione del nome HashiCorp-Console. Sentiti libero di modificare le altre opzioni in base alle tue esigenze.
Come puoi vedere sopra, diverse opzioni possono essere personalizzate in base alla tua scelta. Come puoi vedere nella sezione Configurazione Console, il tipo di istanza predefinito di Console Cluster èt2.medium. Puoi cambiarlo in base alla tua scelta di istanza.
Note - Compila l'intervallo consentito come 0.0.0.0/0 per consentire qualsiasi indirizzo IP.
Per impostazione predefinita, il numero di server console è tre. Puoi cambiarlo in cinque per testare più server nell'ambiente console. Sotto la configurazione di avvio rapido, puoi vedere che aS3 bucketviene anche utilizzato e denominato per impostazione predefinita come riferimento rapido. Quando hai finito con le modifiche, fai clic sul pulsante Avanti nella parte inferiore dello schermo.
Nello screenshot sopra, puoi vedere che esiste un'opzione per utilizzare i tag per una migliore identificazione e utilizzo. Oltre a ciò, ti viene anche offerta la possibilità di scegliere il ruolo IAM per fornire l'accesso ad altri al tuo stack VPC. Puoi scegliere in base alla tua scelta di opzioni.
Per opzioni più avanzate, seleziona il file advanced tab, dove puoi abilitare Amazon SNS per il tuo VPC per le sue notifiche. Passare all'opzione Avanti dopo aver completato i dettagli.
La schermata sopra mostra i dettagli rivisti dello stack di console che hai scelto. È possibile rivedere le opzioni selezionate per lo stack VPC e passare alla parte inferiore dello schermo, selezionare la casella di conferma per la creazione di risorse IAM e procedere facendo clic sul pulsante Crea per completare la formazione dello stack.
Puoi controllare l'output nella sezione CloudFormation Stack della console di gestione AWS. Come per l'output VPC, puoi anche verificarlo nella sezione VPC della Console AWS, come mostrato nello screenshot qui sotto.
Se stai solo testando il modello Consul, assicurati di eliminare le risorse che hai utilizzato. Puoi farlo facilmente eliminando lo stack CloudFormation nella sezione CloudFormation e il VPC nella dashboard VPC.