Database · 9 min read · Dec 19, 2025

Come distribuire un cluster CockroachDB sicuro su server Ubuntu 20.04

CockroachDB è un database SQL open-source e cloud-native sviluppato da CockroachLabs. È un database SQL distribuito costruito su archivi transazionali e a chiave-valore.

CockroachDB è un database SQL scalabile che è stato paragonato al database Google Spanner. È basato sul protocollo PostgreSQL e pronto per la produzione.

Questo tutorial ti mostrerà come impostare il cluster CockroachDB sicuro su Ubuntu 20.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 questa guida, configureremo il cluster CockroachDB sicuro con 3 server Ubuntu 20.04.

node01 172.16.0.3
node02 172.16.0.4
node03 172.16.0.5

Cosa faremo?

  • Configurare NTP con Chrony
  • Scaricare il binario CockroachDB per Linux
  • Generare certificati SSL per il cluster CockroachDB
  • Avviare il cluster CockroachDB sicuro
  • Creare un utente amministratore per CockroachDB
  • Accedere alla dashboard di CockroachDB
  • Testare la replica del database sul cluster CockroachDB

Passo 1 - Configurare il server NTP con Chrony

Per prima cosa, sincronizzeremo l’ora su tutti e tre i nostri server con il server NTP utilizzando chrony. Assicurati di eseguire tutti i comandi di questo passo su tutti i server.

Ora aggiorna tutti i repository disponibili sul tuo sistema e installa il pacchetto chrony utilizzando il comando apt qui sotto.

sudo apt update  
sudo apt install chrony -y

Una volta completata l’installazione, vai nella directory ‘/etc/chrony’ ed edita la configurazione ‘chrony.conf’ utilizzando l’editor vim.

cd /etc/chrony/  
vim chrony.conf

Cambia il pool predefinito con il tuo server NTP più vicino come sotto.

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

Salva e chiudi.

Successivamente, riavvia il servizio chrony e aggiungilo all’avvio del sistema.

systemctl restart chrony  
systemctl enable chrony

Il servizio chrony è attivo e funzionante, controlla utilizzando il seguente comando.

systemctl status chrony

Di seguito è riportato il risultato che otterrai.

Installa Chrony su Ubuntu 20.04

Di conseguenza, l’installazione e la configurazione di Chrony sono state completate. Di fatto, l’ora su tutti i server è stata sincronizzata con gli stessi server NTP.

Passo 2 - Scaricare il binario CockroachDB

In questo passo, scaricheremo e installeremo CockroachDB su tutti e tre i nostri server.

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

mkdir -p binary; cd binary

Dopo di che, scarica l’ultima versione del file binario di CockroachDB ed estrailo.

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

Ora sposta il file binario ‘cockroach’ nella directory ‘/usr/local/bin’.

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

Di conseguenza, sei in grado di eseguire il comando ‘cockroach’ sul tuo sistema.

Controlla il file binario ‘cockroach’ e la versione di CockroachDB utilizzando il seguente comando.

which cockroach  
cockroach version

Di seguito è riportato il risultato che otterrai.

Scarica e installa il binario CockroachDB

Di conseguenza, hai scaricato e installato CockroachDB v20.1.5 sui server Linux, e ora sei in grado di creare il cluster CockroachDB.

Passo 3 - Creare certificati SSL per il cluster CockroachDB

Prima di creare il nuovo cluster CockroachDB, creeremo e genereremo certificati SSL per proteggere il nostro cluster. Per generare i certificati SSL, possiamo utilizzare OpenSSL o utilizzare il comando della riga di comando ‘cockroach’.

- Creare la directory dei certificati CockroachDB

Per prima cosa, dobbiamo creare una nuova directory per memorizzare tutti i certificati SSL per il nostro cluster CockroachDB.

Come utente root, crea una nuova directory ‘~/.cockroach-certs’ e aggiungi la variabile di ambiente di sistema ‘COCKROACH_CERTS_DIR’ utilizzando il comando qui sotto.

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

Successivamente, per rendere la variabile di ambiente ‘COCKROACH_CERTS_DIR’ permanente, modifica la configurazione ~/.bashrc utilizzando l’editor vim.

