Base de datos · 7 min read · Dec 19, 2025

Cómo implementar un clúster de CockroachDB seguro en Ubuntu Server

CockroachDB es una base de datos SQL de código abierto y nativa de la nube desarrollada por CockroachLabs. Es una base de datos SQL distribuida construida sobre el almacenamiento transaccional y de clave-valor. CockroachDB es una base de datos SQL escalable que ha sido comparada con la base de datos Google Spanner. Se basa en el protocolo PostgreSQL y está lista para producción.

En este tutorial, te mostraremos cómo configurar el clúster seguro de CockroachDB en Ubuntu 18.04. Aprenderás cómo configurar el clúster seguro, acceder al panel de administración de CockroachDB, crear un nuevo usuario en CockroachDB, crear y mostrar bases de datos en CockroachDB.

Requisitos previos

Para ejecutar el clúster de CockroachDB, necesitamos múltiples servidores. Y utilizaremos tres servidores Ubuntu 18.04 con los siguientes nombres de host y direcciones IP:

node1   10.5.5.21  
node2   10.5.5.22  
node3   10.5.5.23

¿Qué haremos?

  • Configurar el servidor NTP con Chrony systemctl restart chrony
    systemctl enable chrony
  • Descargar e instalar CockroachDB
  • Crear certificados
  • Inicializar el clúster de CockroachDB
  • Agregar nodo al clúster de CockroachDB
  • Pruebas

Paso 1 - Configurar el servidor NTP con Chrony

Primero, debemos mantener el tiempo entre los servidores del clúster sincronizado. Por lo tanto, necesitamos instalar el paquete NTP en todos los servidores. Y para esta guía, utilizaremos chrony.

Instala el paquete chrony en todos los servidores utilizando el siguiente comando.

sudo apt install chrony -y

Una vez que la instalación esté completa, ve al directorio de configuración ‘/etc/chrony/‘ y edita el archivo ‘chrony.conf’.

cd /etc/chrony/  
vim chrony.conf

Elimina el grupo NTP predeterminado y reemplázalo con tu propio grupo de país.

pool 0.id.pool.ntp.org iburst maxsources 4  
pool 1.id.pool.ntp.org iburst maxsources 1  
pool 2.id.pool.ntp.org iburst maxsources 1  
pool 3.id.pool.ntp.org iburst maxsources 2

Guarda y cierra.

Ahora reinicia el servicio chrony y luego agrega chrony al servicio de inicio.

systemctl restart chrony  
systemctl enable chrony

Como resultado, el tiempo entre los servidores estará sincronizado con los mismos servidores de grupo NTP.

Iniciar y habilitar Chrony

Paso 2 - Descargar e instalar CockroachDB

En este paso, descargaremos e instalaremos CockroachDB en todos los servidores. Así que ejecuta todos los comandos en todos tus servidores del clúster.

Crea un nuevo directorio llamado ‘binary’ y accede a él.

mkdir -p binary; cd binary

Descarga el archivo binario comprimido de cockroachdb para Linux y extráelo.

wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz  
tar -xvzf cockroach-latest.linux-amd64.tgz

Ahora copia el archivo binario ‘cockroach’ al directorio ‘/etc/local/bin’.

cp cockroach-*/cockroach /usr/local/bin/

Después de eso, puedes ejecutar el comando ‘cockroach’ y explorar el comando básico para ayuda, verificar la versión, etc.

cockroach version

CockroachDB se ha instalado en todos los servidores.

Instalar CockroachDB

Paso 3 - Crear certificados

Ahora vamos a generar algunos certificados para asegurar el clúster de CockroachDB. Podemos usar OpenSSL o la línea de comandos de cockroach para generar archivos de certificado.

Generaremos el certificado CA y la clave, y generaremos el certificado para el usuario root y el certificado para cada nodo en el clúster.

Crea el directorio de certificados ‘~/.cockroach-certs’ y la variable de entorno para ello.

mkdir -p ${HOME}/.cockroach-certs/  
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'

Crear CA y copiar a todos los nodos

En el servidor ‘node1’, crea la autoridad certificadora utilizando el comando cockroach a continuación.

cockroach cert create-ca \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Y obtendrás ‘ca.key’ y ‘ca.crt’ en el directorio ‘~/.cockroach-certs’.

Crear CA y copiar a todos los nodos

Después de eso, copia el certificado CA y la clave a todos los servidores utilizando el comando scp como a continuación.

Copia al servidor ‘node2’.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Copia al servidor ‘node3’.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Ahora asegúrate de que el certificado CA y la clave estén subidos a todos los servidores host.

Crear certificados de cliente

Después de crear la autoridad certificadora, necesitamos generar el certificado de cliente. El certificado de cliente se utilizará para asegurar la comunicación entre el shell SQL integrado y el clúster.

Genera el certificado de cliente en todos los servidores utilizando el siguiente comando de cockroach.

cockroach cert create-client \  
 root \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Y obtendrás certificados de cliente para el usuario root ‘client.root.crt’ y ‘client.root.key’.

Crear certificados de servidor

Los certificados de servidor se utilizarán para asegurar la comunicación entre los servidores en el clúster de CockroachDB. Y para unirse al clúster seguro, necesitas generar certificados de servidor para cada servidor.

