Cómo instalar un clúster CockroachDB en Debian 11

CockroachDB es una base de datos SQL distribuida y escalable de código abierto para aplicaciones en la nube. CockroachDB proporciona consistencia de siguiente nivel, base de datos SQL replicada y un almacén de datos transaccional. CockroachDB almacena tus datos en múltiples ubicaciones, haciendo que la entrega de datos sea más rápida. Además, es fácil de escalar y proporciona alta disponibilidad y tolerancia a fallos para tus aplicaciones.

En este tutorial, te mostraremos cómo instalar el clúster CockroachDB en un servidor Debian 11.

Requisitos previos

  • Dos o más servidores Debian 11.
  • Una contraseña de root configurada en los servidores.

Instalación de CockroachDB en los 3 servidores

Para la instalación, cockroachdb es fácil de instalar. Se debe a que cockroachdb proporciona un archivo binario para el sistema Linux que puedes descargar en tu sistema.

Descarga el archivo binario cockroachdb para Linux utilizando el siguiente comando. Este comando descargará el archivo binario de cockroachdb, extraerá el archivo comprimido y, a continuación, moverá el archivo binario de cockroachdb al directorio /usr/local/bin.

curl https://binaries.cockroachdb.com/cockroach-v21.2.8.linux-amd64.tgz | tar -xz && sudo cp -i cockroach-v21.2.8.linux-amd64/cockroach /usr/local/bin/

El cockroachdb utiliza la biblioteca GEOS incorporada personalizada. La biblioteca GEOS está incluida en el archivo comprimido de cockroachdb y debe instalarse en el directorio lib.

Crea un nuevo directorio /usr/local/lib/cockroach utilizando el siguiente comando.

mkdir -p /usr/local/lib/cockroach

Ahora copia la biblioteca GEOS en el directorio /usr/local/lib/cockroach.

cp -i cockroach-v21.2.8.linux-amd64/lib/libgeos.so /usr/local/lib/cockroach/
cp -i cockroach-v21.2.8.linux-amd64/lib/libgeos_c.so /usr/local/lib/cockroach/

La instalación básica de cockroachdb está instalada en servidores Debian.

descarga e instala cockroachdb

Ejecuta el siguiente comando para comprobar el archivo binario de cockroachdb y la versión actual de cockroachdb que acabas de instalar.

which cockroach
cockroach version

Obtendrás la siguiente salida.

comprobando cucarachadb

Configurar el cortafuegos

Si estás ejecutando el Cortafuegos en tus servidores Debian, tendrás que añadir los puertos de cockroachdb a la configuración del cortafuegos.

El cockroachdb utiliza el puerto 8080 para la administración cockroachdb basada en web, y el puerto 26257 para las conexiones de usuario y la configuración del clúster.

Añade los puertos 8080 y 25267 al cortafuegos UFW utilizando el siguiente comando.

sudo ufw allow 8080/tcp
sudo ufw allow 26257/tcp

Ahora vuelve a cargar las reglas del cortafuegos UFW y comprueba el estado actual de las reglas del cortafuegos.

sudo ufw reload
sudo ufw status

A continuación puedes ver que los puertos 8080 y 25267 se han añadido al cortafuegos UFW.

configurar ufw firewall

Inicializar el Cluster CockroachDB

Para inicializar el cluster cockroachdb, ejecuta el siguiente comando en el servidor11.

Tendrás que cambiar el valor de las siguientes opciones:

  • –store: para almacenar los datos del clúster CockroachDB.
  • –listen-addr: qué dirección IP ejecutará cockroachdb en el servidor. El puerto por defecto de cockroachdb es el 25267.
  • –http-addr: en qué dirección IP se ejecutará la administración basada en web de cockroachdb. La administración basada en web por defecto de cockroachdb es el puerto 8080.
cockroach start \
--insecure \
--store=server11 \
--listen-addr=192.168.10.11:26257 \
--http-addr=192.168.10.11:8080 \
--join=192.168.10.11:26257,192.168.10.13:26258,192.168.10.14:26259 \
--background

