GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

CockroachDB es una base de datos SQL nativa de la nube y de código abierto desarrollada por CockroachLabs. Es una base de datos SQL distribuida basada en el almacén transaccional y de clave-valor. CockroachDB es una base de datos SQL escalable que se ha comparado con la base de datos de Google Spanner. Se basa en el protocolo PostgreSQL y está listo para la producción.

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

Requisitos

Para ejecutar CockroachDB Cluster, necesitamos varios servidores. Y usaremos tres servidores Ubuntu 18.04 con el nombre de host detallado y la dirección IP que se muestran a continuación.

node1   10.5.5.21
node2   10.5.5.22
node3   10.5.5.23

¿Qué haremos?

  • Configurar servidor NTP con Chronysystemctl reiniciar chrony
    systemctl habilitar chrony
  • Descargar e instalar CockroachDB
  • Crear certificados
  • Inicializar clúster de CockroachDB
  • Agregar nodo al clúster de CockroachDB
  • Pruebas

Paso 1:configurar el servidor NTP con Chrony

En primer lugar, debemos mantener sincronizada la hora entre los servidores del clúster. Entonces, necesitamos instalar el paquete NTP en todos los servidores. Y para esta guía, usaremos chrony.

Instale el paquete chrony en todos los servidores usando el siguiente comando.

sudo apt install chrony -y

Una vez completada la instalación, vaya al directorio de configuración '/etc/chrony/' y edite el archivo 'chrony.conf'.

cd /etc/chrony/
vim chrony.conf

Elimine el grupo NTP predeterminado y reemplácelo con su propio grupo nacional.

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

Guardar y cerrar.

Ahora reinicie el servicio chrony y luego agregue chrony al servicio de inicio.

systemctl restart chrony
systemctl enable chrony

Como resultado, el tiempo entre servidores se sincronizará con los mismos servidores de grupo NTP.

Paso 2:descargar e instalar CockroachDB

En este paso, descargaremos e instalaremos CockroachDB en todos los servidores. Por lo tanto, ejecute todos los comandos en todos sus servidores de clúster.

Cree un nuevo directorio llamado 'binario' y acceda a él.

mkdir -p binary; cd binary

Descargue el archivo binario cockroachdb comprimido para Linux y extráigalo.

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

Ahora copie el archivo binario 'cucaracha' en el directorio '/etc/local/bin'.

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

Después de eso, puede ejecutar el comando 'cucaracha' y explorar el comando básico para obtener ayuda, verificar la versión, etc.

cockroach version

El CockroachDB se ha instalado en todos los servidores.

Paso 3:Crear certificados

Ahora vamos a generar algunos certificados para proteger el clúster de CockrouchDB. Podemos usar OpenSSL o la línea de comando de la cucaracha para generar archivos de certificados.

Generaremos el certificado y la clave de CA, y generaremos el certificado para el usuario raíz y el certificado para cada nodo en el clúster.

Cree el directorio de certificados '~/.cockroach-certs' y la variable de entorno correspondiente.

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

Crear CA y copiar a todos los nodos

En el servidor 'node1', cree la autoridad de certificación usando el siguiente comando de cucaracha.

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

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

Después de eso, copie el certificado ca y la clave a todos los servidores usando el comando scp como se muestra a continuación.

Copie en el servidor 'node2'.

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

Copie en el servidor 'node3'.

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

Ahora asegúrese de que el certificado y la clave de CA estén cargados en todos los servidores host.

Crear certificados de cliente

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

Genere el certificado de cliente en todos los servidores utilizando el siguiente comando de cucaracha.

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

Y obtendrá certificados de cliente para el usuario raíz 'client.root.crt' y 'client.root.key'.

Crear certificados de servidor

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

En el 'nodo1', cree el certificado del servidor con 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.

En el 'nodo2', cree el certificado del servidor usando 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.

En el 'nodo3', cree el certificado del servidor usando 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á los 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 Secure CockroachDB desde el servidor 'node1'.

