Wie man Secure CockroachDB Cluster auf Ubuntu Server einsetzt

CockroachDB ist eine Open-Source- und Cloud-native SQL-Datenbank, die von den CockroachLabs entwickelt wurde. Es handelt sich um eine verteilte SQL-Datenbank, die auf dem Transaktions- und Schlüsselwertspeicher basiert. CockroachDB ist eine skalierbare SQL-Datenbank, die mit der Google Spanner-Datenbank verglichen wurde. Es basiert auf dem PostgreSQL-Protokoll wire und ist produktionsreif.

In diesem Tutorial zeigen wir Ihnen, wie Sie den Secure CockroachDB Cluster auf Ubuntu 18.04 einrichten. Sie werden lernen, wie Sie den sicheren Cluster einrichten, auf das CockroachDB-Admin-Dashboard zugreifen, einen neuen Benutzer auf CockroachDB anlegen, Datenbank auf CockroachDB erstellen und anzeigen.

Voraussetzungen

Um den CockroachDB Cluster betreiben zu können, benötigen wir mehrere Server. Und wir werden drei Ubuntu 18.04 Server mit dem detaillierten Hostnamen und der IP-Adresse wie unten beschrieben verwenden.

node1   10.5.5.21
 node2   10.5.5.22
 node3   10.5.5.23

Was werden wir tun?

  • Einrichten des NTP-Servers mit Chronysystemctl Neustart chrony
    systemctl Aktivierung chrony
  • CockroachDB herunterladen und installieren
  • Zertifikate erstellen
  • KakerlakenDB-Cluster initialisieren
  • Knoten zum CockroachDB Cluster hinzufügen
  • Prüfung

Schritt 1 – NTP-Server mit Chrony einrichten

Erstens müssen wir die Zeit zwischen den Servern auf dem Cluster synchron halten. Daher müssen wir das NTP-Paket auf allen Servern installieren. Und für diesen Leitfaden werden wir die Chronik verwenden.

Installieren Sie das Chrony-Paket auf allen Servern mit dem folgenden Befehl.

sudo apt install chrony -y

Wenn die Installation abgeschlossen ist, gehen Sie in das Konfigurationsverzeichnis von /etc/chrony/‘ und bearbeiten Sie die Datei’chrony.conf‘.

cd /etc/chrony/
 vim chrony.conf

Löschen Sie den Standard-NTP-Pool und ersetzen Sie ihn durch Ihren eigenen Länderpool.

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 2

Speichern und schließen.

Starten Sie nun den chrony-Dienst neu und fügen Sie dann chrony zum Startup-Dienst hinzu.

systemctl restart chrony
 systemctl enable chrony

Dadurch wird die Zeit zwischen den Servern mit den gleichen NTP-Pool-Servern synchronisiert.

Chrony starten und aktivieren

Schritt 2 – CockroachDB herunterladen und installieren

In diesem Schritt werden wir die 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 stiegen Sie in dieses Verzeichnis ein.

mkdir -p binary; cd binary

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

Kopiere nun die Binärdatei „cockroach“ in das Verzeichnis „/etc/local/bin“.

cp cockroach-*/cockroach /usr/local/bin/

Danach kannst du den Befehl „cockroach“ ausführen und den grundlegenden Befehl um Hilfe bitten, die Version überprüfen usw.

cockroach version

Die CockroachDB wurde auf allen Servern installiert.

CockroachDB installieren

Schritt 3 – Zertifikate erstellen

Nun werden wir einige Zertifikate generieren, um den CockrouchDB Cluster zu sichern. Wir können OpenSSL oder die Schaben-Befehlszeile verwenden, um Zertifikatsdateien zu erzeugen.

Wir werden das CA-Zertifikat und den Schlüssel sowie das Zertifikat für Benutzerstamm und Zertifikat für jeden Knoten im Cluster generieren.

Erstellen Sie das Zertifikatsverzeichnis’~/.cockroach-certs‘ und die Umgebungsvariable dafür.

mkdir -p ${HOME}/.cockroach-certs/
 export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'

CA anlegen und in alle Knoten kopieren

Erstellen Sie auf dem ’node1′ Server die Zertifizierungsstelle mit dem untenstehenden Schabenbefehl.

cockroach cert create-ca \
 --certs-dir=$COCKROACH_CERTS_DIR \
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Und du bekommst den’ca.key‘ und’ca.crt‘ im Verzeichnis’~/.cockroach-certs‘.

CA anlegen und in alle Knoten kopieren

Kopieren Sie anschließend das Ca-Zertifikat und den Schlüssel auf alle Server mit dem Befehl scp wie unten beschrieben.

Kopiert auf den Server’node2′.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key root@10.5.5.22:~/.cockroach-certs/

Kopieren Sie auf den Server „node3“.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key root@10.5.5.23:~/.cockroach-certs/

Stellen Sie nun sicher, dass das CA-Zertifikat und der Schlüssel auf alle Hostserver hochgeladen werden.

CA-Zertifikat prüfen

Client-Zertifikate erstellen

Nachdem wir die Zertifizierungsstelle erstellt haben, 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.

Erzeugen Sie das Client-Zertifikat auf allen Servern mit dem folgenden Schabenbefehl.

cockroach cert create-client \
 root \
 --certs-dir=$COCKROACH_CERTS_DIR \
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Und Sie erhalten Client-Zertifikate für den Benutzerstamm ‚client.root.crt‘ und ‚client.root.key‘.

Client-Zertifikate erstellen

Serverzertifikate erstellen

