Introduzione
Consul di HashiCorp è uno strumento versatile che svolge funzioni multiple in un ambiente moderno DevOps. È ampiamente utilizzato per la scoperta di servizi, i check-up della salute, il balancing del carico e, in particolar modo, come un key-value (KV) store distribuito. Il KV store in Consul è perfetto per la memorizzazione di dati di configurazione dinamici, degli indicatori di funzione, segreti e metadati in un modo altamente disponibile e coerente attraverso l’infrastruttura in modo che possa essere accessibile in maniera dinamica dai servizi in un sistema distribuito. L’utilizzo di Docker per configurare il KV store di Consul consente una configurazione rapida e ambienti isolati, rendendolo ideale per test e sviluppo.
Questo tutorial vi guiderà attraverso il processo di impostazione e configurazione del KV store di Consul usando Docker. By the end, you will have a fully functional Consul instance running in Docker, with KV pairs configured and accessible. Questa configurazione è essenziale per la configurazione dinamica del servizio e la gestione dello stato in sistemi distribuiti.
Prerequisiti
Prima di iniziare, assicuratevi di avere i seguenti elementi:
- Un account DigitalOcean Cloud..
- Un server in esecuzione su Ubuntu con un utente non root che ha privilegi di sudo e un firewall attivo. Per istruzioni su come impostare questa configurazione, scegli la tua distribuzione dalla questa lista e segui il nostro guide di configurazione iniziale del server. Assicurati di lavorare con una versione supportata di Ubuntu.
- Docker installato sul tuo droplet Ubuntu. Segui questo tutorial su Come installare e usare Docker su Ubuntu.
- Famigliarità con la riga di comando di Linux. Per una introduzione o un aggiornamento alle linee di comando, puoi visitare questo guide sulla principianti della riga di comando Linux.
- Conoscenze di base riguardanti i comandi di Docker e la gestione dei container.
Step 1 — Estrarre l’immagine Consul Docker
Prendiamo l’immagine ufficiale di Consul da Docker Hub. Questa immagine è mantenuta da HashiCorp e include tutto ciò che serve per eseguire Consul.
Accedi alla console del tuo droplet Ubuntu e esegui:
Passo 2 – Esecuzione del contenitore di Consul
Ora che l’immagine di Consul è stata scaricata, è possibile avviare un nuovo contenitore di Consul. Questo contenitore fungerà da server di Consul e permetterà di interagire con il KV store.
Per avviare il contenitore, eseguire:
Questo è ciò che questo comando fa:
-d
avvia il contenitore in modalità distaccata (in background).--name=consul-server
assegna un nome al contenitore.-e CONSUL_BIND_INTERFACE=eth0
imposta l’interfaccia di rete a cui Consul deve essere collegato. Questo è necessario per la corretta comunicazione di rete.-p 8500:8500
mappa il porto Web UI e API di Consul sul host.-p 8600:8600/udp
mappa il porto del servizio DNS per la scoperta del servizio.
Questo passo è cruciale in quanto imposta il servizio di base di Consul, che userai per configurare il KV store.
Passo 3 – Verifica dell’installazione di Consul
Per assicurarti che Consul sia in corretto funzionamento, devi verificare lo stato del contenitore e accedere all’interfaccia utente di Consul.
Prima di tutto, esegui docker ps
per elencare tutti i container in esecuzione e verificare che il container Consul sia in funzione.
Adesso, controlla se Consul è accessibile, apri un browser web e naviga a http://localhost:8500
. Dovresti vedere l’interfaccia utente di Consul.
Questo step di verifica è importante per confermare che la tua istanza di Consul sia in funzione senza problemi prima di memorizzare dati nel KV store (Step 5).
Step 4 — Configurazione del Firewall (Opzionale)
Se la tua istanza di Consul deve essere accessibile esternamente (ad esempio, da altri nodi in un cluster), devi modificare le impostazioni del firewall per consentire il traffico sulle porte necessarie.
Ad esempio, se stai correggendo Consul su una macchina cloud, potresti aver bisogno di consentire il traffico in entrata sulle porte 8500 (API HTTP) e 8600 (DNS). I comandi specifici varieranno in base alla soluzione firewall che utilizzi (UFW, iptables, ecc.).
Questo step assicura che la tua istanza di Consul sia accessibile da altre macchine, cosa essenziale per le configurazioni distribuite.
Step 5 — Memorizzazione di Coppie Chiave-Valore
Con Consul in esecuzione, ora puoi utilizzare il KV store per memorizzare dati di configurazione. È possibile aggiungere coppie chiave-valore usando il Consul CLI o la web UI.
Per memorizzare una coppia chiave-valore tramite il CLI, esegui:
Questo è ciò che questo comando fa:
-it
– Avvia il terminale interattivo dalla piattaforma locale verso il contenitore.consul kv put
– Il comando kv put scrive i dati nella posizione KV store fornita.config/db_host
– Percorso per memorizzare il valore.192.168.1.100
– Valore.
Utilizzando la Web UI,
- Navigare alla UI Consul (
http://localhost:8500
). - Cliccare sulla scheda “Key/Value”.
- Creare una nuova chiave facendo clic su “Create”.
- Inserire la chiave (ad esempio,
config/db_host
) e il valore (ad esempio,192.168.1.100
).
Questi comandi e azioni memorizzano dati di configurazione critici che i tuoi servizi possono accessare in maniera dinamica in runtime.
Step 6 — Recuperando Coppie Chiave-Valore
Una volta memorizzate alcune coppie KV, vorrai recuperarle per assicurarti che siano state memorizzate correttamente.
Utilizzando il CLI, recupera un valore usando il seguente comando:
Utilizzando la Web UI,
- Vai alla scheda “Key/Value” nella interfaccia utente di Consul.
- Trova la chiave che hai creato e clicca su di essa per vedere il valore memorizzato.
Ricercare i coppie KV è un passo necessario per verificare che i tuoi dati siano correttamente memorizzati e accessibili.
Step 7 — Persistenza dati utilizzando volumi Docker
Per default, i container Docker sono transitori, il che significa che qualsiasi dato memorizzato all’interno di essi sarà perso se il container viene rimosso. Per persistere i tuoi dati KV di Consul, dovresti usare i volumi Docker.
- Interrompi e rimuovi il container Consul corrente:
Ora, controlla i container e dovresti notare che il container Consul non è più in esecuzione.
2.Esegui un nuovo container Consul con un volume Docker collegato:
L’opzione -v consul_data:/consul/data
monta un volume Docker sul container, garantendo che il tuo KV store persista tra i riavvii del container.
Step 8 — Automazione avvio Consul (Opzionale)
Per deployments di produzione, potreste automatizzare l’avvio del contenitore di Consul utilizzando Docker Compose. Docker Compose semplifica le applicazioni multi-contenitore di Docker e rende facile la gestione dei servizi.
Creare un file docker-compose.yml
con il seguente contenuto:
Quindi, eseguire:
Questo comando avvia automaticamente Consul e assicura il suo riavvio in caso di fallimento, rendendolo più robusto per l’utilizzo in produzione.
Step 9 — Pulizia
Appena hai finito di lavorare all’istanza di Consul, dovresti pulire il tuo ambiente Docker per liberare le risorse.
Fermiamo e rimuoviamo il contenitore di Consul:
Se hai finito con Consul, puoi anche rimuovere l’immagine Docker:
La pulizia aiuta a mantenere un ambiente di sviluppo ordinato e assicura che le risorse di Docker non siano inutilizzate in modo indesiderato.
Conclusione
In questo tutorial, hai imparato come impostare e configurare il KV store di Consul usando Docker. Hai coperto l’installazione di Docker, l’esecuzione del contenitore di Consul, la configurazione del KV store, il salvataggio dei dati con i volumi di Docker e la pulizia dell’ambiente. Con questi passaggi, ora puoi utilizzare Consul per gestire dinamicamente i dati di configurazione nei tuoi sistemi distribuiti, sfruttando il potere di Docker per una facile distribuzione e gestione.
Source:
https://www.digitalocean.com/community/tutorials/how-to-configure-consul-kv-using-docker