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 -y

Sobald 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 2

Speichern 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 chrony

Der Chrony-Dienst läuft, überprüfen Sie dies mit dem folgenden Befehl.

systemctl status chrony

Unten ist das Ergebnis, das Sie erhalten werden.

Installieren Sie Chrony auf Ubuntu 20.04

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 binary

Laden 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.tgz

Bewegen 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 version

Unten ist das Ergebnis, das Sie erhalten werden.

Download und Installieren der CockroachDB-Binärdatei

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 ~/.bashrc

Fü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_DIR

Und Sie erhalten die Variable ‘COCKROACH_CERTS_DIR’ mit dem Wert ‘Verzeichnis ${HOME}/.cockroach-certs/‘.

Einrichten des Cockroach-Zertifikatsverzeichnisses

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

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

CA-Zertifikat generieren und auf andere Knoten kopieren

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

Jetzt erhalten Sie neue Zertifikate ‘client.root.crt’ und ‘client.root.key’ im ‘$COCKROACH_CERTS_DIR’-Verzeichnis.

Client-Zertifikat CockroachDB generieren

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

Generieren 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.key

Danach 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.key

Jetzt, 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’.

Zertifikat für node01 generieren

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.

Serverzertifikat für node02 und node03 generieren

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

Sicheres CockroachDB-Cluster starten

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

Sicheres CockroachDB-Cluster starten

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

Sicheres CockroachDB-Cluster starten

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 -plntu

Wie 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:26257

Und Sie erhalten die folgende Nachricht.

Cluster erfolgreich initialisiert

Zusä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 11

Unten ist das Ergebnis, das Sie erhalten werden.

CockroachDB-Clusterinitialisierung

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

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

Admin-Benutzer CockroachDB erstellen

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.

https://172.16.0.3:8080/

Jetzt erhalten Sie die Anmeldeseite von CockroachDB wie unten.

CockroachDB-Anmeldeseite

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.

CockroachDB-Dashboard

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

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

Datenbank CockroachDB erstellen

- Ü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.4

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

Überprüfen der Datenbankreplikation auf node02

Machen Sie dasselbe auf dem ‘node03’-Server, und Sie erhalten dasselbe Ergebnis.

Unten ist das Ergebnis des ‘node03’-Servers.

Überprüfen der Datenbankreplikation auf node03

Infolgedessen funktioniert die Datenbankreplikation über die Knoten im CockroachDB-Cluster.

Zusätzlich sehen Sie unten alle Datenbanken im CockroachDB-Admin-Dashboard.

Datenbank im CockroachDB-Dashboard überprüfen

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

Referenz

https://www.cockroachlabs.com/docs/stable/

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.