GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo implementar CouchDB como un clúster con Docker

Recientemente, le mostré cómo implementar CouchDB como un servidor de base de datos NoSQL independiente, que podría servirle bien en instancias pequeñas. Esta vez, quiero mostrarles un buen truco para implementar CouchDB como un clúster usando Docker. Aunque este método puede no ser ideal para el uso de producción, es una excelente manera para que los desarrolladores puedan trabajar con CouchDB en un entorno de prueba.

Sin más preámbulos, pasemos a la implementación.

Lo que necesitarás

Para que esto funcione, necesitará un servidor con un sistema operativo compatible con Docker. Haré una demostración con Ubuntu Server 22.04, pero puede usar cualquier plataforma con la que se sienta cómodo.

Cobertura de lectura obligada para desarrolladores

Cómo instalar Docker

En caso de que aún no tenga Docker instalado, así es como lo hace.

Primero, agregue la clave GPG oficial de Docker con el comando:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

A continuación, agregue el repositorio requerido:

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

Instale las dependencias requeridas con:

sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y

Finalmente, podemos instalar la última versión del motor Docker:

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Agrega tu usuario al grupo docker con el comando:

sudo usermod -aG docker $USER

Informe al sistema del cambio con:

newgrp docker

Cómo implementar los contenedores de CouchDB

Vamos a implementar tres contenedores CouchDB, cada uno con un puerto externo único. El primero utilizará el puerto 5984 y se implementa con:

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

El segundo contenedor se implementa (usando el puerto 15984) con:

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

El contenedor final se implementa *usando el puerto 25984) con:

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 ejecuta el comando docker ps -a | grep couchdb, debería ver las tres instancias en funcionamiento.

Cómo crear el usuario administrador

Ahora necesitamos crear un administrador en cada contenedor. En cada instancia, reemplace CONTRASEÑA con una contraseña segura (asegúrese de que sea la misma para cada una). Los comandos para esto serán:

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"''

Sobresaliente. Continuemos.

Cómo crear una red Docker

Por el momento, los nodos de CouchDB no se conocen entre sí. Para arreglar eso, necesitamos crear una nueva red Docker. Haz esto con:

docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw

Con nuestra red creada, ahora tenemos que conectar nuestros contenedores a ella, lo cual se hace usando los siguientes comandos:

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

Perfecto.

Cómo iniciar sesión en la consola de administración

Abra un navegador web y diríjalo a http://servidor:5984, donde SERVIDOR es la dirección IP del servidor que aloja a Docker. Inicie sesión con el nombre de usuario administrador y la contraseña que agregó anteriormente para el usuario administrador.

Una vez que haya iniciado sesión, haga clic en el ícono de llave inglesa en la barra de navegación izquierda y luego haga clic en Configurar un clúster (Figura A ).

Figura A

En la ventana resultante (Figura B ), deberá completar las credenciales de administrador y luego agregar un nodo al clúster.

Figura B

Para agregar el primer nodo al clúster, escribirá couchdb-1.local.com como host remoto y dejará el puerto en 5984. Una vez que haya hecho eso, haga clic en Agregar nodo. Haga lo mismo para el segundo nodo usando couchdb-2.local.com como host remoto.

Después de agregar ambos nodos, haga clic en Configurar clúster y debería ser recompensado con una página que le informa que el clúster ha sido configurado (Figura C ).

Figura C

Felicitaciones, acaba de implementar su primer clúster de CouchDB con la ayuda de Docker.


Linux
  1. Cómo implementar un servidor DNS dinámico con Docker en Debian 10

  2. Cómo instalar Jenkins con Docker

  3. Cómo implementar microservicios con Docker

  4. Cómo implementar aplicaciones con Rancher

  5. Cómo implementar un contenedor nginx con Docker en Linode

Cómo implementar el clúster de Kubernetes en AWS con Amazon EKS

Cómo implementar Pi-Hole en Debian 11

Cómo implementar pilas de Docker Compose en Kubernetes con Kompose

Cómo implementar un servicio en un clúster de Docker Swarm

¿Cómo implementar la aplicación Laravel con Nginx en Ubuntu?

Cómo implementar un contenedor Docker en Jelastic Cloud