Base de données · 7 min read · Dec 19, 2025

Comment déployer un cluster CockroachDB sécurisé sur un serveur Ubuntu

CockroachDB est une base de données SQL open source et cloud-native développée par CockroachLabs. C’est une base de données SQL distribuée construite sur le stockage transactionnel et clé-valeur. CockroachDB est une base de données SQL évolutive qui a été comparée à la base de données Google Spanner. Elle est basée sur le protocole PostgreSQL et prête pour la production.

Dans ce tutoriel, nous allons vous montrer comment configurer le cluster CockroachDB sécurisé sur Ubuntu 18.04. Vous apprendrez à configurer le cluster sécurisé, accéder au tableau de bord d’administration de CockroachDB, créer un nouvel utilisateur sur CockroachDB, créer et afficher une base de données sur CockroachDB.

Prérequis

Pour exécuter le cluster CockroachDB, nous avons besoin de plusieurs serveurs. Nous utiliserons trois serveurs Ubuntu 18.04 avec les détails du nom d’hôte et de l’adresse IP ci-dessous.

node1   10.5.5.21  
node2   10.5.5.22  
node3   10.5.5.23

Que allons-nous faire ?

  • Configurer le serveur NTP avec Chrony systemctl restart chrony
    systemctl enable chrony
  • Télécharger et installer CockroachDB
  • Créer des certificats
  • Initialiser le cluster CockroachDB
  • Ajouter un nœud au cluster CockroachDB
  • Tester

Étape 1 - Configurer le serveur NTP avec Chrony

Tout d’abord, nous devons synchroniser l’heure entre les serveurs du cluster. Nous devons donc installer le package NTP sur tous les serveurs. Pour ce guide, nous utiliserons chrony.

Installez le package chrony sur tous les serveurs en utilisant la commande suivante.

sudo apt install chrony -y

Une fois l’installation terminée, allez dans le répertoire de configuration ‘/etc/chrony/‘ et éditez le fichier ‘chrony.conf’.

cd /etc/chrony/  
vim chrony.conf

Supprimez le pool NTP par défaut et remplacez-le par votre propre pool de pays.

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

Enregistrez et fermez.

Maintenant, redémarrez le service chrony et ajoutez chrony au service de démarrage.

systemctl restart chrony  
systemctl enable chrony

En conséquence, l’heure entre les serveurs sera synchronisée avec les mêmes serveurs de pool NTP.

Démarrer et activer Chrony

Étape 2 - Télécharger et installer CockroachDB

Dans cette étape, nous allons télécharger et installer CockroachDB sur tous les serveurs. Exécutez donc toutes les commandes sur tous vos serveurs de cluster.

Créez un nouveau répertoire appelé ‘binary’ et allez dedans.

mkdir -p binary; cd binary

Téléchargez le fichier binaire compressé de cockroachdb pour Linux et extrayez-le.

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

Maintenant, copiez le fichier binaire ‘cockroach’ dans le répertoire ‘/etc/local/bin’.

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

Après cela, vous pouvez exécuter la commande ‘cockroach’ et explorer la commande de base pour obtenir de l’aide, vérifier la version, etc.

cockroach version

CockroachDB a été installé sur tous les serveurs.

Installer CockroachDB

Étape 3 - Créer des certificats

Nous allons maintenant générer des certificats pour sécuriser le cluster CockroachDB. Nous pouvons utiliser OpenSSL ou la ligne de commande cockroach pour générer des fichiers de certificat.

Nous allons générer le certificat CA et la clé, et le certificat pour l’utilisateur root ainsi que le certificat pour chaque nœud du cluster.

Créez le répertoire de certificats ‘~/.cockroach-certs’ et la variable d’environnement pour cela.

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

Créer CA et copier sur tous les nœuds

Sur le serveur ‘node1’, créez l’autorité de certification en utilisant la commande cockroach ci-dessous.

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

Et vous obtiendrez ‘ca.key’ et ‘ca.crt’ dans le répertoire ‘~/.cockroach-certs’.

Créer CA et copier sur tous les nœuds

Après cela, copiez le certificat CA et la clé sur tous les serveurs en utilisant la commande scp comme ci-dessous.

Copiez sur le serveur ‘node2’.

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

Copiez sur le serveur ‘node3’.

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

Assurez-vous maintenant que le certificat CA et la clé sont téléchargés sur tous les serveurs hôtes.

Créer des certificats clients

Après avoir créé l’autorité de certification, nous devons générer le certificat client. Le certificat client sera utilisé pour sécuriser la communication entre le shell SQL intégré et le cluster.

Générez le certificat client sur tous les serveurs en utilisant la commande cockroach suivante.

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

Et vous obtiendrez des certificats clients pour l’utilisateur root ‘client.root.crt’ et ‘client.root.key’.

Créer des certificats de serveur

Les certificats de serveur seront utilisés pour sécuriser la communication entre les serveurs sur le cluster CockroachDB. Et pour rejoindre le cluster sécurisé, vous devez générer des certificats de serveur pour chaque serveur.

