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 -yUna volta completata l’installazione, vai nella directory ‘/etc/chrony’ ed edita la configurazione ‘chrony.conf’ utilizzando l’editor vim.
cd /etc/chrony/
vim chrony.confCambia 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 2Salva e chiudi.
Successivamente, riavvia il servizio chrony e aggiungilo all’avvio del sistema.
systemctl restart chrony
systemctl enable chronyIl servizio chrony è attivo e funzionante, controlla utilizzando il seguente comando.
systemctl status chronyDi seguito è riportato il risultato che otterrai.

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 binaryDopo 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.tgzOra 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 versionDi seguito è riportato il risultato che otterrai.

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 ~/.bashrcIncolla 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_DIRE otterrai la variabile ‘COCKROACH_CERTS_DIR’ con valore ‘directory ${HOME}/.cockroach-certs/‘.

- 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.keyDopo 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.

- 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.keyOra otterrai nuovi certificati ‘client.root.crt’ e ‘client.root.key’ nella directory ‘$COCKROACH_CERTS_DIR’.

- 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.keySuccessivamente, 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.keyDopo 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.keyOra, 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’.

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.

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
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
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
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 -plntuCome 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:26257E otterrai il seguente messaggio.
Cluster successfully initializedInoltre, 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 11Di seguito è riportato il risultato che otterrai.

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

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.
Ora otterrai la pagina di accesso di CockroachDB come sotto.

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.

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

- 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.4Una volta effettuato l’accesso, controlla tutti i database disponibili utilizzando la seguente query.
SHOW DATABASES;E otterrai i database ‘yumedb’ e ‘yumedb2’ nell’elenco.

Fai lo stesso sul server ‘node03’, e otterrai lo stesso risultato.
Di seguito è riportato il risultato del server ‘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.

E infine, l’installazione e la configurazione del cluster CockroachDB sicuro su Ubuntu 20.04 sono state completate con successo.
Riferimento
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.