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

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

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 almacenes transaccionales 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 de PostgreSQL y está lista para producción.

Este tutorial te mostrará cómo configurar el clúster seguro de CockroachDB en Ubuntu 20.04. Aprenderás a 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 esta guía, configuraremos el clúster seguro de CockroachDB con 3 servidores Ubuntu 20.04.

node01 172.16.0.3
node02 172.16.0.4
node03 172.16.0.5

¿Qué haremos?

  • Configurar NTP con Chrony
  • Descargar el binario de CockroachDB para Linux
  • Generar certificados SSL para el clúster de CockroachDB
  • Iniciar el clúster seguro de CockroachDB
  • Crear un usuario administrador para CockroachDB
  • Acceder al panel de CockroachDB
  • Probar la replicación de bases de datos en el clúster de CockroachDB

Paso 1 - Configurar el servidor NTP con Chrony

Primero, sincronizaremos el tiempo en nuestros tres servidores con el servidor NTP usando chrony. Asegúrate de ejecutar todos los comandos de este paso en todos los servidores.

Ahora actualiza todos los repositorios disponibles en tu sistema e instala el paquete chrony usando el comando apt a continuación.

sudo apt update  
sudo apt install chrony -y

Una vez que se complete la instalación, ve al directorio ‘/etc/chrony’ y edita la configuración ‘chrony.conf’ usando el editor vim.

cd /etc/chrony/  
vim chrony.conf

Cambia el grupo predeterminado por tu servidor NTP más cercano como se muestra a continuación.

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

Guarda y cierra.

A continuación, reinicia el servicio chrony y añádelo al inicio del sistema.

systemctl restart chrony  
systemctl enable chrony

El servicio chrony está en funcionamiento, verifica usando el siguiente comando.

systemctl status chrony

A continuación se muestra el resultado que obtendrás.

Instalar Chrony en Ubuntu 20.04

Como resultado, la instalación y configuración de Chrony se han completado. En efecto, el tiempo en todos los servidores se ha sincronizado con los mismos servidores NTP.

Paso 2 - Descargar el binario de CockroachDB

En este paso, descargaremos e instalaremos CockroachDB en nuestros tres servidores.

Ahora crea un nuevo directorio llamado ‘binary’ y entra en él.

mkdir -p binary; cd binary

Después de eso, descarga la última versión del archivo binario de CockroachDB y extráelo.

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

Ahora mueve el archivo binario ‘cockroach’ al directorio ‘/usr/local/bin’.

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

Como resultado, podrás ejecutar el comando ‘cockroach’ en tu sistema.

Verifica el archivo binario ‘cockroach’ y la versión de CockroachDB usando el siguiente comando.

which cockroach  
cockroach version

A continuación se muestra el resultado que obtendrás.

Descargar e instalar el binario de CockroachDB

Como resultado, has descargado e instalado CockroachDB v20.1.5 en servidores Linux, y ahora puedes crear el clúster de CockroachDB.

Paso 3 - Crear certificados SSL para el clúster de CockroachDB

Antes de crear el nuevo clúster de CockroachDB, crearemos y generaremos certificados SSL para asegurar nuestro clúster. Para generar los certificados SSL, podemos usar OpenSSL o usar la línea de comandos ‘cockroach’.

- Crear el directorio de certificados de CockroachDB

Primero, necesitamos crear un nuevo directorio para almacenar todos los certificados SSL para nuestro clúster de CockroachDB.

Como usuario root, crea un nuevo directorio ‘~/.cockroach-certs’ y añade la variable de entorno del sistema ‘COCKROACH_CERTS_DIR’ usando el comando a continuación.

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

A continuación, para hacer que la variable de entorno ‘COCKROACH_CERTS_DIR’ sea permanente, edita la configuración ~/.bashrc usando el editor vim.

vim ~/.bashrc

Pega la siguiente configuración al final de la línea.

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

Guarda y cierra.

A continuación, recarga la configuración ~/.bashrc y verifica la variable de entorno ‘COCKROACH_CERTS_DIR’.

source ~/.bashrc  
echo $COCKROACH_CERTS_DIR

Y obtendrás la variable ‘COCKROACH_CERTS_DIR’ con el valor ‘directorio ${HOME}/.cockroach-certs/‘.

