Datenbank-Cluster · 6 min read · Dec 19, 2025

So setzen Sie ein sicheres CockroachDB-Cluster auf Ubuntu Server ein

CockroachDB ist eine Open-Source- und Cloud-native SQL-Datenbank, die von CockroachLabs entwickelt wurde. Es handelt sich um eine verteilte SQL-Datenbank, die auf dem transaktionalen und Schlüssel-Wert-Speicher basiert. CockroachDB ist eine skalierbare SQL-Datenbank, die mit der Google Spanner-Datenbank verglichen wurde. Sie basiert auf dem PostgreSQL-Protokoll und ist produktionsbereit.

In diesem Tutorial zeigen wir Ihnen, wie Sie das sichere CockroachDB-Cluster auf Ubuntu 18.04 einrichten. Sie lernen, wie Sie das sichere Cluster einrichten, auf das CockroachDB-Admin-Dashboard zugreifen, einen neuen Benutzer in CockroachDB erstellen und eine Datenbank in CockroachDB erstellen und anzeigen.

Voraussetzungen

Um das CockroachDB-Cluster auszuführen, benötigen wir mehrere Server. Wir verwenden drei Ubuntu 18.04-Server mit den folgenden Hostnamen und IP-Adressen.

node1   10.5.5.21  
node2   10.5.5.22  
node3   10.5.5.23

Was werden wir tun?

  • NTP-Server mit Chrony einrichten systemctl restart chrony
    systemctl enable chrony
  • CockroachDB herunterladen und installieren
  • Zertifikate erstellen
  • CockroachDB-Cluster initialisieren
  • Knoten zum CockroachDB-Cluster hinzufügen
  • Testen

Schritt 1 - NTP-Server mit Chrony einrichten

Zunächst müssen wir die Zeit zwischen den Servern im Cluster synchronisieren. Daher müssen wir das NTP-Paket auf allen Servern installieren. Für diesen Leitfaden verwenden wir Chrony.

Installieren Sie das Chrony-Paket auf allen Servern mit dem folgenden Befehl.

sudo apt install chrony -y

Sobald die Installation abgeschlossen ist, wechseln Sie in das Konfigurationsverzeichnis ‘/etc/chrony/‘ und bearbeiten Sie die Datei ‘chrony.conf’.

cd /etc/chrony/  
vim chrony.conf

Löschen Sie den Standard-NTP-Pool und ersetzen Sie ihn durch Ihren eigenen Länderspool.

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

Speichern und schließen.

Starten Sie nun den Chrony-Dienst neu und fügen Sie Chrony zum Startdienst hinzu.

systemctl restart chrony  
systemctl enable chrony

Infolgedessen wird die Zeit zwischen den Servern auf die gleichen NTP-Pool-Server synchronisiert.

Starten und Aktivieren von Chrony

Schritt 2 - CockroachDB herunterladen und installieren

In diesem Schritt werden wir CockroachDB auf allen Servern herunterladen und installieren. Führen Sie also alle Befehle auf allen Ihren Cluster-Servern aus.

Erstellen Sie ein neues Verzeichnis namens ‘binary’ und wechseln Sie hinein.

mkdir -p binary; cd binary

Laden Sie die komprimierte CockroachDB-Binärdatei für Linux herunter und extrahieren Sie sie.

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

Kopieren Sie nun die ‘cockroach’-Binärdatei in das Verzeichnis ‘/etc/local/bin’.

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

Danach können Sie den Befehl ‘cockroach’ ausführen und die grundlegenden Befehle für Hilfe, Versionsprüfung usw. erkunden.

cockroach version

Die CockroachDB wurde auf allen Servern installiert.

CockroachDB installieren

Schritt 3 - Zertifikate erstellen

Jetzt werden wir einige Zertifikate generieren, um das CockroachDB-Cluster zu sichern. Wir können OpenSSL oder die Cockroach-Befehlszeile verwenden, um Zertifikatdateien zu generieren.

Wir werden das CA-Zertifikat und den Schlüssel generieren sowie das Zertifikat für den Benutzer root und das Zertifikat für jeden Knoten im Cluster erstellen.

Erstellen Sie das Zertifikatsverzeichnis ‘~/.cockroach-certs’ und die Umgebungsvariable dafür.

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

CA erstellen und auf alle Knoten kopieren

Erstellen Sie auf dem Server ‘node1’ die Zertifizierungsstelle mit dem folgenden Cockroach-Befehl.

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

Sie erhalten die ‘ca.key’ und ‘ca.crt’ im Verzeichnis ‘~/.cockroach-certs’.

CA erstellen und auf alle Knoten kopieren

Danach kopieren Sie das CA-Zertifikat und den Schlüssel auf alle Server mit dem scp-Befehl wie unten.

Kopieren Sie zum Server ‘node2’.

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

Kopieren Sie zum Server ‘node3’.

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

Stellen Sie nun sicher, dass das CA-Zertifikat und der Schlüssel auf allen Host-Servern hochgeladen wurden.

Client-Zertifikate erstellen

Nachdem die Zertifizierungsstelle erstellt wurde, müssen wir das Client-Zertifikat generieren. Das Client-Zertifikat wird verwendet, um die Kommunikation zwischen der integrierten SQL-Shell und dem Cluster zu sichern.

Generieren Sie das Client-Zertifikat auf allen Servern mit dem folgenden Cockroach-Befehl.

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

Sie erhalten Client-Zertifikate für den Benutzer root ‘client.root.crt’ und ‘client.root.key’.

Server-Zertifikate erstellen

Server-Zertifikate werden verwendet, um die Kommunikation zwischen Servern im CockroachDB-Cluster zu sichern. Um dem sicheren Cluster beizutreten, müssen Sie Server-Zertifikate für jeden Server generieren.

