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.23Was 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 -ySobald die Installation abgeschlossen ist, wechseln Sie in das Konfigurationsverzeichnis ‘/etc/chrony/‘ und bearbeiten Sie die Datei ‘chrony.conf’.
cd /etc/chrony/
vim chrony.confLö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 2Speichern und schließen.
Starten Sie nun den Chrony-Dienst neu und fügen Sie Chrony zum Startdienst hinzu.
systemctl restart chrony
systemctl enable chronyInfolgedessen wird die Zeit zwischen den Servern auf die gleichen NTP-Pool-Server synchronisiert.

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 binaryLaden 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.tgzKopieren 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 versionDie CockroachDB wurde auf allen Servern installiert.

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.keySie erhalten die ‘ca.key’ und ‘ca.crt’ im Verzeichnis ‘~/.cockroach-certs’.

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

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.

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.21Stellen 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.21Sie 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:26257Sobald 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.21Und Sie werden sehen, dass drei verschiedene Server aktiv sind und Cockroach v2.1.6 ausführen.

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.
Und Sie erhalten die Anmeldeseite von CockroachDB wie unten.

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.21Erstellen 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.

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.

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

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.21Erstellen 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;
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.

Und schließlich wurde die Installation und Konfiguration des sicheren CockroachDB-Clusters unter Ubuntu 18.04 erfolgreich abgeschlossen.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.