Configurar el directorio de certificados de Cockroach

- Crear un certificado CA y clave

Después de crear el directorio de ruta SSL, generaremos el certificado CA y la clave usando la línea de comandos ‘cockroach’ en el servidor ‘node01’.

Genera el certificado CA y la clave en el ‘$COCKROACH_CERT_DIR’ usando el siguiente comando ‘cockroach’.

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

Después de eso, copia el ‘ca.crt’ y ‘ca.key’ generados a otros servidores ‘node02’ y ‘node03’ usando el comando scp como se muestra a continuación.

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

Como resultado, el certificado CA y la clave se han creado y subido a todos los servidores.

Generar certificado CA y copiar a otros nodos

- Crear certificado de cliente en node01

Después de crear el certificado CA y la clave, generaremos el certificado de cliente que se utiliza para asegurar la comunicación entre el shell SQL integrado y el clúster.

Genera el certificado de cliente usando el siguiente comando de cockroach.

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

Ahora obtendrás nuevos certificados ‘client.root.crt’ y ‘client.root.key’ en el directorio ‘$COCKROACH_CERTS_DIR’.

Generar certificado de cliente CockroachDB

- Crear certificados de servidor en todos los servidores

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

En el primer ‘node01’, genera el certificado de servidor usando el siguiente comando, y asegúrate de cambiar la dirección IP por la tuya.

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

A continuación, genera el certificado de servidor para el ‘node02’ usando el siguiente comando.

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

Después de eso, genera el certificado de servidor para el servidor ‘node03’.

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

Ahora, si verificas el directorio ‘~/.cockroach-certs’, obtendrás nuevos certificados ‘node.crt’ y ‘node.key’ en todos los servidores.

ls -lah ${HOME}/.cockroach-certs/

A continuación se muestran todos los certificados disponibles en el servidor maestro ‘node01’.

Generar certificado para node01

Verás tres certificados diferentes, certificados CA, certificados de cliente y certificados de servidor.

Y para otros nodos ‘node02’ y ‘node03’, verás dos certificados, certificados CA y certificados de servidor.

generar certificado de servidor para node02 y node03

Como resultado, estamos listos para iniciar y crear el clúster seguro de CockroachDB.

Paso 4 - Iniciar el clúster seguro de CockroachDB

Para iniciar el clúster seguro de CockroachDB, necesitas iniciar el proceso de CockroachDB en cada servidor.

Antes de iniciar el proceso de CockroachDB, asegúrate de cambiar los detalles de la dirección IP para cada servidor por los tuyos y asegúrate de que la variable de entorno ‘$COCKROACH_CERTS_DIR’ esté cargada.

Primero, inicia el proceso de CockroachDB en el ‘node01’ usando el siguiente comando.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --store=/var/lib/cockroachdb \  
 --advertise-host=172.16.0.3 --listen-addr=172.16.0.3 \  
 --join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257

Iniciar clúster seguro de CockroachDB

Ahora muévete al servidor ‘node02’ y comienza el proceso de CockroachDB.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --store=/var/lib/cockroachdb \  
 --advertise-host=172.16.0.4 --listen-addr=172.16.0.4 \  
 --join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257

Iniciar clúster seguro de CockroachDB

Después de eso, inicia el proceso de CockroachDB en el servidor ‘node03’.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --store=/var/lib/cockroachdb \  
 --advertise-host=172.16.0.5 --listen-addr=172.16.0.5 \  
 --join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257

Iniciar clúster seguro de CockroachDB

Ahora el proceso de CockroachDB se ha iniciado en todos los servidores. Está funcionando en el puerto ‘26257’, y los datos de CockroachDB se almacenan en el directorio ‘/var/lib/cockroachdb’.

Puedes verificar el puerto de CockroachDB usando el siguiente comando.

ss -plntu

Como se puede ver, el proceso de CockroachDB está funcionando en el puerto TCP ‘26257’ para la conexión a la base de datos y el puerto ‘8080’ como el panel de administración de CockroachDB por defecto.

A continuación, regresa al servidor maestro ‘node01’ e inicializa el clúster seguro de CockroachDB usando el comando a continuación.

cockroach init --host=172.16.0.3:26257

Y obtendrás el siguiente mensaje.

Cluster successfully initialized

