Datenbank-Cluster · 8 min read · Dec 19, 2025
So setzen Sie ein sicheres CockroachDB-Cluster auf einem Ubuntu 20.04-Server ein

CockroachDB ist eine Open-Source- und cloud-native SQL-Datenbank, die von CockroachLabs entwickelt wurde. Es ist eine verteilte SQL-Datenbank, die auf transaktionalen und Schlüssel-Wert-Speichern basiert.
CockroachDB ist eine skalierbare SQL-Datenbank, die mit der Google Spanner-Datenbank verglichen wurde. Sie basiert auf dem PostgreSQL-Protokoll und ist produktionsbereit.
Dieses Tutorial zeigt Ihnen, wie Sie das sichere CockroachDB-Cluster auf Ubuntu 20.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
Für diesen Leitfaden richten wir das sichere CockroachDB-Cluster mit 3 Ubuntu-Servern 20.04 ein.
node01 172.16.0.3
node02 172.16.0.4
node03 172.16.0.5
Was werden wir tun?
- NTP mit Chrony einrichten
- CockroachDB-Binärdatei für Linux herunterladen
- SSL-Zertifikate für das CockroachDB-Cluster generieren
- Sicheres CockroachDB-Cluster starten
- Admin-Benutzer für CockroachDB erstellen
- Auf das CockroachDB-Dashboard zugreifen
- Datenbankreplikation im CockroachDB-Cluster testen
Schritt 1 - NTP-Server mit Chrony einrichten
Zuerst synchronisieren wir die Zeit auf allen drei Servern mit dem NTP-Server unter Verwendung von Chrony. Stellen Sie sicher, dass Sie alle Befehle in diesem Schritt auf allen Servern ausführen.
Aktualisieren Sie nun alle verfügbaren Repositories auf Ihrem System und installieren Sie das Chrony-Paket mit dem folgenden apt-Befehl.
sudo apt update
sudo apt install chrony -ySobald die Installation abgeschlossen ist, gehen Sie in das Verzeichnis ‘/etc/chrony’ und bearbeiten Sie die Konfiguration ‘chrony.conf’ mit dem vim-Editor.
cd /etc/chrony/
vim chrony.confÄndern Sie den Standard-Pool mit Ihrem nächstgelegenen NTP-Server wie unten.
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 2Speichern und schließen.
Starten Sie als Nächstes den Chrony-Dienst neu und fügen Sie ihn zum Systemstart hinzu.
systemctl restart chrony
systemctl enable chronyDer Chrony-Dienst läuft, überprüfen Sie dies mit dem folgenden Befehl.
systemctl status chronyUnten ist das Ergebnis, das Sie erhalten werden.

Infolgedessen wurde die Installation und Konfiguration von Chrony abgeschlossen. In der Tat wurde die Zeit auf allen Servern mit denselben NTP-Servern synchronisiert.
Schritt 2 - CockroachDB-Binärdatei herunterladen
In diesem Schritt werden wir CockroachDB auf allen drei Servern herunterladen und installieren.
Erstellen Sie nun ein neues Verzeichnis mit dem Namen ‘binary’ und wechseln Sie in dieses.
mkdir -p binary; cd binaryLaden Sie danach die neueste Version der CockroachDB-Binärdatei herunter und extrahieren Sie sie.
wget -q https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xf cockroach-latest.linux-amd64.tgzBewegen Sie nun die Binärdatei ‘cockroach’ in das Verzeichnis ‘/usr/local/bin’.
cp cockroach-*/cockroach /usr/local/bin/Infolgedessen können Sie den Befehl ‘cockroach’ auf Ihrem System ausführen.
Überprüfen Sie die ‘cockroach’-Binärdatei und die Version von CockroachDB mit dem folgenden Befehl.
which cockroach
cockroach versionUnten ist das Ergebnis, das Sie erhalten werden.

Infolgedessen haben Sie CockroachDB v20.1.5 auf Linux-Servern heruntergeladen und installiert, und jetzt können Sie das CockroachDB-Cluster erstellen.
Schritt 3 - SSL-Zertifikate für das CockroachDB-Cluster erstellen
Bevor wir das neue CockroachDB-Cluster erstellen, werden wir SSL-Zertifikate zur Sicherung unseres Clusters erstellen und generieren. Um die SSL-Zertifikate zu generieren, können wir OpenSSL oder den ‘cockroach’-Befehlszeilenbefehl verwenden.
- Erstellen Sie das CockroachDB-Zertifikatsverzeichnis
Zuerst müssen wir ein neues Verzeichnis zum Speichern aller SSL-Zertifikate für unser CockroachDB-Cluster erstellen.
Als Root-Benutzer erstellen Sie ein neues Verzeichnis ‘~/.cockroach-certs’ und fügen Sie die Systemumgebungsvariable ‘COCKROACH_CERTS_DIR’ mit dem folgenden Befehl hinzu.
mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'Um die Umgebungsvariable ‘COCKROACH_CERTS_DIR’ dauerhaft zu machen, bearbeiten Sie die Konfiguration ~/.bashrc mit dem vim-Editor.
vim ~/.bashrcFügen Sie die folgende Konfiguration am Ende der Zeile ein.
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'Speichern und schließen.
Laden Sie als Nächstes die Konfiguration ~/.bashrc neu und überprüfen Sie die Umgebungsvariable ‘COCKROACH_CERTS_DIR’.
source ~/.bashrc
echo $COCKROACH_CERTS_DIRUnd Sie erhalten die Variable ‘COCKROACH_CERTS_DIR’ mit dem Wert ‘Verzeichnis ${HOME}/.cockroach-certs/‘.