Erstellen Sie auf dem ‘node1’ das Server-Zertifikat mit dem folgenden Befehl.

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

Ändern Sie die IP-Adresse in Ihre eigene.

IP-Adresse ändern

Erstellen Sie auf dem ‘node2’ das Server-Zertifikat mit dem folgenden Befehl.

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

Ändern Sie die IP-Adresse in Ihre eigene.

IP-Adresse konfigurieren

Erstellen Sie auf dem ‘node3’ das Server-Zertifikat mit dem folgenden Befehl.

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

Ändern Sie die IP-Adresse in Ihre eigene.

Jetzt erhalten Sie Server-Zertifikate ‘node.crt’ und ‘node.key’ im Verzeichnis ‘~/.cockroach-certs’.

Schritt 4 - Sicheres CockroachDB-Cluster starten

Nachdem wir einige SSL-Zertifikate erstellt haben, werden wir das sichere CockroachDB-Cluster vom Server ‘node1’ aus initialisieren.

Führen Sie den folgenden Befehl auf dem Server ‘node1’ aus.

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

Stellen Sie sicher, dass es keinen Fehler gibt.

Überprüfen Sie danach den Status des Clusterknotens, indem Sie den folgenden Cockroach-Befehl ausführen.

cockroach node status --host=10.5.5.21

Sie erhalten, dass der node1 mit der IP-Adresse 10.5.5.21 aktiv ist und mit CockroachDB v2.1.6 läuft.

Schritt 5 - Knoten zum Cluster hinzufügen

Als nächstes werden wir die ‘node2’ und ‘node3’ zum sicheren CockroachDB-Cluster hinzufügen.

Stellen Sie sicher, dass das CA- und Server-Zertifikat im Verzeichnis ~/.cockroach-certs vorhanden ist.

ls -lah ~/.cockroach-certs/

Führen Sie nun den folgenden Befehl aus, um die ‘node2’ mit der IP-Adresse 10.5.5.22 hinzuzufügen. Fügen Sie sie zum CockroachDB-Cluster hinzu.

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

Sobald dies abgeschlossen ist, gehen Sie zu ‘node3’ und führen Sie den folgenden Befehl aus.

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

Ändern Sie die IP-Adresse in Ihre eigene.

Jetzt wurden die ‘node2’ und ‘node3’ zum sicheren CockroachDB-Cluster hinzugefügt. Überprüfen Sie dies vom Server ‘node1’ aus mit dem folgenden Befehl.

cockroach node status --host=10.5.5.21

Und Sie werden sehen, dass drei verschiedene Server aktiv sind und Cockroach v2.1.6 ausführen.

Knoten zum Cluster hinzufügen

Schritt 6 - Testen

Für diesen letzten Schritt werden wir unsere CockroachDB Secure Cluster-Installation testen, indem wir auf das Admin-Dashboard zugreifen und die Datenbankreplikation zwischen den Servern testen.

CockroachDB-Dashboard testen

Die CockroachDB bietet eine schöne Dashboard-Benutzeroberfläche zur Überwachung des Clusters. Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse des Servers gefolgt von dem Port 8080 ein.

https://10.5.5.21:8080/

Und Sie erhalten die Anmeldeseite von CockroachDB wie unten.

CockroachDB-Dashboard

Um sich im Dashboard anzumelden, müssen wir einen Benutzer in der CockroachDB-Datenbank erstellen.

Gehen Sie zurück zu Ihrem Terminal ‘node1’ und melden Sie sich mit dem folgenden Befehl bei der CockroachDB SQL-Shell an.

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

Erstellen Sie nun einen neuen Benutzer namens ‘hakase’ mit dem Passwort ‘hakase-labs123@#’ mit der folgenden Abfrage.

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

Geben Sie ‘ q’ ein, um die CockroachDB SQL-Shell zu verlassen.

CockroachDB SQL-Shell

Gehen Sie jetzt zurück zum Webbrowser und geben Sie den Benutzer ‘hakase’ mit dem Passwort ‘hakase-labs123@#’ auf der Anmeldeseite ein und klicken Sie auf die Schaltfläche Anmelden.

Cockroach DB

Und Sie erhalten das CockroachDB-Admin-Dashboard wie unten.

Clusterübersicht

Datenbankreplikation testen

Jetzt werden wir die Datenbankreplikation zwischen den Servern im CockroachDB-Cluster testen, indem wir die Datenbank auf ‘node1’ erstellen und die Datenbank von ‘node2’ oder ‘node3’ überprüfen.

Greifen Sie auf ‘node1’ auf die CockroachDB SQL-Shell mit dem folgenden Befehl zu.

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

Erstellen Sie zwei Datenbanken ‘hakasedb’ und ‘hakasedb2’ mit den folgenden Abfragen.

create database hakasedb;  
 create database hakasedb2;

Drucken Sie jetzt die Datenbankliste und stellen Sie sicher, dass Sie die beiden Datenbanken erhalten, die wir gerade erstellt haben.

show databases;

Cockroach DB cmd line

Melden Sie sich nun beim Server ‘node2’ an und greifen Sie auf die CockroachDB SQL-Shell mit dem folgenden Befehl zu.

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

Überprüfen Sie die Datenbankliste.

show databases;

Und Sie werden sehen, dass ‘hakasedb’ und ‘hakasedb2’ auf den Server ‘node2’ repliziert wurden.

Datenbanken anzeigen

Und schließlich wurde die Installation und Konfiguration des sicheren CockroachDB-Clusters unter Ubuntu 18.04 erfolgreich abgeschlossen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.