So installierst du CockroachDB Cluster auf Ubuntu 24.04

CockroachDB ist eine hoch belastbare und skalierbare verteilte SQL-Datenbank, die für große Datenmengen entwickelt wurde. Wenn sie auf Ubuntu installiert ist, bietet sie eine Open-Source, Cloud-native Datenbanklösung, die starke Konsistenz, hohe Verfügbarkeit und horizontale Skalierbarkeit bietet. Die Architektur von CockroachDB ermöglicht die automatische Replikation und Verteilung von Daten auf mehrere Knoten, wodurch die Datenintegrität sichergestellt und Ausfallzeiten trotz Hardwareausfällen minimiert werden. Seine Kompatibilität mit PostgreSQL macht es zu einer vielseitigen Wahl für Entwickler, die ein robustes Datenbanksystem für anspruchsvolle Anwendungen suchen. Wenn du CockroachDB unter Ubuntu installierst, kannst du diese fortschrittlichen Funktionen nutzen und gleichzeitig von der Sicherheit und Stabilität des Ubuntu-Betriebssystems profitieren.

CockroachDB speichert deine Daten an mehreren Orten, was die Datenbereitstellung beschleunigt. Außerdem ist sie einfach zu skalieren und bietet hohe Verfügbarkeit und Fehlertoleranz für deine Anwendungen.

In dieser Anleitung zeigen wir dir, wie du den CockroachDB-Cluster auf Ubuntu 24.04-Servern installierst.

Voraussetzungen

Bevor du fortfährst, solltest du sicherstellen, dass du Folgendes hast:

  • Zwei oder drei Ubuntu 24.04 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.

Benutzer einrichten

Bevor du CockroachDB installierst, erstellst du einen neuen Systembenutzer und die Gruppe cockroach. Dieser wird für die Ausführung des CockroachDB-Dienstes verwendet.

Führe zunächst den folgenden Befehl aus, um einen neuen Systembenutzer cockroach mit dem Heimatverzeichnis /opt/cockroachdb hinzuzufügen.

sudo adduser –home /opt/cockroachdb –system –group cockroach

Ändere nun den Besitz des Verzeichnisses /opt/cockroachdb auf den Benutzer und die Gruppe cockroach mit folgendem Befehl:

sudo chown -R cockroach:cockroach /opt/cockroachdb

EINRICHTEN BENUTZER

Herunterladen der CockroachDB-Binärdatei

Um CockroachDB zu installieren, kannst du es einfach von der GitHub-Seite herunterladen und die CockroachDB-Binärdatei in das Verzeichnis bin auf deinem Ubuntu-System verschieben.

Besuche die GitHub-Seite von CockroachDB und hole dir den Link für die neueste Version. Lade sie mit dem Befehl wget wie folgt herunter:

wget https://binaries.cockroachdb.com/cockroach-v24.1.1.linux-amd64.tgz

Sobald der Download abgeschlossen ist, entpackst du CockroachDB und verschiebst die Binärdatei cockroach in das Verzeichnis /usr/bin.

tar -xf cockroach-v24.1.1.linux-amd64.tgz
cp -i cockroach-*/cockroach /usr/bin/

Prüfe nun die CockroachDB-Version mit folgendem Befehl:

cockroach –version

In der Ausgabe unten siehst du, dass CockroachDB v24 installiert ist.

cockroachdb installieren

TLS-Zertifikate generieren

Um einen CockroachDB-Cluster zu erstellen, musst du ein SSL/TLS-Zertifikat generieren, um den Cluster zu sichern. Du musst CA-Zertifikate erzeugen und auf die Server verteilen und dann Zertifikate für Benutzer und Server generieren.

Bevor du weitermachst, führe den folgenden Befehl auf server1 und server2 aus. Damit erstellst du die Verzeichnisse certs und private für die String-TLS-Zertifikate.

mkdir -p /opt/cockroachdb/{certs,private}

CA-Zertifikat generieren

In diesem Abschnitt erstellst du ein CA-Zertifikat auf server1 und lädst es über scp oder eine sichere Kopie auf server2 hoch.

Auf server1 führst du den folgenden Befehl aus, um CA-Zertifikate (Certificate Authority) zu erzeugen. Die CA-Zertifikate ca.crt und ca.key werden erstellt.

cockroach cert create-ca
-certs-dir=/opt/cockroachdb/certs
-ca-key=/opt/cockroachdb/private/ca.key

erstellen ca

Lade nun die ca.crt und ca.key mit der scp oder einer sicheren Kopie auf die server2 hoch. Vergewissere dich, dass du dich problemlos auf der server2 einloggen kannst.

scp /opt/cockroachdb/private/ca.key root@192.168.5.16:/opt/cockroachdb/private/
scp /opt/cockroachdb/certs/ca.crt root@192.168.5.16:/opt/cockroachdb/certs/

ca auf Server2 kopieren

Client-Zertifikat generieren

Nachdem du das CA-Zertifikat erzeugt hast, erstellst du ein Client-Zertifikat für die Verwaltung des CockroachDB-Clusters. Nur Benutzer mit diesem Zertifikat können sich mit dem CockroachDB-Cluster verbinden und ihn verwalten.

Um das Client-Zertifikat für den Benutzer rootzu erzeugen und zu signieren, führe den folgenden Befehl aus cockroach.

cockroach cert create-client \
root \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

Client-Zertifikat erstellen

Server-Zertifikate generieren

In diesem Abschnitt generierst du Serverzertifikate auf server1 und server2.

Auf server1 führst du den folgenden Befehl aus, um das Serverzertifikat zu erstellen. Achte darauf, dass du die IP-Adresse und den Hostnamen mit deinen Daten änderst.

cockroach cert create-node \
server1 \
192.168.5.15 \
localhost \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