- Erstellen Sie ein CA-Zertifikat und einen Schlüssel
Nachdem wir das SSL-Pfadverzeichnis erstellt haben, werden wir das CA-Zertifikat und den Schlüssel mit dem ‘cockroach’-Befehlszeilenbefehl auf dem ‘node01’-Server generieren.
Generieren Sie das CA-Zertifikat und den Schlüssel im ‘$COCKROACH_CERT_DIR’ mit dem folgenden ‘cockroach’-Befehl.
cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyDanach kopieren Sie das generierte ‘ca.crt’ und ‘ca.key’ auf die anderen Server ‘node02’ und ‘node03’ mit dem scp-Befehl wie unten.
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/Infolgedessen wurden das CA-Zertifikat und der Schlüssel erstellt und auf alle Server hochgeladen.

- Erstellen Sie das Client-Zertifikat auf node01
Nachdem wir das CA-Zertifikat und den Schlüssel erstellt haben, werden wir das Client-Zertifikat generieren, das zur Sicherung der Kommunikation zwischen der integrierten SQL-Shell und dem Cluster verwendet wird.
Generieren Sie das Client-Zertifikat mit dem folgenden Cockroach-Befehl.
cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyJetzt erhalten Sie neue Zertifikate ‘client.root.crt’ und ‘client.root.key’ im ‘$COCKROACH_CERTS_DIR’-Verzeichnis.

- Erstellen Sie Serverzertifikate auf allen Servern
Serverzertifikate werden verwendet, um die Kommunikation zwischen Servern im CockroachDB-Cluster zu sichern. Um dem sicheren Cluster beizutreten, müssen Sie Serverzertifikate für jeden Server generieren.
Auf dem ersten ‘node01’ generieren Sie das Serverzertifikat mit dem folgenden Befehl und stellen Sie sicher, dass Sie die IP-Adresse durch Ihre eigene ersetzen.
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.3 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyGenerieren Sie als Nächstes das Serverzertifikat für ‘node02’ mit dem folgenden Befehl.
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.4 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyDanach generieren Sie das Serverzertifikat für den ‘node03’-Server.
cockroach cert create-node \
localhost \
$(hostname) \
172.16.0.5 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.keyJetzt, wenn Sie das Verzeichnis ‘~/.cockroach-certs’ überprüfen, erhalten Sie neue Zertifikate ‘node.crt’ und ‘node.key’ auf allen Servern.
ls -lah ${HOME}/.cockroach-certs/Unten sind alle verfügbaren Zertifikate auf dem Master-Server ‘node01’.

Sie sehen drei verschiedene Zertifikate, CA-Zertifikate, Client-Zertifikate und Server-Zertifikate.
Und für die anderen Knoten ‘node02’ und ‘node03’ sehen Sie zwei Zertifikate, CA-Zertifikate und Server-Zertifikate.

Infolgedessen sind wir bereit, das CockroachDB-Sicherheitscluster zu starten und zu erstellen.
Schritt 4 - Sicheres Cluster CockRoachDB starten
Um das sichere CockroachDB-Cluster zu starten, müssen Sie den CockroachDB-Prozess auf jedem Server starten.
Bevor Sie den CockroachDB-Prozess starten, stellen Sie sicher, dass Sie die IP-Adressen für jeden Server durch Ihre eigenen ersetzen und dass die Umgebungsvariable ‘$COCKROACH_CERTS_DIR’ geladen ist.
Zuerst starten Sie den CockroachDB-Prozess auf dem ‘node01’ mit dem folgenden Befehl.
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
Wechseln Sie nun zum ‘node02’-Server und starten Sie den CockroachDB-Prozess.
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
Danach starten Sie den CockroachDB-Prozess auf dem ‘node03’-Server.
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
Jetzt wurde der CockroachDB-Prozess auf allen Servern gestartet. Er läuft auf dem Port ‘26257’, und die DockroachDB-Daten werden im Verzeichnis ‘/var/lib/cockroachdb’ gespeichert.
Sie können den CockroachDB-Port mit dem folgenden Befehl überprüfen.
ss -plntuWie zu sehen ist, läuft der CockroachDB-Prozess auf dem TCP-Port ‘26257’ für die Datenbankverbindung und auf dem Port ‘8080’ als Standard-CockroachDB-Admin-Dashboard.
Kehren Sie als Nächstes zum Master-Server ‘node01’ zurück und initialisieren Sie das sichere CockroachDB-Cluster mit dem folgenden Befehl.
cockroach init --host=172.16.0.3:26257Und Sie erhalten die folgende Nachricht.
Cluster erfolgreich initialisiertZusätzlich können Sie die CockroachDB-Protokolldatei überprüfen, um die Details zur Clusterinitialisierung zu sehen.
grep 'node starting' /var/lib/cockroachdb/logs/cockroach.log -A 11Unten ist das Ergebnis, das Sie erhalten werden.

