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 -yUna 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.confCambia 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 2Guarda y cierra.
A continuación, reinicia el servicio chrony y añádelo al inicio del sistema.
systemctl restart chrony
systemctl enable chronyEl servicio chrony está en funcionamiento, verifica usando el siguiente comando.
systemctl status chronyA continuación se muestra el resultado que obtendrás.

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 binaryDespué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.tgzAhora 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 versionA continuación se muestra el resultado que obtendrás.

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 ~/.bashrcPega 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_DIRY obtendrás la variable ‘COCKROACH_CERTS_DIR’ con el valor ‘directorio ${HOME}/.cockroach-certs/‘.

- 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.keyDespué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.

- 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.keyAhora obtendrás nuevos certificados ‘client.root.crt’ y ‘client.root.key’ en el directorio ‘$COCKROACH_CERTS_DIR’.

- 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.keyA 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.keyDespué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.keyAhora, 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’.

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.

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
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
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
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 -plntuComo 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:26257Y obtendrás el siguiente mensaje.
Cluster successfully initializedAdemá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 11A continuación se muestra el resultado que obtendrás.

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.3Ahora 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.

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.
Ahora obtendrás la página de inicio de sesión de CockroachDB como se muestra a continuación.

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.

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.3Una 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.

- 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.4Una 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.

Haz lo mismo en el servidor ‘node03’, y obtendrás el mismo resultado.
A continuación se muestra el resultado del servidor ‘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.

Y finalmente, la instalación y configuración del clúster seguro de CockroachDB en Ubuntu 20.04 se ha completado con éxito.
Referencia
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.