vim ~/.bashrc

Incolla la seguente configurazione alla fine della riga.

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

Salva e chiudi.

Successivamente, ricarica la configurazione ~/.bashrc e controlla la variabile di ambiente ‘COCKROACH_CERTS_DIR’.

source ~/.bashrc  
echo $COCKROACH_CERTS_DIR

E otterrai la variabile ‘COCKROACH_CERTS_DIR’ con valore ‘directory ${HOME}/.cockroach-certs/‘.

Imposta la directory dei certificati Cockroach

- Creare un certificato CA e una chiave

Dopo aver creato la directory del percorso SSL, genereremo il certificato CA e la chiave utilizzando la riga di comando ‘cockroach’ sul server ‘node01’.

Genera il certificato CA e la chiave nella ‘$COCKROACH_CERT_DIR’ utilizzando il comando ‘cockroach’ qui sotto.

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

Dopo di che, copia il ‘ca.crt’ e ‘ca.key’ generati sugli altri server ‘node02’ e ‘node03’ utilizzando il comando scp come sotto.

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/

Di conseguenza, il certificato CA e la chiave sono stati creati e caricati su tutti i server.

Genera certificato CA e copia su altri nodi

- Creare certificato client su node01

Dopo aver creato il certificato CA e la chiave, genereremo il certificato client utilizzato per proteggere la comunicazione tra la shell SQL integrata e il cluster.

Genera il certificato client utilizzando il seguente comando cockroach.

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

Ora otterrai nuovi certificati ‘client.root.crt’ e ‘client.root.key’ nella directory ‘$COCKROACH_CERTS_DIR’.

Genera certificato client CockroachDB

- Creare certificati server su tutti i server

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

Sul primo ‘node01’, genera il certificato server utilizzando il seguente comando, e assicurati di cambiare l’indirizzo IP con il tuo.

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

Successivamente, genera il certificato server per ‘node02’ utilizzando il seguente comando.

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

Dopo di che, genera il certificato server per il server ‘node03’.

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

Ora, se controlli la directory ‘~/.cockroach-certs’, otterrai nuovi certificati ‘node.crt’ e ‘node.key’ su tutti i server.

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

Di seguito sono riportati tutti i certificati disponibili sul server master ‘node01’.

Genera certificato per node01

Vedrai tre certificati diversi, certificati CA, certificati client e certificati server.

E per gli altri nodi ‘node02’ e ‘node03’, vedrai due certificati, certificati CA e certificati server.

Genera certificato server per node02 e node03

Di conseguenza, siamo pronti per avviare e creare il cluster CockroachDB sicuro.

Passo 4 - Avviare il cluster sicuro CockRoachDB

Per avviare il cluster CockroachDB sicuro, devi avviare il processo CockroachDB su ciascun server.

Prima di avviare il processo CockroachDB, assicurati di cambiare i dettagli dell’indirizzo IP per ciascun server con i tuoi e assicurati che la variabile di ambiente ‘$COCKROACH_CERTS_DIR’ sia caricata.

Per prima cosa, avvia il processo CockroachDB su ‘node01’ utilizzando il seguente 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

Avvia CockroachDB Secure Cluster

Ora spostati sul server ‘node02’ e avvia il processo 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

Avvia CockroachDB Secure Cluster

Dopo di che, avvia il processo CockroachDB sul server ‘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

Avvia CockroachDB Secure Cluster

Ora il processo CockroachDB è stato avviato su tutti i server. È in esecuzione sulla porta ‘26257’, e i dati di CockroachDB sono memorizzati nella directory ‘/var/lib/cockroachdb’.

Puoi controllare la porta di CockroachDB utilizzando il seguente comando.

ss -plntu

Come puoi vedere, il processo CockroachDB è in esecuzione sulla porta TCP ‘26257’ per la connessione al database e sulla porta ‘8080’ come dashboard di amministrazione di CockroachDB predefinita.

Successivamente, torna al server master ‘node01’ e inizializza il cluster CockroachDB sicuro utilizzando il comando qui sotto.

cockroach init --host=172.16.0.3:26257

E otterrai il seguente messaggio.

Cluster successfully initialized

