Database Sicuro · 6 min read · Dec 19, 2025

Come distribuire un cluster CockroachDB sicuro su Ubuntu Server

CockroachDB è un database SQL open source e cloud-native sviluppato da CockroachLabs. È un database SQL distribuito costruito su un archivio transazionale e key-value. CockroachDB è un database SQL scalabile che è stato paragonato al database Google Spanner. È basato sul protocollo PostgreSQL e pronto per la produzione.

In questo tutorial, ti mostreremo come impostare il cluster CockroachDB sicuro su Ubuntu 18.04. Imparerai come configurare il cluster sicuro, accedere alla dashboard di amministrazione di CockroachDB, creare un nuovo utente su CockroachDB, creare e visualizzare un database su CockroachDB.

Prerequisiti

Per eseguire il cluster CockroachDB, abbiamo bisogno di più server. E utilizzeremo tre server Ubuntu 18.04 con i dettagli del nome host e dell’indirizzo IP come di seguito.

node1   10.5.5.21  
node2   10.5.5.22  
node3   10.5.5.23

Cosa faremo?

  • Configurare il server NTP con Chrony systemctl restart chrony
    systemctl enable chrony
  • Scaricare e installare CockroachDB
  • Creare certificati
  • Inizializzare il cluster CockroachDB
  • Aggiungere un nodo al cluster CockroachDB
  • Testare

Passo 1 - Configurare il server NTP con Chrony

Innanzitutto, dobbiamo mantenere il tempo tra i server del cluster sincronizzato. Quindi, dobbiamo installare il pacchetto NTP su tutti i server. E per questa guida, utilizzeremo chrony.

Installa il pacchetto chrony su tutti i server utilizzando il seguente comando.

sudo apt install chrony -y

Una volta completata l’installazione, vai nella directory di configurazione ‘/etc/chrony/‘ ed edita il file ‘chrony.conf’.

cd /etc/chrony/  
vim chrony.conf

Elimina il pool NTP predefinito e sostituiscilo con il tuo pool nazionale.

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

Salva e chiudi.

Ora riavvia il servizio chrony e poi aggiungi chrony al servizio di avvio.

systemctl restart chrony  
systemctl enable chrony

Di conseguenza, il tempo tra i server sarà sincronizzato con gli stessi server del pool NTP.

Avvia e abilita Chrony

Passo 2 - Scaricare e installare CockroachDB

In questo passaggio, scaricheremo e installeremo CockroachDB su tutti i server. Quindi, esegui tutti i comandi su tutti i server del tuo cluster.

Crea una nuova directory chiamata ‘binary’ e accedi ad essa.

mkdir -p binary; cd binary

Scarica il file binario compresso di cockroachdb per Linux ed estrailo.

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

Ora copia il file binario ‘cockroach’ nella directory ‘/etc/local/bin’.

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

Dopo di che, puoi eseguire il comando ‘cockroach’ ed esplorare il comando di base per aiuto, controllare la versione, ecc.

cockroach version

CockroachDB è stato installato su tutti i server.

Installa CockroachDB

Passo 3 - Creare certificati

Ora genereremo alcuni certificati per proteggere il cluster CockroachDB. Possiamo utilizzare OpenSSL o la riga di comando di cockroach per generare i file di certificato.

Genereremo il certificato CA e la chiave, e il certificato generato per l’utente root e il certificato per ciascun nodo del cluster.

Crea la directory dei certificati ‘~/.cockroach-certs’ e la variabile di ambiente per essa.

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

Crea CA e copia su tutti i nodi

Sul server ‘node1’, crea l’autorità di certificazione utilizzando il comando cockroach qui sotto.

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

E otterrai ‘ca.key’ e ‘ca.crt’ nella directory ‘~/.cockroach-certs’.

Crea CA e copia su tutti i nodi

Dopo di che, copia il certificato CA e la chiave su tutti i server utilizzando il comando scp come di seguito.

Copia sul server ‘node2’.

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

Copia sul server ‘node3’.

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

Ora assicurati che il certificato CA e la chiave siano caricati su tutti i server host.

Crea certificati client

Dopo aver creato l’autorità di certificazione, dobbiamo generare il certificato client. Il certificato client sarà utilizzato per proteggere la comunicazione tra la shell SQL integrata e il cluster.

Genera il certificato client su tutti i server utilizzando il seguente comando cockroach.

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

E otterrai certificati client per l’utente root ‘client.root.crt’ e ‘client.root.key’.

Crea certificati server

