Consul è una soluzione mesh di servizi che offre un piano di controllo completo, tra cui funzionalità di segmentazione, configurazione e rilevamento dei servizi. Queste funzionalità possono essere utilizzate singolarmente in base alle esigenze oppure possono essere utilizzate insieme per creare una mesh a servizio completo. Consul opera su un piano dati e supporta sia un proxy che un modello di integrazione nativo. Consul viene fornito con un semplice proxy integrato che garantisce che tutto funzioni immediatamente. Consul supporta anche integrazioni proxy di terze parti, come Envoy.
Le caratteristiche principali di Consul includono:
- Scoperta del servizio
- Controllo dello stato di salute
- Negozio KV
- Comunicazione sicura del servizio
- Funzionalità multi-datacenter
In questo tutorial, ti mostreremo come installare un server Consul su Ubuntu 20.04.
Prerequisiti
- Un nuovo VPS Ubuntu 20.04 sulla piattaforma Atlantic.Net Cloud
- Sul tuo server è configurata una password di root
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 20.04 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 20.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
Fase 2 – Installa Consul Server
Innanzitutto, installa i pacchetti richiesti con il seguente comando:
apt-get install unzip gnupg2 curl wget -y
Quindi, scarica l'ultima versione di Consul con il seguente comando:
wget https://releases.hashicorp.com/consul/1.8.4/consul_1.8.4_linux_amd64.zip
Una volta completato il download, decomprimere il file scaricato con il seguente comando:
unzip consul_1.8.4_linux_amd64.zip
Quindi, sposta il binario console nella directory /usr/local/bin con il seguente comando:
mv consul /usr/local/bin/
Successivamente, verifica la versione di Consul utilizzando il seguente comando:
consul --version
Dovresti ottenere il seguente output:
Consul v1.8.4 Revision 12b16df32 Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
Fase 3:crea un file di servizio Consul
Innanzitutto, dovrai creare un utente e un gruppo separati per Consul. Puoi crearli con il seguente comando:
groupadd --system consul useradd -s /sbin/nologin --system -g consul consul
Quindi, crea le directory richieste con il seguente comando:
mkdir -p /var/lib/consul mkdir /etc/consul.d
Quindi, modifica la proprietà e l'autorizzazione di tali directory:
chown -R consul:consul /var/lib/consul chmod -R 775 /var/lib/consul chown -R consul:consul /etc/consul.d
Quindi, crea un file di servizio di sistema Console con il seguente comando:
nano /etc/systemd/system/consul.service
Aggiungi le seguenti righe:
[Unit] Description=Consul Service Discovery Agent After=network-online.target Wants=network-online.target [Service] Type=simple User=consul Group=consul ExecStart=/usr/local/bin/consul agent -server -ui \ -advertise=your-server-ip \ -bind=your-server-ip \ -data-dir=/var/lib/consul \ -node=consul-01 \ -config-dir=/etc/consul.d ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT TimeoutStopSec=5 Restart=on-failure SyslogIdentifier=consul [Install] WantedBy=multi-user.target
Salva e chiudi il file quando hai finito.
Nota :Fornisci l'ip del server, il percorso della directory dei dati e la directory di configurazione corretti che hai creato in precedenza.
Quindi, ricarica il demone systemd con il seguente comando:
systemctl daemon-reload
Fase 4 – Configura Console Server
Innanzitutto, dovrai generare una chiave per la lunghezza e la codifica necessarie. Puoi generarlo con il seguente comando:
consul keygen
Dovresti ottenere il seguente output:
TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=
Successivamente, dovrai creare un file di configurazione Json per Consul. Puoi crearlo con il seguente comando:
nano /etc/consul.d/config.json
Fornisci l'IP del tuo server, il nome host e la chiave Consul come mostrato di seguito:
{ "bootstrap": true, "server": true, "log_level": "DEBUG", "enable_syslog": true, "datacenter": "server1", "addresses" : { "http": "0.0.0.0" }, "bind_addr": "your-server-ip", "node_name": "ubuntu2004", "data_dir": "/var/lib/consul", "acl_datacenter": "server1", "acl_default_policy": "allow", "encrypt": "TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=" }
Salva e chiudi il file quando hai finito.
Successivamente, avvia il servizio Consul e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start consul systemctl enable consul
Successivamente, verifica lo stato del Console con il seguente comando:
systemctl status consul
Dovresti ottenere il seguente output:
● consul.service - Consul Service Discovery Agent Loaded: loaded (/etc/systemd/system/consul.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 10:35:52 UTC; 4min 11s ago Main PID: 5511 (consul) Tasks: 9 (limit: 2353) Memory: 17.4M CGroup: /system.slice/consul.service └─5511 /usr/local/bin/consul agent -server -ui -advertise=your-server-ip -bind=your-server-ip -data-dir=/var/lib/consul -node=con>
A questo punto il server Consul è avviato ed è in ascolto sulla porta 8500. Puoi verificarlo con il seguente comando:
ss -plunt | grep 8500
Dovresti ottenere il seguente output:
tcp LISTEN 0 4096 *:8500 *:* users:(("consul",pid=5511,fd=17))
Passaggio 5 – Configura Nginx come proxy inverso
Successivamente, è una buona idea installare e configurare Nginx come proxy inverso per accedere al Console sulla porta 80.
Innanzitutto, installa il server Nginx con il seguente comando:
apt-get install nginx -y
Una volta installato, rimuovere il file di configurazione dell'host virtuale predefinito di Nginx:
rm -rf /etc/nginx/sites-enabled/default
Quindi, crea un file di configurazione dell'host virtuale Consul con il seguente comando:
nano /etc/nginx/sites-available/consul.conf
Aggiungi le seguenti righe:
server { listen 80 ; server_name your-server-ip; root /var/lib/consul; location / { proxy_pass http://127.0.0.1:8500; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } }
Salva e chiudi il file, quindi attiva l'host virtuale con il seguente comando:
ln -s /etc/nginx/sites-available/consul.conf /etc/nginx/sites-enabled/
Quindi, controlla Nginx per eventuali errori di sintassi con il seguente comando:
nginx -t
Dovresti ottenere il seguente output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Quindi, riavvia il servizio Nginx con il seguente comando:
systemctl restart nginx
Se ricevi errori, dovrai modificare il file di configurazione del server predefinito di Nginx e impostare server_names_hash_bucket_size:
nano /etc/nginx/nginx.conf
Aggiungi la seguente riga sotto http { :
server_names_hash_bucket_size 64;
Salva e chiudi il file, quindi riavvia il servizio Nginx per applicare le modifiche:
systemctl restart nginx
Fase 6 – Accedi al dashboard di Console
Quindi, apri il tuo browser web e accedi all'interfaccia web di Consul utilizzando l'URL http://your-server-ip/ui . Dovresti vedere la dashboard Consul nella pagina seguente:
Fai clic sui Nodi per elencare i nodi attivi nel tuo server come mostrato di seguito:
Conclusione
Congratulazioni! Hai installato con successo il server Consul su Ubuntu 20.04. Ora puoi aggiungere più nodi client al server Consul e iniziare a gestirli dal dashboard Consul. Per ulteriori informazioni, è possibile visitare la documentazione Consul. Inizia con Consul su VPS Hosting da Atlantic.Net!