Infolgedessen wurde die Initialisierung des CockroachDB-Sicherheitsclusters erfolgreich abgeschlossen.
Schritt 5 - Admin-Benutzer für CockroachDB erstellen
Nachdem Sie das CockroachDB-Cluster erfolgreich initialisiert haben, müssen Sie einen neuen Benutzer erstellen, der sich im CockroachDB-Admin-Dashboard anmelden kann.
Melden Sie sich vom Master-Server ‘node01’ aus in der CockroachDB-SQL-Shell mit dem folgenden Befehl an.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=172.16.0.3Erstellen Sie nun einen neuen Benutzer mit dem Namen ‘yume’ und dem Passwort ‘yume321’ mit der folgenden Abfrage.
CREATE USER yume WITH PASSWORD 'yume321';Danach erlauben Sie dem Benutzer ‘yume’ die Anmeldung und fügen ihn der Rolle ‘admin’ hinzu.
ALTER USER yume LOGIN;
GRANT admin TO yume;Überprüfen Sie nun alle verfügbaren Benutzer in CockroachDB mit der folgenden Abfrage.
SHOW USERS;Unten ist das Ergebnis, das Sie erhalten werden.

Wie zu sehen ist, ist der neue Benutzer yume in der Liste verfügbar. Er ist Mitglied der Rolle ‘admin’.
Infolgedessen haben Sie einen neuen Benutzer für die CockroachDB-Datenbank erstellt.
Schritt 6 - Auf das CockroachDB-Dashboard zugreifen
Standardmäßig bietet CockroachDB ein webbasiertes Admin-Dashboard, das auf dem Standard-TCP-Port ‘8080’ läuft.
Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse Ihres Servers mit dem Port ‘8080’ in die Adresszeile ein.
Jetzt erhalten Sie die Anmeldeseite von CockroachDB wie unten.

Geben Sie den Benutzer ‘ yume ‘ und das Passwort ‘ yume321 ‘ in die Felder ein und klicken Sie auf die Schaltfläche ‘ ANMELDEN ‘.
Und Sie erhalten das CockroachDB-Dashboard wie unten.

Wie zu sehen ist, haben Sie das CockroachDB-Cluster mit drei aktiven Knoten.
Infolgedessen haben Sie sich erfolgreich mit einem neuen Benutzer im CockroachDB-Admin-Dashboard angemeldet.
Schritt 7 - Testen der Datenbankreplikation
In diesem Schritt werden wir die Datenbankreplikation zwischen jedem Knoten im Cluster testen.
Wir werden eine neue Datenbank auf dem ‘node01’-Server mit dem Benutzer ‘yume’ erstellen und dann die Datenbank von den anderen Knoten ‘node02’ und ‘node03’ überprüfen.
- Verbinden Sie sich mit node01 und erstellen Sie Datenbanken
Auf dem ‘node01’-Server melden Sie sich in der CockroachDB-SQL-Shell als Benutzer ‘yume’ mit dem folgenden Befehl an.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \
--host=172.16.0.3Sobald Sie sich in der CockroachDB-SQL-Shell angemeldet haben, erstellen Sie neue Datenbanken mit den folgenden Abfragen.
CREATE DATABASE yumedb;
CREATE DATABASE yumedb2;Überprüfen Sie nun alle verfügbaren Datenbanken in CockroachDB.
SHOW DATABASES;Und Sie erhalten die ‘yumedb’ und ‘yumedb2’ in der Liste der Datenbanken.

- Überprüfen Sie die Datenbankreplikation auf node02 und node03
Wechseln Sie als Nächstes zum ‘node02’-Server und melden Sie sich in der CockroachDB-SQL-Shell als Benutzer ‘yume’ mit dem folgenden Befehl an.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \
--host=172.16.0.4Sobald Sie angemeldet sind, überprüfen Sie alle verfügbaren Datenbanken mit der folgenden Abfrage.
SHOW DATABASES;Und Sie erhalten die ‘yumedb’ und ‘yumedb2’ Datenbanken in der Liste.

Machen Sie dasselbe auf dem ‘node03’-Server, und Sie erhalten dasselbe Ergebnis.
Unten ist das Ergebnis des ‘node03’-Servers.

Infolgedessen funktioniert die Datenbankreplikation über die Knoten im CockroachDB-Cluster.
Zusätzlich sehen Sie unten alle Datenbanken im CockroachDB-Admin-Dashboard.

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