I certificati server saranno utilizzati per proteggere la comunicazione tra i server nel cluster CockroachDB. E per unirti al cluster sicuro, devi generare certificati server per ciascun server.

Sul ‘node1’, crea il certificato server utilizzando il seguente comando.

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

Cambia l’indirizzo IP con il tuo.

Cambia indirizzo IP

Sul ‘node2’, crea il certificato server utilizzando il seguente comando.

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

Cambia l’indirizzo IP con il tuo.

Configurazione indirizzo IP

Sul ‘node3’, crea il certificato server utilizzando il seguente comando.

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

Cambia l’indirizzo IP con il tuo.

Ora otterrai i certificati server ‘node.crt’ e ‘node.key’ nella directory ‘~/.cockroach-certs’.

Passo 4 - Avviare il cluster CockroachDB sicuro

Dopo aver creato alcuni certificati SSL, inizializzeremo il cluster CockroachDB sicuro dal server ‘node1’.

Esegui il seguente comando sul server ‘node1’.

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

Assicurati che non ci siano errori.

Dopo di che, controlla lo stato del nodo del cluster eseguendo il comando cockroach qui sotto.

cockroach node status --host=10.5.5.21

Otterrai il nodo1 con indirizzo IP 10.5.5.21 attivo e funzionante con CockroachDB v2.1.6.

Passo 5 - Aggiungere un nodo al cluster

Successivamente, aggiungeremo ‘node2’ e ‘node3’ al cluster sicuro di CockroachDB.

Assicurati che il certificato CA e il certificato server siano nella directory ~/.cockroach-certs.

ls -lah ~/.cockroah-certs/

Ora esegui il seguente comando per aggiungere ‘node2’ con indirizzo IP 10.5.5.22. Aggiungilo al cluster 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 volta completato, vai su ‘node3’ ed esegui il seguente 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 l’indirizzo IP con il tuo.

Ora ‘node2’ e ‘node3’ sono stati aggiunti al cluster CockroachDB sicuro. Controlla dal server ‘node1’ utilizzando il seguente comando.

cockroach node status --host=10.5.5.21

E otterrai tre server diversi attivi e funzionanti con cockroach v2.1.6.

Aggiungi nodo al cluster

Passo 6 - Testare

Per quest’ultimo passaggio, testeremo la nostra installazione del cluster sicuro CockroachDB accedendo alla dashboard di amministrazione e testando la replica del database tra i server.

Testare la dashboard di CockroachDB

CockroachDB fornisce una bellissima interfaccia utente della dashboard per monitorare il cluster. Apri il tuo browser web e digita l’indirizzo IP del server seguito dalla porta 8080.

https://10.5.5.21:8080/

E otterrai la pagina di accesso di CockroachDB come di seguito.

Dashboard CockroachDB

Per accedere alla dashboard, dobbiamo creare un utente nel database CockroachDB.

Torna al terminale ‘node1’ e accedi alla shell SQL di cockroachdb utilizzando il seguente comando.

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

Ora crea un nuovo utente chiamato ‘hakase’ con password ‘hakase-labs123@#’ utilizzando la query qui sotto.

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

Digita ‘\q’ per uscire dalla shell SQL di CockroachDB.

Shell SQL di CockroachDB

Ora torna al browser web e digita l’utente ‘hakase’ con password ‘hakase-labs123@#’ nella pagina di accesso e fai clic sul pulsante Accedi.

Cockroach DB

E otterrai la dashboard di amministrazione di CockroachDB come di seguito.

Panoramica del cluster

Testare la replica del database

Ora testeremo la replica del database tra i server nel cluster CockroachDB creando il database su ‘node1’ e controllando il database da ‘node2’ o ‘node3’.

Su ‘node1’, accedi alla shell SQL di CockroachDB utilizzando il seguente comando.

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

Crea due database ‘hakasedb’ e ‘hakasedb2’ utilizzando le query qui sotto.

create database hakasedb;  
 create database hakasedb2;

Ora stampa l’elenco dei database e assicurati di ottenere i due database che abbiamo appena creato.

show databases;

Cockroach DB cmd line

Successivamente, accedi al server ‘node2’ e accedi alla shell SQL di CockroachDB utilizzando il seguente comando.

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

Controlla l’elenco dei database.

show databases;

E otterrai ‘hakasedb’ e ‘hakasedb2’ replicati sul server ‘node2’.

Mostra database

E infine, l’installazione e la configurazione del cluster CockroachDB sicuro utilizzando Ubuntu 18.04 sono state completate con successo.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.