Nedávno jsem vám ukázal, jak nasadit CouchDB jako samostatný databázový server NoSQL, který by vám mohl dobře posloužit v malých instancích. Tentokrát vám chci ukázat úhledný trik pro nasazení CouchDB jako clusteru pomocí Dockeru. Ačkoli tato metoda nemusí být ideální pro produkční použití, je to skvělý způsob, jak mohou vývojáři pracovat s CouchDB v testovacím prostředí.
Bez dalších řečí přejdeme k nasazení.
Co budete potřebovat
Aby to fungovalo, budete potřebovat server s OS, který podporuje Docker. Předvedu vám Ubuntu Server 22.04, ale můžete použít jakoukoli platformu, která vám vyhovuje.
Pokrytí pro vývojáře, které si musíte přečíst
Jak nainstalovat Docker
Pokud náhodou ještě nemáte nainstalovaný Docker, uděláte to následovně.
Nejprve přidejte oficiální klíč GPG Docker pomocí příkazu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Dále přidejte požadované úložiště:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Nainstalujte požadované závislosti pomocí:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
Konečně můžeme nainstalovat nejnovější verzi enginu Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Přidejte svého uživatele do skupiny dockerů pomocí příkazu:
sudo usermod -aG docker $USER
Upozorněte systém na změnu pomocí:
newgrp docker
Jak nasadit kontejnery CouchDB
Nasadíme tři kontejnery CouchDB, z nichž každý používá jedinečný externí port. První bude používat port 5984 a je nasazen s:
docker run -itd -p 5984:5984 -p 5986:5986 --name=couchdb0 -e NODENAME='couchdb-0.local.com' --mount 'source=volume-0,target=/opt/couchdb/data' couchdb:2.3.0
Druhý kontejner je nasazen (pomocí portu 15984) s:
docker run -itd -p 15984:5984 -p 15986:5986 --name=couchdb1 -e NODENAME='couchdb-1.local.com' --mount 'source=volume-1,target=/opt/couchdb/data' couchdb:2.3.0
Finální kontejner je nasazen *pomocí portu 25984) s:
docker run -itd -p 25984:5984 -p 25986:5986 --name=couchdb2 -e NODENAME='couchdb-2.local.com' --mount 'source=volume-2,target=/opt/couchdb/data' couchdb:2.3.0
Pokud zadáte příkaz docker ps -a | grep couchdb, měli byste vidět všechny tři instance v provozu.
Jak vytvořit uživatele správce
Nyní musíme vytvořit správce pro každý kontejner. V každém případě nahraďte PASSWORD silným heslem (ujistěte se, že je pro všechny stejné). Příkazy pro to budou:
curl -X PUT http://localhost:5984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:15984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:25984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"''
Vynikající. Pokračujme.
Jak vytvořit síť Docker
V tuto chvíli o sobě uzly CouchDB nemají žádné povědomí. Abychom to napravili, musíme vytvořit novou síť Docker. Udělejte to pomocí:
docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw
Po vytvoření naší sítě k ní nyní musíme připojit naše kontejnery, což se provádí pomocí následujících příkazů:
docker network connect --alias couchdb-0.local.com isolated_nw couchdb0
docker network connect --alias couchdb-1.local.com isolated_nw couchdb1
docker network connect --alias couchdb-2.local.com isolated_nw couchdb2
Perfektní.
Jak se přihlásit do administrátorské konzole
Otevřete webový prohlížeč a nasměrujte jej na http://server:5984, kde SERVER je IP adresa serveru hostujícího Docker. Přihlaste se pomocí uživatelského jména admin a hesla, které jste pro uživatele admin přidali dříve.
Po přihlášení klikněte na ikonu klíče v levém navigačním panelu a poté klikněte na Konfigurovat klastr (Obrázek A ).
Obrázek A
Ve výsledném okně (Obrázek B ), budete muset vyplnit přihlašovací údaje správce a poté přidat uzel do clusteru.
Obrázek B
Chcete-li přidat první uzel do clusteru, zadáte couchdb-1.local.com jako vzdáleného hostitele a ponecháte port na 5984. Jakmile to uděláte, klikněte na Přidat uzel. Proveďte totéž pro druhý uzel pomocí couchdb-2.local.com jako vzdáleného hostitele.
Po přidání obou uzlů klikněte na Konfigurovat klastr a měli byste být odměněni stránkou s informací, že klastr byl nakonfigurován (Obrázek C ).
Obrázek C
Gratulujeme, právě jste s pomocí Dockeru nasadili svůj první cluster CouchDB.