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
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.
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
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/
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 root
zu 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
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
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
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
Ü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.
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
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.
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.
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.
Wenn du den richtigen Benutzernamen und das richtige Passwort hast, siehst du das CockroachDB-Administrations-Dashboard wie folgt:
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.