Serverzertifikate werden verwendet, um die Kommunikation zwischen Servern auf dem CockroachDB-Cluster zu sichern. Und um dem sicheren Cluster beizutreten, müssen Sie für jeden Server Server Serverzertifikate generieren.

Erstellen Sie auf dem ’node1′ das Serverzertifikat 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

Ändere die IP-Adresse mit deiner eigenen.

IP-Adresse ändern

Erstellen Sie auf dem’node2′ das Serverzertifikat 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

Ändere die IP-Adresse mit deiner eigenen.

Konfiguration der IP-Adresse

Erstellen Sie auf dem ’node3′ das Serverzertifikat 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

Ändere die IP-Adresse mit deiner eigenen.

Jetzt erhalten Sie Serverzertifikate’node.crt‘ und’node.key‘ im Verzeichnis’~/.cockroach-certs‘.

Schritt 4 – Starten Sie Secure CockroachDB Cluster

Nachdem wir einige SSL-Zertifikate erstellt haben, werden wir den Secure CockroachDB Cluster vom’node1′ Server initialisieren.

Führen Sie den folgenden Befehl auf dem ’node1′ Server aus.

cockroach start \
 --background --certs-dir=$COCKROACH_CERTS_DIR \
 --advertise-host=10.5.5.21 --listen-addr=10.5.5.21

Stellen Sie sicher, dass kein Fehler vorliegt.

Danach überprüfen Sie den Status des Clusterknotens, indem Sie den untenstehenden Schabenbefehl ausführen.

cockroach node status --host=10.5.5.21

Sie erhalten den node1 mit der IP-Adresse 10.5.5.5.21, der mit CockroachDB v2.1.6 läuft.

Starten Sie den Cluster

Schritt 5 – Knoten zum Cluster hinzufügen

Als nächstes werden wir die Knoten 2 und 3 dem sicheren Cluster von CockroachDB hinzufügen.

Stellen Sie sicher, dass sich das CA- und Serverzertifikat im Verzeichnis ~/.cockroach-certs befindet.

ls -lah ~/.cockroah-certs/

Führen Sie nun den folgenden Befehl aus, um den ’node2′ mit der IP-Adresse 10.5.5.5.5.22 hinzuzufügen. Füge es dem Cluster CockroachDB 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:26257

Sobald es abgeschlossen ist, gehen Sie zum’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

Ändere die IP-Adresse mit deiner eigenen.

Nun wurden die Knoten 2 und 3 dem Secure CockroachDB Cluster hinzugefügt. Überprüfen Sie es vom ’node1′ Server mit dem folgenden Befehl.

cockroach node status --host=10.5.5.21

Und du bekommst drei verschiedene Server, die die cockroach v2.1.6 betreiben.

Knoten zum Cluster hinzufügen

Schritt 6 – Prüfung

Für diesen letzten Schritt werden wir unsere CockroachDB Secure Cluster-Installation testen, indem wir auf das Admin-Dashboard zugreifen und die Datenbankreplikation zwischen Servern testen.

CockroachDB Dashboard testen

Die CockroachDB bietet eine ansprechende Dashboard-Benutzeroberfläche zur Überwachung des Clusters. Öffnen Sie Ihren Webbrowser und geben Sie die Server-IP-Adresse gefolgt vom Port 8080 ein.

https://10.5.5.21:8080/

Und du bekommst die CockroachDB Login-Seite wie unten beschrieben.

CockroachDB Dashboard

Um sich im Dashboard anzumelden, müssen wir einen Benutzer in der CockroachDB-Datenbank anlegen.

Kehren Sie zu Ihrem ’node1′ Terminal zurück und melden Sie sich mit dem folgenden Befehl an der cockroachdb SQL-Shell an.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
 --host=10.5.5.21

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

KakerlakenDB SQL-Shell

Kehren Sie nun zum Webbrowser zurück und geben Sie den Benutzer’hakase‘ mit dem Passwort’hakase-labs123@#‘ auf der Anmeldeseite ein und klicken Sie auf die Schaltfläche Login.

Cockroach DB

Und du bekommst das CockroachDB Admin Dashboard wie unten beschrieben.

Cluster Overview

Testen der Datenbankreplikation

Nun werden wir die Datenbankreplikation zwischen Servern auf dem CockroachDB Cluster testen, indem wir die Datenbank auf dem ’node1′ erstellen und die Datenbank von ’node2′ oder ’node3′ aus überprüfen.

Rufen Sie auf dem’node1′ die CockroachDB SQL-Shell mit dem folgenden Befehl auf.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
 --host=10.5.5.21

Erstellen Sie zwei Datenbanken ‚hakasedb‘ und ‚hakasedb2‘ mit den folgenden Abfragen.

create database hakasedb;
 create database hakasedb2;

Drucken Sie jetzt die Datenbank-Liste und stellen Sie sicher, dass Sie zwei Datenbanken erhalten, die wir gerade erstellt haben.

show databases;

Schaben DB cmd Zeile

Als nächstes melden Sie sich beim Server’node2′ an und greifen mit dem folgenden Befehl auf die SQL-Shell der CockroachDB zu.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
 --host=10.5.5.22

Überprüfen Sie die Datenbankliste.

show databases;

Und Sie erhalten ‚hakasedb‘ und ‚hakasedb2′ wurde auf den ’node2‘ Server repliziert.

Datenbanken anzeigen

Und schließlich wurde die Installation und Konfiguration des Secure CockroachDB Cluster mit Ubuntu 18.04 erfolgreich abgeschlossen.

Das könnte Dich auch interessieren …