Récemment, je vous ai montré comment déployer CouchDB en tant que serveur de base de données NoSQL autonome, ce qui pourrait bien vous servir dans de petites instances. Cette fois-ci, je veux vous montrer une astuce pour déployer CouchDB en tant que cluster à l'aide de Docker. Bien que cette méthode ne soit pas idéale pour une utilisation en production, c'est un excellent moyen pour les développeurs de pouvoir travailler avec CouchDB dans un environnement de test.
Sans plus tarder, passons au déploiement.
Ce dont vous aurez besoin
Pour que cela fonctionne, vous aurez besoin d'un serveur avec un système d'exploitation prenant en charge Docker. Je ferai la démonstration avec Ubuntu Server 22.04, mais vous pouvez utiliser la plate-forme avec laquelle vous êtes à l'aise.
Couverture des développeurs à lire absolument
Comment installer Docker
Au cas où vous n'auriez pas déjà installé Docker, voici comment procéder.
Tout d'abord, ajoutez la clé Docker GPG officielle avec la commande :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Ensuite, ajoutez le référentiel requis :
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
Installez les dépendances requises avec :
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
Enfin, nous pouvons installer la dernière version du moteur Docker :
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Ajoutez votre utilisateur au groupe docker avec la commande :
sudo usermod -aG docker $USER
Informez le système du changement avec :
newgrp docker
Comment déployer les conteneurs CouchDB
Nous allons déployer trois conteneurs CouchDB, chacun utilisant un port externe unique. Le premier utilisera le port 5984 et est déployé avec :
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
Le deuxième conteneur est déployé (en utilisant le port 15984) avec :
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
Le conteneur final est déployé *en utilisant le port 25984) avec :
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
Si vous émettez la commande docker ps -a | grep couchdb, vous devriez voir les trois instances en cours d'exécution.
Comment créer l'utilisateur administrateur
Nous devons maintenant créer un administrateur sur chaque conteneur. Dans chaque cas, remplacez PASSWORD par un mot de passe fort (assurez-vous qu'il est le même pour chacun). Les commandes pour cela seront :
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"''
Exceptionnel. Continuons.
Comment créer un réseau Docker
Pour le moment, les nœuds CouchDB n'ont aucune connaissance les uns des autres. Pour résoudre ce problème, nous devons créer un nouveau réseau Docker. Faites ceci avec :
docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw
Une fois notre réseau créé, nous devons maintenant y connecter nos conteneurs, ce qui se fait à l'aide des commandes suivantes :
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
Parfait.
Comment se connecter à la console d'administration
Ouvrez un navigateur Web et faites-le pointer vers http://server:5984, où SERVER est l'adresse IP du serveur hébergeant Docker. Connectez-vous avec le nom d'utilisateur admin et le mot de passe que vous avez ajouté précédemment pour l'utilisateur admin.
Une fois connecté, cliquez sur l'icône en forme de clé dans la navigation de gauche, puis cliquez sur Configurer un cluster (Figure A ).
Figure A
Dans la fenêtre résultante (Figure B ), vous devrez renseigner les informations d'identification de l'administrateur, puis ajouter un nœud au cluster.
Figure B
Pour ajouter le premier nœud au cluster, vous tapez couchdb-1.local.com comme hôte distant et laissez le port à 5984. Une fois que vous avez fait cela, cliquez sur Ajouter un nœud. Faites la même chose pour le deuxième nœud en utilisant couchdb-2.local.com comme hôte distant.
Après avoir ajouté les deux nœuds, cliquez sur Configurer le cluster et vous devriez être récompensé par une page vous informant que le cluster a été configuré (Figure C ).
Figure C
Félicitations, vous venez de déployer votre premier cluster CouchDB, avec l'aide de Docker.