Košík je prázdný

V dnešní době, kdy se vývoj softwaru neustále ubírá směrem k distribuovaným systémům, se stává efektivní správa těchto systémů klíčovou pro jejich bezproblémový provoz. Jedním z nástrojů, který výrazně usnadňuje práci s distribuovanými systémy, je HashiCorp Consul. Consul nabízí řešení pro service discovery (objevování služeb) a konfigurační management, což z něj činí neocenitelného pomocníka pro vývojáře a systémové administrátory. V tomto článku se podrobně zaměříme na nastavení Consul na operačním systému Debian pro účely objevování služeb a centralizovaného ukládání konfiguračních nastavení.

Instalace Consul

Prvním krokem je samotná instalace Consul na Debianu. Consul je možné stáhnout jako prekompilovaný binární soubor přímo z oficiálních stránek HashiCorp. Po stažení souboru je potřeba jej rozbalit a přesunout do vhodného adresáře, například /usr/local/bin/, aby byl dostupný v systémové cestě.

  1. Stáhněte nejnovější verzi Consul z oficiálních stránek.
  2. Rozbalte stažený soubor pomocí příkazu unzip consul_*.zip.
  3. Přesuňte binární soubor Consul do adresáře /usr/local/bin/ pomocí příkazu sudo mv consul /usr/local/bin/.
  4. Ověřte instalaci spuštěním příkazu consul --version.

Konfigurace a spuštění Consul agenta

Po instalaci je potřeba nakonfigurovat Consul agenta, který bude běžet na každém uzlu v clusteru. Konfigurace se provádí pomocí konfiguračních souborů ve formátu JSON nebo HCL, umístěných v adresáři /etc/consul.d/.

  1. Vytvořte konfigurační adresář pro Consul pomocí sudo mkdir /etc/consul.d/.
  2. Vytvořte základní konfigurační soubor server.json v /etc/consul.d/ s následujícím obsahem:
    {
      "server": true,
      "node_name": "server1",
      "data_dir": "/var/consul",
      "ui": true,
      "client_addr": "0.0.0.0",
      "bind_addr": "YOUR_SERVER_IP",
      "bootstrap_expect": 1,
      "datacenter": "dc1"
    }
    ​
  3. Spusťte Consul agenta pomocí příkazu consul agent -config-dir=/etc/consul.d/.

 

Připojení klientů a service discovery

Každá služba, která má být objevena přes Consul, musí mít svůj konfigurační soubor ve formátu JSON, umístěný v /etc/consul.d/. Tento soubor specifikuje jméno služby, port, na kterém běží, a případné zdravotní kontroly.

{
  "service": {
    "name": "web",
    "tags": ["Nginx", "www"],
    "port": 80,
    "check": {
      "http": "http://localhost",
      "interval": "10s"
    }
  }
}

Po přidání konfiguračního souboru pro službu spusťte nebo restartujte Consul agenta. Služba by měla být nyní objevitelná pomocí Consul UI nebo Consul CLI.

Konfigurační management

Kromě objevování služeb umožňuje Consul také centralizované ukládání a distribuci konfiguračních nastavení. Konfigurační hodnoty jsou uloženy v klíč-hodnota úložišti Consul a jsou dostupné pro jakoukoliv službu v clusteru.

Přidání nebo změna konfiguračních hodnot je možná přes Consul CLI nebo UI. Příklad příkazu pro přidání konfigurační hodnoty:

consul kv put config/web/port 80

Tato hodnota je pak možná vyčíst z jiného uzlu pomocí:

consul kv get config/web/port

HashiCorp Consul představuje silný nástroj pro správu distribuovaných systémů, umožňující efektivní service discovery a konfigurační management. Nastavení Consul na Debianu je přímočaré a vyžaduje pouze základní konfigurační kroky. S pomocí Consul lze snadno dosáhnout vysoké dostupnosti a odolnosti aplikací v distribuovaném prostředí.