Obtendrás el siguiente resultado.

iniciar clúster en servidor11

Ahora pasa al servidor2 y ejecuta el siguiente comando para iniciar cockroachdb y unirte al clúster. Cambia la dirección IP en –listen-addr y –http-addr por la dirección IP del servidor2.

cockroach start \
--insecure \
--store=server2 \
--listen-addr=192.168.10.13:26257 \
--http-addr=192.168.10.13:8080 \
--join=192.168.10.11:26257,192.168.10.13:26258,192.168.10.14:26259 \
--background

Obtendrás la siguiente salida del servidor2.

iniciar clúster en servidor2

A continuación, pasa al servidor3 y ejecuta el siguiente comando para iniciar cockroachdb y unirte al clúster cockroachdb. Cambia también la dirección IP de –listen-addr y –http-addr por la dirección IP del servidor3.

cockroach start \
--insecure \
--store=server3 \
--listen-addr=192.168.10.14:26257 \
--http-addr=192.168.10.14:8080 \
--join=192.168.10.11:26257,192.168.10.13:26258,192.168.10.14:26259 \
--background

Obtendrás la siguiente salida del servidor3.

iniciar cluster servidor3

Una vez completado todo, vuelve al servidor11 y ejecuta el siguiente comando para inicializar el clúster cockroachdb.

cockroach init --insecure --host=192.168.10.11:26257

Obtendrás el mensaje de salida«cluster inicializado con éxito«, lo que significa que el cluster cockroachdb se ha inicializado con éxito.

Puedes ejecutar el siguiente comando grep para comprobar el registro de la inicialización de cockroachdb. Cambia el directorio server11 por tu directorio –store cockroachdb.

grep 'node starting' server11/logs/cockroach.log -A 11

A continuación puedes ver los logs de la inicialización del clúster server11 cockroachdb.

clúster inicializado

Por último, abre tu navegador web y visita la dirección IP del servidor seguida del puerto 8080.

http://192.168.10.11:8080/

A continuación puedes ver que hay tres nodos en el clúster cockroachdb.

clúster cucarachadb

Probando la creación de una nueva base de datos en CockroachDB

Ahora que ya tienes el clúster cockroachdb en marcha, puedes utilizar cualquier servidor como pasarela SQL para acceder a cockroachdb.

Ejecuta el comando cockroach en el servidor11 para conectarte al clúster cockroachdb.

cockroach sql --insecure --host=192.168.10.11:26257

Acceder al intérprete de comandos SQL

Una vez conectado al intérprete de comandos SQL, ejecuta la siguiente consulta para crear una nueva base de datos.

CREATE DATABASE bank;

Ahora crea una nueva tabla en la base de datos utilizando la siguiente consulta.

CREATE TABLE bank.accounts (id INT PRIMARY KEY, balance DECIMAL);

A continuación, importa datos de muestra a la tabla.

INSERT INTO bank.accounts (1, 1000.50);

Verifica los datos en la base de datos utilizando la siguiente consulta.

SELECT * FROM bank.accounts;

Obtendrás el siguiente resultado.

Crear nueva base de datos e insertar datos

A continuación, desplázate al servidor2 o al servidor3 y conéctate al shell SQL cockroachdb utilizando el siguiente comando.

cockroach sql --insecure --host=192.168.10.14:26257

Una vez conectado a la shell SQL del servidor3, ejecuta la siguiente consulta para comprobar y verificar la replicación de la base de datos.

SELECT * FROM bank.accounts;

Verás que la base de datos y los datos del servidor11 se replican automáticamente al servidor2 y al servidor3.

comprobar la base de datos y la replicación

Conclusión

¡Enhorabuena! Ya has instalado y configurado el clúster cockroachdb en los servidores Debian 11. Además, has aprendido a conectarte al shell de cockroachdb y los comandos SQL básicos para crear una base de datos e insertar datos.

También te podría gustar...