Inoltre, puoi controllare il file di log di CockroachDB per vedere i dettagli dell’inizializzazione del cluster.

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

Di seguito è riportato il risultato che otterrai.

Inizializzazione del cluster CockroachDB

Di conseguenza, l’inizializzazione del cluster CockroachDB sicuro è stata completata con successo.

Passo 5 - Creare un utente amministratore per CockroachDB

Dopo aver inizializzato con successo il cluster CockroachDB, devi creare un nuovo utente che accederà alla dashboard di amministrazione di CockroachDB.

Dal server master ‘node01’, accedi alla shell SQL di CockroachDB utilizzando il seguente comando.

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

Ora crea un nuovo utente chiamato ‘yume’ con la password ‘yume321’ utilizzando la seguente query.

CREATE USER yume WITH PASSWORD 'yume321';

Dopo di che, consenti all’utente ‘yume’ di accedere e aggiungilo al ruolo ‘admin’.

ALTER USER yume LOGIN;  
GRANT admin TO yume;

Ora controlla tutti gli utenti disponibili su CockroachDB utilizzando la seguente query.

SHOW USERS;

Di seguito è riportato il risultato che otterrai.

Crea utente amministratore CockroachDB

Come puoi vedere, il nuovo utente yume è disponibile nell’elenco. È un membro del ruolo ‘admin’.

Di conseguenza, hai creato un nuovo utente per il database CockroachDB.

Passo 6 - Accedere alla dashboard di CockroachDB

Per impostazione predefinita, CockroachDB fornisce una dashboard di amministrazione basata sul web in esecuzione sulla porta TCP predefinita ‘8080’.

Apri il tuo browser web e digita l’indirizzo IP del tuo server con la porta ‘8080’ nella barra degli indirizzi.

https://172.16.0.3:8080/

Ora otterrai la pagina di accesso di CockroachDB come sotto.

Pagina di accesso CockroachDB

Digita l’utente ‘ yume ‘ e la password ‘ yume321 ‘ nel campo e fai clic sul pulsante ‘ LOG IN ‘.

E otterrai la dashboard di CockroachDB come sotto.

Dashboard CockroachDB

Come puoi vedere, hai il cluster CockroachDB con tre nodi attivi.

Di conseguenza, hai effettuato con successo l’accesso alla dashboard di amministrazione di CockroachDB con un nuovo utente.

Passo 7 - Testare la replica del database

Per questo passo, testeremo la replica del database tra ciascun nodo del cluster.

Creeremo un nuovo database sul server ‘node01’ utilizzando l’utente ‘yume’ e poi controlleremo il database dagli altri nodi ‘node02’ e ‘node03’.

- Connettersi a node01 e creare database

Sul server ‘node01’, accedi alla shell SQL di CockroachDB come utente ‘yume’ utilizzando il seguente comando.

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

Una volta effettuato l’accesso alla shell SQL di CockroachDB, crea nuovi database utilizzando le seguenti query.

CREATE DATABASE yumedb;  
CREATE DATABASE yumedb2;

Ora controlla tutti i database disponibili su CockroachDB.

SHOW DATABASES;

E otterrai ‘yumedb’ e ‘yumedb2’ nell’elenco dei database.

Crea database CockroachDB

- Controllare la replica del database su node02 e node03

Successivamente, spostati sul server ‘node02’ e accedi alla shell SQL di CockroachDB come utente ‘yume’ utilizzando il seguente comando.

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

Una volta effettuato l’accesso, controlla tutti i database disponibili utilizzando la seguente query.

SHOW DATABASES;

E otterrai i database ‘yumedb’ e ‘yumedb2’ nell’elenco.

Controlla la replica del database sul Node02

Fai lo stesso sul server ‘node03’, e otterrai lo stesso risultato.

Di seguito è riportato il risultato del server ‘node03’.

Controlla la replica del database su Node03

Di conseguenza, la replica del database tra i nodi del cluster CockroachDB funziona.

Inoltre, di seguito puoi vedere tutti i database dalla dashboard di amministrazione di CockroachDB.

Controlla il database dalla dashboard di CockroachDB

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

Riferimento

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

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.