En el ‘node1’, crea el certificado de servidor utilizando el siguiente comando.

cockroach cert create-node \  
 localhost \  
 $(hostname) \  
 10.5.5.21 \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Cambia la dirección IP por la tuya.

Cambiar dirección IP

En el ‘node2’, crea el certificado de servidor utilizando el siguiente comando.

cockroach cert create-node \  
 localhost \  
 $(hostname) \  
 10.5.5.22 \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Cambia la dirección IP por la tuya.

Configuración de dirección IP

En el ‘node3’, crea el certificado de servidor utilizando el siguiente comando.

cockroach cert create-node \  
 localhost \  
 $(hostname) \  
 10.5.5.23 \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Cambia la dirección IP por la tuya.

Ahora obtendrás certificados de servidor ‘node.crt’ y ‘node.key’ en el directorio ‘~/.cockroach-certs’.

Paso 4 - Iniciar el clúster seguro de CockroachDB

Después de crear algunos certificados SSL, inicializaremos el clúster seguro de CockroachDB desde el servidor ‘node1’.

Ejecuta el siguiente comando en el servidor ‘node1’.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --advertise-host=10.5.5.21 --listen-addr=10.5.5.21

Asegúrate de que no haya errores.

Después de eso, verifica el estado del nodo del clúster ejecutando el comando cockroach a continuación.

cockroach node status --host=10.5.5.21

Obtendrás el nodo1 con la dirección IP 10.5.5.21 en funcionamiento con CockroachDB v2.1.6.

Paso 5 - Agregar nodo al clúster

A continuación, agregaremos ‘node2’ y ‘node3’ al clúster seguro de CockroachDB.

Asegúrate de que el certificado CA y el certificado de servidor estén en el directorio ~/.cockroach-certs.

ls -lah ~/.cockroach-certs/

Ahora ejecuta el siguiente comando para agregar ‘node2’ con la dirección IP 10.5.5.22. Agrégalo al clúster de CockroachDB.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --advertise-host=10.5.5.22 --listen-addr=10.5.5.22 \  
 --join=10.5.5.21:26257

Una vez que esté completo, ve al ‘node3’ y ejecuta el siguiente comando.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --advertise-host=10.5.5.23 --listen-addr=10.5.5.23 \  
 --join=10.5.5.21:26257

Cambia la dirección IP por la tuya.

Ahora ‘node2’ y ‘node3’ han sido agregados al clúster seguro de CockroachDB. Verifícalo desde el servidor ‘node1’ utilizando el siguiente comando.

cockroach node status --host=10.5.5.21

Y obtendrás tres servidores diferentes en funcionamiento con cockroach v2.1.6.

Agregar nodo al clúster

Paso 6 - Pruebas

Para este último paso, probaremos nuestra instalación del clúster seguro de CockroachDB accediendo al panel de administración y probando la replicación de bases de datos entre servidores.

Prueba del panel de CockroachDB

CockroachDB proporciona una hermosa interfaz de usuario de panel para monitorear el clúster. Abre tu navegador web y escribe la dirección IP del servidor seguida del puerto 8080.

https://10.5.5.21:8080/

Y obtendrás la página de inicio de sesión de CockroachDB como a continuación.

Panel de CockroachDB

Para iniciar sesión en el panel, necesitamos crear un usuario en la base de datos de CockroachDB.

Regresa a tu terminal ‘node1’ e inicia sesión en el shell SQL de cockroachdb utilizando el siguiente comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \  
 --host=10.5.5.21

Ahora crea un nuevo usuario llamado ‘hakase’ con la contraseña ‘hakase-labs123@#’ utilizando la consulta a continuación.

CREATE USER hakase WITH PASSWORD 'hakase-labs123@#';

Escribe ‘\q’ para salir del shell SQL de CockroachDB.

Shell SQL de CockroachDB

Ahora regresa al navegador web y escribe el usuario ‘hakase’ con la contraseña ‘hakase-labs123@#’ en la página de inicio de sesión y haz clic en el botón Iniciar sesión.

Cockroach DB

Y obtendrás el panel de administración de CockroachDB como a continuación.

Resumen del clúster

Prueba de replicación de bases de datos

Ahora vamos a probar la replicación de bases de datos entre servidores en el clúster de CockroachDB creando la base de datos en ‘node1’ y verificando la base de datos desde ‘node2’ o ‘node3’.

En ‘node1’, accede al shell SQL de CockroachDB utilizando el siguiente comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \  
 --host=10.5.5.21

Crea dos bases de datos ‘hakasedb’ y ‘hakasedb2’ utilizando las consultas a continuación.

create database hakasedb;  
 create database hakasedb2;

Ahora imprime la lista de bases de datos y asegúrate de obtener las dos bases de datos que acabamos de crear.

show databases;

Línea de comandos de Cockroach DB

A continuación, inicia sesión en el servidor ‘node2’ y accede al shell SQL de CockroachDB utilizando el siguiente comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \  
 --host=10.5.5.22

Verifica la lista de bases de datos.

show databases;

Y obtendrás ‘hakasedb’ y ‘hakasedb2’ replicadas en el servidor ‘node2’.

Mostrar bases de datos

Y finalmente, la instalación y configuración del clúster seguro de CockroachDB utilizando Ubuntu 18.04 se ha completado con éxito.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.