Consul je řešení pro síť služeb, které nabízí plnohodnotnou řídicí rovinu, včetně funkcí segmentace, konfigurace a vyhledávání služeb. Tyto funkce lze použít jednotlivě podle potřeby nebo je lze použít společně pro vytvoření sítě s kompletními službami. Consul funguje na datové rovině a podporuje model proxy i nativní integrace. Consul je dodáván s jednoduchým vestavěným proxy, který zajišťuje, že vše funguje ihned po vybalení. Consul také podporuje integraci proxy třetích stran, jako je Envoy.
Mezi klíčové funkce Consul patří:
- Zjištění služby
- Kontrola stavu
- obchod KV
- Bezpečná komunikace služeb
- Možnosti více datových center
V tomto tutoriálu vám ukážeme, jak nainstalovat server Consul na Ubuntu 20.04.
Předpoklady
- Nové Ubuntu 20.04 VPS na cloudové platformě Atlantic.Net
- Na vašem serveru je nakonfigurováno heslo uživatele root
Krok 1 – Vytvoření cloudového serveru Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 20.04 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 20.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace Consul Server
Nejprve nainstalujte požadované balíčky pomocí následujícího příkazu:
apt-get install unzip gnupg2 curl wget -y
Dále si stáhněte nejnovější verzi Consul pomocí následujícího příkazu:
wget https://releases.hashicorp.com/consul/1.8.4/consul_1.8.4_linux_amd64.zip
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
unzip consul_1.8.4_linux_amd64.zip
Dále přesuňte binární soubor consul do adresáře /usr/local/bin pomocí následujícího příkazu:
mv consul /usr/local/bin/
Dále ověřte verzi Consul pomocí následujícího příkazu:
consul --version
Měli byste získat následující výstup:
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)
Krok 3 – Vytvoření souboru Consul Service
Nejprve budete muset vytvořit samostatného uživatele a skupinu pro Consul. Můžete je vytvořit pomocí následujícího příkazu:
groupadd --system consul useradd -s /sbin/nologin --system -g consul consul
Dále vytvořte požadované adresáře pomocí následujícího příkazu:
mkdir -p /var/lib/consul mkdir /etc/consul.d
Dále změňte vlastnictví a oprávnění těchto adresářů:
chown -R consul:consul /var/lib/consul chmod -R 775 /var/lib/consul chown -R consul:consul /etc/consul.d
Dále vytvořte soubor služby Consul systemd pomocí následujícího příkazu:
nano /etc/systemd/system/consul.service
Přidejte následující řádky:
[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
Po dokončení uložte a zavřete soubor.
Poznámka :Zadejte správnou IP adresu serveru, cestu k datovému adresáři a konfigurační adresář, které jste vytvořili dříve.
Dále znovu načtěte démona systemd pomocí následujícího příkazu:
systemctl daemon-reload
Krok 4 – Konfigurace Consul Server
Nejprve budete muset vygenerovat klíč potřebné délky a kódování. Můžete jej vygenerovat pomocí následujícího příkazu:
consul keygen
Měli byste získat následující výstup:
TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=
Dále budete muset vytvořit konfigurační soubor Json pro Consul. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/consul.d/config.json
Zadejte IP svého serveru, název hostitele a klíč konzula, jak je uvedeno níže:
{ "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=" }
Po dokončení uložte a zavřete soubor.
Dále spusťte službu Consul a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start consul systemctl enable consul
Dále ověřte stav konzula pomocí následujícího příkazu:
systemctl status consul
Měli byste získat následující výstup:
● 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>
V tomto okamžiku je server Consul spuštěn a naslouchá na portu 8500. Můžete to zkontrolovat pomocí následujícího příkazu:
ss -plunt | grep 8500
Měli byste získat následující výstup:
tcp LISTEN 0 4096 *:8500 *:* users:(("consul",pid=5511,fd=17))
Krok 5 – Konfigurace Nginx jako reverzního proxy
Dále je dobré nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro přístup ke konzulovi na portu 80.
Nejprve nainstalujte server Nginx pomocí následujícího příkazu:
apt-get install nginx -y
Po instalaci odeberte výchozí konfigurační soubor virtuálního hostitele Nginx:
rm -rf /etc/nginx/sites-enabled/default
Dále vytvořte konfigurační soubor virtuálního hostitele Consul pomocí následujícího příkazu:
nano /etc/nginx/sites-available/consul.conf
Přidejte následující řádky:
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; } }
Uložte a zavřete soubor a poté aktivujte virtuálního hostitele pomocí následujícího příkazu:
ln -s /etc/nginx/sites-available/consul.conf /etc/nginx/sites-enabled/
Dále zkontrolujte Nginx, zda neobsahuje nějaké syntaktické chyby pomocí následujícího příkazu:
nginx -t
Měli byste získat následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Dále restartujte službu Nginx pomocí následujícího příkazu:
systemctl restart nginx
Pokud se zobrazí nějaké chyby, budete muset upravit výchozí konfigurační soubor serveru Nginx a nastavit server_names_hash_bucket_size:
nano /etc/nginx/nginx.conf
Přidejte následující řádek pod http { :
server_names_hash_bucket_size 64;
Uložte a zavřete soubor a poté restartujte službu Nginx, aby se změny projevily:
systemctl restart nginx
Krok 6 – Přístup k panelu Consul Dashboard
Dále otevřete webový prohlížeč a přejděte do webového rozhraní Consul pomocí adresy URL http://ip-vaseho-serveru/ui . Na následující stránce byste měli vidět řídicí panel Consul:
Klikněte na Nodes k seznamu aktivních uzlů na vašem serveru, jak je uvedeno níže:
Závěr
Gratulujeme! Úspěšně jste nainstalovali server Consul na Ubuntu 20.04. Nyní můžete na server Consul přidat další klientské uzly a začít je spravovat z ovládacího panelu Consul. Další informace naleznete v dokumentaci konzula. Začněte s Consul on VPS Hosting od Atlantic.Net!