Además, puedes verificar el archivo de registro de CockroachDB para ver los detalles de la inicialización del clúster.

grep 'node starting' /var/lib/cockroachdb/logs/cockroach.log -A 11

A continuación se muestra el resultado que obtendrás.

Inicialización del clúster de CockroachDB

Como resultado, la inicialización del clúster seguro de CockroachDB se ha completado con éxito.

Paso 5 - Crear un usuario administrador para CockroachDB

Después de haber inicializado con éxito el clúster de CockroachDB, necesitas crear un nuevo usuario que iniciará sesión en el panel de administración de CockroachDB.

Desde el servidor maestro ‘node01’, inicia sesión en el shell SQL de CockroachDB usando el siguiente comando.

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

Ahora crea un nuevo usuario llamado ‘yume’ con la contraseña ‘yume321’ usando la siguiente consulta.

CREATE USER yume WITH PASSWORD 'yume321';

Después de eso, permite que el usuario ‘yume’ inicie sesión y añádelo al rol ‘admin’.

ALTER USER yume LOGIN;  
GRANT admin TO yume;

Ahora verifica todos los usuarios disponibles en CockroachDB usando la siguiente consulta.

SHOW USERS;

A continuación se muestra el resultado que obtendrás.

Crear usuario administrador CockroachDB

Como se puede ver, el nuevo usuario yume está disponible en la lista. Es miembro del rol ‘admin’.

Como resultado, has creado un nuevo usuario para la base de datos CockroachDB.

Paso 6 - Acceder al panel de CockroachDB

Por defecto, CockroachDB proporciona un panel de administración basado en la web que se ejecuta en el puerto TCP por defecto ‘8080’.

Abre tu navegador web y escribe la dirección IP de tu servidor con el puerto ‘8080’ en la barra de direcciones.

https://172.16.0.3:8080/

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

Página de inicio de sesión de CockroachDB

Escribe el usuario ‘ yume ‘ y la contraseña ‘ yume321 ‘ en el campo y haz clic en el botón ‘ LOG IN ‘.

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

Panel de CockroachDB

Como se puede ver, tienes el clúster de CockroachDB con tres nodos activos.

Como resultado, has iniciado sesión con éxito en el panel de administración de CockroachDB con un nuevo usuario.

Paso 7 - Probar la replicación de bases de datos

Para este paso, probaremos la replicación de bases de datos entre cada nodo en el clúster.

Crearemos una nueva base de datos en el servidor ‘node01’ usando el usuario ‘yume’ y luego verificaremos la base de datos desde otros nodos ‘node02’ y ‘node03’.

- Conectar a node01 y crear bases de datos

En el servidor ‘node01’, inicia sesión en el shell SQL de CockroachDB como el usuario ‘yume’ usando el siguiente comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \  
 --host=172.16.0.3

Una vez que hayas iniciado sesión en el shell SQL de CockroachDB, crea nuevas bases de datos usando las siguientes consultas.

CREATE DATABASE yumedb;  
CREATE DATABASE yumedb2;

Ahora verifica todas las bases de datos disponibles en CockroachDB.

SHOW DATABASES;

Y obtendrás ‘yumedb’ y ‘yumedb2’ en la lista de bases de datos.

Crear base de datos CockroachDB

- Verificar la replicación de bases de datos en node02 y node03

A continuación, muévete al servidor ‘node02’ e inicia sesión en el shell SQL de CockroachDB como el usuario ‘yume’ usando el siguiente comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \  
 --host=172.16.0.4

Una vez que hayas iniciado sesión, verifica todas las bases de datos disponibles usando la siguiente consulta.

SHOW DATABASES;

Y obtendrás las bases de datos ‘yumedb’ y ‘yumedb2’ en la lista.

Verificar replicación de bases de datos en el Node02

Haz lo mismo en el servidor ‘node03’, y obtendrás el mismo resultado.

A continuación se muestra el resultado del servidor ‘node03’.

Verificar replicación de bases de datos en Node03

Como resultado, la replicación de bases de datos entre nodos en el clúster de CockroachDB está funcionando.

Además, a continuación puedes ver todas las bases de datos desde el panel de administración de CockroachDB.

Verificar bases de datos desde el panel de CockroachDB

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

Referencia

https://www.cockroachlabs.com/docs/stable/

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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