Zertifikat erstellen server1

Gehe nun zu server2 und generiere ein Node-Zertifikat mit folgendem. Ändere die IP-Adresse und den Hostnamen mit den Informationen von server2.

cockroach cert create-node \
server2 \
192.168.5.16 \
localhost \
–certs-dir=/opt/cockroachdb/certs \
–ca-key=/opt/cockroachdb/private/ca.key

Zertifikat erstellen server2

Zum Schluss führe den folgenden Befehl auf server1 und server2 aus, um die Eigentümerschaft der Verzeichnisse certs und private auf den Benutzer cockroach zu ändern.

sudo chown -R cockroach:cockroach /opt/cockroachdb/{certs,private}

CockroachDB als Dienst ausführen

Nachdem du SSL/TLS-Zertifikate erzeugt hast, erstellst du eine systemd-Dienstdatei für jeden CockroachDB-Server. Damit kannst du CockroachDB im Hintergrund laufen lassen und du kannst es ganz einfach mit dem systemctl verwalten.

Erstelle eine neue systemd-Dienstdatei /etc/systemd/system/cockroachdb.service mit dem Editor nano.

sudo nano /etc/systemd/system/cockroachdb.service

Für die server1 fügst du die folgende Konfiguration ein. In der Option --advertise-addr gibst du die IP-Adresse server1 ein. In der Option --join gibst du die IP-Adressen server1 und server2 ein.

[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.15 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target

Für server2 fügst du die unten stehende Konfiguration ein. Bei der Option --advertise-addr gibst du die IP-Adresse server2 ein. In der Option --join gibst du die beiden IP-Adressen server1 und server2 ein.

[Unit]
Description=Cockroach Database cluster node
Requires=network.target

[Service]
Type=notify
WorkingDirectory=/opt/cockroachdb
ExecStart=/usr/bin/cockroach start --certs-dir=/opt/cockroachdb/certs --advertise-addr=192.168.5.16 --join=192.168.5.15,192.168.5.16
TimeoutStopSec=60
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cockroach
User=cockroach

[Install]
WantedBy=default.target

Speichere und beende die Datei, wenn du fertig bist.

Führe nun den folgenden Befehl systemctl aus, um den systemd manager neu zu laden und deine Änderungen anzuwenden.

sudo systemctl daemon-reload

Starte und aktiviere dann den cockroachdb Dienst auf server1 und server2.

sudo systemctl enable –now cockroachdb

Setup-Service

Überprüfe abschließend den Status des cockroachdb Dienstes mit folgendem Befehl

sudo systemctl status cockroachdb

Du wirst sehen, dass der cockroachdb Dienst auf server1 und server2 läuft.

Scheckdienst

CockroachDB-Cluster erstellen

CockroachDB läuft also sowohl auf server1 als auch auf server2. Du kannst nun den CockroachDB-Cluster von einem dieser Server aus initialisieren.

Führe auf server1 den folgenden Befehl cockroach init aus, um den CockroachDB-Cluster zu initialisieren. Wenn er erfolgreich war, siehst du eine Ausgabe Cluster successfully initialized.

cockroach init –certs-dir=/opt/cockroachdb/certs –host=192.168.5.15:26257

Führe nun den folgenden Befehl aus, um das Cluster-Initialisierungsprotokoll zu überprüfen. Wenn der CockroachDB-Cluster läuft, erhältst du die Ausgabe CockroachDB node starting.

grep ’node starting‘ /opt/cockroachdb/cockroach-data/logs/cockroach.log -A 11

Cluster initialisieren

Als Nächstes führst du den folgenden Befehl cockroach aus, um den Status der Listenserver und des CockroachDB-Clusters zu überprüfen.

sudo cockroach node –certs-dir=/opt/cockroachdb/certs –host=server1 ls
sudo cockroach node –certs-dir=/opt/cockroachdb/certs –host=server1 status

Wie du unten siehst, sind server1 und server2 auf dem CockroachDB-Cluster mit dem Status active verfügbar.

Clusterstatus prüfen

Führe nun den Befehl cockroach sql aus, um auf die CockroachDB-Shell zuzugreifen. Von hier aus kannst du die Datenbank und die Benutzer im CockroachDB-Cluster verwalten.

sudo cockroach sql –certs-dir=/opt/cockroachdb/certs –host=server1:26257

Führe die folgenden Abfragen aus, um einen neuen Admin-Benutzer alice mit dem Passwort p4ssw0rd zu erstellen.

CREATE USER alice WITH PASSWORD ‚p4ssw0rd‘;
GRANT admin TO alice;

Gib quit ein, um den CockroachDB-Server zu verlassen.

Admin-Benutzer anlegen

Zugang zur CockroachDB-Webadministration

Standardmäßig läuft die CockroachDB-Webadministration auf Port 8080. Damit kannst du CockroachDB über einen Webbrowser verwalten.

Um auf das CockroachDB-Webadministrations-Dashboard zuzugreifen, rufe mit deinem Webbrowser http://server1:8080 auf. Gib deinen Benutzernamen und dein Passwort ein und klicke dann auf Anmelden.

login dashboard

Wenn du den richtigen Benutzernamen und das richtige Passwort hast, siehst du das CockroachDB-Administrations-Dashboard wie folgt:

Dashboard

Fazit

Herzlichen Glückwunsch! Du hast die Installation des CockroachDB-Clusters auf dem Ubuntu 24.04-Server abgeschlossen. Du hast auch gelernt, wie du den Status des CockroachDB-Clusters über die Kommandozeile und das Web-Administrations-Dashboard überprüfen kannst. Schließlich hast du über die CockroachDB-SQL-Shell einen Admin-Benutzer angelegt.

Das könnte dich auch interessieren …