Ejecute 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úrese de que no haya ningún error.

Después de eso, verifique el estado del nodo del clúster ejecutando el siguiente comando de cucaracha.

cockroach node status --host=10.5.5.21

Obtendrá el nodo 1 con la dirección IP 10.5.5.21 funcionando con CockroachDB v2.1.6.

Paso 5:Agregar nodo al clúster

A continuación, agregaremos el 'nodo 2' y el 'nodo 3' al clúster seguro de CockroachDB.

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

ls -lah ~/.cockroah-certs/

Ahora ejecute el siguiente comando para agregar el 'nodo2' con la dirección IP 10.5.5.22. Agréguelo 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, vaya al 'nodo3' y ejecute 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 el 'nodo2' y el 'nodo3' se han agregado al clúster seguro de CockroachDB. Verifíquelo desde el servidor 'node1' usando el siguiente comando.

cockroach node status --host=10.5.5.21

Y obtendrá tres servidores diferentes funcionando con la cucaracha v2.1.6.

Paso 6 - Prueba

Para este último paso, probaremos nuestra instalación de CockroachDB Secure Cluster accediendo al panel de administración y probando la replicación de la base de datos entre servidores.

Prueba del panel de CockroachDB

CockroachDB proporciona una hermosa interfaz de usuario del tablero para monitorear el clúster. Abra su navegador web y escriba la dirección IP del servidor seguida del puerto 8080.

https://10.5.5.21:8080/

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

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

Regrese a su terminal 'node1' e inicie sesión en el shell SQL de cockroachdb usando el siguiente comando.

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

Ahora cree un nuevo usuario llamado 'hakase' con la contraseña '[email protected]#' utilizando la consulta a continuación.

CREATE USER hakase WITH PASSWORD '[email protected]#';

Escriba '\q' para salir del shell SQL de CockroachDB.

Ahora regrese al navegador web y escriba el usuario 'hakase' con la contraseña '[email protected]#' en la página de inicio de sesión y haga clic en el botón Iniciar sesión.

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

Prueba de la replicación de la base de datos

Ahora vamos a probar la replicación de la base de datos entre servidores en CockroachDB Cluster creando la base de datos en el 'nodo1' y verificando la base de datos desde el 'nodo2' o 'nodo3'.

En el 'nodo1', acceda al shell SQL de CockroachDB usando el siguiente comando.

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

Cree dos bases de datos 'hakasedb' y 'hakasedb2' utilizando las consultas a continuación.

create database hakasedb;
create database hakasedb2;

Ahora imprima la lista de bases de datos y asegúrese de obtener dos bases de datos que acabamos de crear.

show databases;

A continuación, inicie sesión en el servidor 'node2' y acceda al shell SQL de CockroachDB con el siguiente comando.

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

Consulte la lista de bases de datos.

show databases;

Y obtendrá 'hakasedb' y 'hakasedb2' se ha replicado en el servidor 'node2'.

Y finalmente, la instalación y configuración de Secure CockroachDB Cluster utilizando Ubuntu 18.04 se completó con éxito.


Ubuntu
  1. Cómo implementar Odoo 11 en Ubuntu 18.04

  2. Cómo instalar MySQL en Ubuntu 18.04

  3. Cómo implementar Rocket.Chat en Ubuntu 18.04

  4. Cómo implementar Mattermost en Ubuntu 18.04

  5. Cómo configurar un servidor OpenVPN en Ubuntu 18.04

Cómo configurar un servidor FTP seguro con Pure-FTPd en Ubuntu

Cómo instalar Plex Media Server en Ubuntu 16.04 Server/Desktop

Cómo instalar Jellyfin Media Server en Ubuntu 20.04 LTS Server/Desktop

Cómo instalar Plex Media Server en Ubuntu 20.04 LTS Server/Desktop

Cómo implementar un servidor TeamSpeak en Ubuntu 20.04

Cómo proteger Nginx con Let's Encrypt en Ubuntu 20.04