Sur le ‘node1’, créez le certificat de serveur en utilisant la commande suivante.

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

Changez l’adresse IP avec la vôtre.

Changer l'adresse IP

Sur le ‘node2’, créez le certificat de serveur en utilisant la commande suivante.

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

Changez l’adresse IP avec la vôtre.

Configuration de l'adresse IP

Sur le ‘node3’, créez le certificat de serveur en utilisant la commande suivante.

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

Changez l’adresse IP avec la vôtre.

Maintenant, vous obtiendrez des certificats de serveur ‘node.crt’ et ‘node.key’ dans le répertoire ‘~/.cockroach-certs’.

Étape 4 - Démarrer le cluster CockroachDB sécurisé

Après avoir créé quelques certificats SSL, nous allons initialiser le cluster CockroachDB sécurisé depuis le serveur ‘node1’.

Exécutez la commande suivante sur le serveur ‘node1’.

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

Assurez-vous qu’il n’y a pas d’erreur.

Après cela, vérifiez l’état du nœud du cluster en exécutant la commande cockroach ci-dessous.

cockroach node status --host=10.5.5.21

Vous obtiendrez que le node1 avec l’adresse IP 10.5.5.21 est en cours d’exécution avec CockroachDB v2.1.6.

Étape 5 - Ajouter un nœud au cluster

Ensuite, nous allons ajouter le ‘node2’ et le ‘node3’ au cluster CockroachDB sécurisé.

Assurez-vous que le certificat CA et le certificat de serveur sont dans le répertoire ~/.cockroach-certs.

ls -lah ~/.cockroach-certs/

Maintenant, exécutez la commande suivante pour ajouter le ‘node2’ avec l’adresse IP 10.5.5.22. Ajoutez-le au 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

Une fois terminé, allez sur le ‘node3’ et exécutez la commande suivante.

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

Changez l’adresse IP avec la vôtre.

Maintenant, le ‘node2’ et le ‘node3’ ont été ajoutés au cluster CockroachDB sécurisé. Vérifiez-le depuis le serveur ‘node1’ en utilisant la commande suivante.

cockroach node status --host=10.5.5.21

Et vous obtiendrez trois serveurs différents en cours d’exécution avec cockroach v2.1.6.

Ajouter un nœud au cluster

Étape 6 - Test

Pour cette dernière étape, nous allons tester notre installation du cluster sécurisé CockroachDB en accédant au tableau de bord d’administration et en testant la réplication de la base de données entre les serveurs.

Tester le tableau de bord CockroachDB

CockroachDB fournit une belle interface utilisateur de tableau de bord pour surveiller le cluster. Ouvrez votre navigateur web et tapez l’adresse IP du serveur suivie du port 8080.

https://10.5.5.21:8080/

Et vous obtiendrez la page de connexion de CockroachDB ci-dessous.

Tableau de bord CockroachDB

Pour vous connecter au tableau de bord, nous devons créer un utilisateur dans la base de données CockroachDB.

Retournez à votre terminal ‘node1’ et connectez-vous au shell SQL de cockroachdb en utilisant la commande suivante.

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

Maintenant, créez un nouvel utilisateur appelé ‘hakase’ avec le mot de passe ‘hakase-labs123@#’ en utilisant la requête ci-dessous.

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

Tapez ‘\q’ pour sortir du shell SQL de CockroachDB.

Shell SQL CockroachDB

Maintenant, retournez au navigateur web et tapez l’utilisateur ‘hakase’ avec le mot de passe ‘hakase-labs123@#’ sur la page de connexion et cliquez sur le bouton Connexion.

Cockroach DB

Et vous obtiendrez le tableau de bord d’administration de CockroachDB ci-dessous.

Aperçu du cluster

Tester la réplication de la base de données

Nous allons maintenant tester la réplication de la base de données entre les serveurs sur le cluster CockroachDB en créant la base de données sur le ‘node1’ et en vérifiant la base de données depuis le ‘node2’ ou le ‘node3’.

Sur le ‘node1’, accédez au shell SQL de CockroachDB en utilisant la commande suivante.

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

Créez deux bases de données ‘hakasedb’ et ‘hakasedb2’ en utilisant les requêtes ci-dessous.

create database hakasedb;  
 create database hakasedb2;

Maintenant, imprimez la liste des bases de données et assurez-vous d’obtenir les deux bases de données que nous venons de créer.

show databases;

Ligne de commande Cockroach DB

Ensuite, connectez-vous au serveur ‘node2’ et accédez au shell SQL de CockroachDB en utilisant la commande suivante.

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

Vérifiez la liste des bases de données.

show databases;

Et vous obtiendrez ‘hakasedb’ et ‘hakasedb2’ qui ont été répliquées sur le serveur ‘node2’.

Afficher les bases de données

Et enfin, l’installation et la configuration du cluster CockroachDB sécurisé utilisant Ubuntu 18.04 ont été complétées avec succès.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.