CockroachDB je open source a cloudová nativní SQL databáze vyvinutá CockroachLabs. Je to distribuovaná databáze SQL postavená na transakčním úložišti a úložišti klíč-hodnota. CockroachDB je škálovatelná SQL databáze, která byla porovnána s databází Google Spanner. Je založen na drátě protokolu PostgreSQL a připraven na produkci.
V tomto tutoriálu vám ukážeme, jak nastavit Secure CockroachDB Cluster na Ubuntu 18.04. Naučíte se, jak nastavit zabezpečený cluster, přistupovat k administračnímu panelu CockroachDB, vytvořit nového uživatele na CockroachDB, vytvořit a zobrazit databázi na CockroachDB.
Předpoklady
Abychom mohli provozovat CockroachDB Cluster, potřebujeme více serverů. A budeme používat tři servery Ubuntu 18.04 s podrobným názvem hostitele a IP adresou, jak je uvedeno níže.
node1 10.5.5.21
node2 10.5.5.22
node3 10.5.5.23
Co uděláme?
- Nastavení serveru NTP s Chronysystemctl restart chrony
systemctl enable chrony - Stáhněte si a nainstalujte CockroachDB
- Vytvořte certifikáty
- Inicializujte CockroachDB Cluster
- Přidat uzel do clusteru CockroachDB
- Testování
Krok 1 – Nastavení serveru NTP s Chrony
Za prvé, musíme udržovat čas mezi servery v clusteru synchronizovaný. Musíme tedy nainstalovat balíček NTP na všechny servery. A pro tento průvodce budeme používat chrony.
Nainstalujte balík chrony na všechny servery pomocí následujícího příkazu.
sudo apt install chrony -y
Po dokončení instalace přejděte do konfiguračního adresáře '/etc/chrony/' a upravte soubor 'chrony.conf'.
cd /etc/chrony/
vim chrony.conf
Odstraňte výchozí fond NTP a nahraďte jej vlastním fondem země.
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
Uložit a zavřít.
Nyní restartujte službu chrony a poté přidejte chrony do spouštěcí služby.
systemctl restart chrony
systemctl enable chrony
V důsledku toho bude čas mezi servery synchronizován se stejnými servery fondu NTP.
Krok 2 – Stažení a instalace CockroachDB
V tomto kroku stáhneme a nainstalujeme CockroachDB na všechny servery. Spusťte tedy všechny příkazy na všech clusterových serverech.
Vytvořte nový adresář s názvem 'binary' a dostali se do něj.
mkdir -p binary; cd binary
Stáhněte si komprimovaný binární soubor cockroachdb pro Linux a rozbalte jej.
wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz
tar -xvzf cockroach-latest.linux-amd64.tgz
Nyní zkopírujte binární soubor 'šváb' do adresáře '/etc/local/bin'.
cp cockroach-*/cockroach /usr/local/bin/
Poté můžete spustit příkaz 'šváb' a prozkoumat základní příkaz pro nápovědu, zkontrolovat verzi atd.
cockroach version
CockroachDB byl nainstalován na všechny servery.
Krok 3 – Vytvoření certifikátů
Nyní vygenerujeme nějaké certifikáty pro zabezpečení CockrouchDB Clusteru. Pro generování souborů certifikátů můžeme použít OpenSSL nebo příkazový řádek švába.
Vygenerujeme certifikát a klíč CA a vygenerujeme certifikát pro kořenový adresář uživatele a certifikát pro každý uzel v clusteru.
Vytvořte adresář certifikátů '~/.cockroach-certs' a pro něj proměnnou prostředí.
mkdir -p ${HOME}/.cockroach-certs/
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'
Vytvořit CA a zkopírovat do všech uzlů
Na serveru 'node1' vytvořte certifikační autoritu pomocí příkazu cockroach níže.
cockroach cert create-ca \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
A získáte 'ca.key' a 'ca.crt' v adresáři '~/.cockroach-certs'.
Poté zkopírujte certifikát ca a klíč na všechny servery pomocí příkazu scp, jak je uvedeno níže.
Zkopírujte na server 'node2'.
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/
Zkopírujte na server 'node3'.
scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/
Nyní se ujistěte, že certifikát CA a klíč jsou nahrány na všechny hostitelské servery.
Vytváření klientských certifikátů
Po vytvoření certifikační autority musíme vygenerovat klientský certifikát. Klientský certifikát bude použit k zabezpečení komunikace mezi vestavěným SQL shellem a clusterem.
Vygenerujte klientský certifikát na všech serverech pomocí následujícího příkazu šváb.
cockroach cert create-client \
root \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
A získáte klientské certifikáty pro uživatele root 'client.root.crt' a 'client.root.key'.
Vytvořit certifikáty serveru
Certifikáty serveru budou použity k zabezpečení komunikace mezi servery v clusteru CockroachDB. A abyste se mohli připojit k zabezpečenému clusteru, musíte pro každý server vygenerovat certifikáty serveru.
Na uzlu 'node1' vytvořte certifikát serveru pomocí následujícího příkazu.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.21 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Změňte IP adresu na svou vlastní.
V uzlu 'node2' vytvořte certifikát serveru pomocí následujícího příkazu.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.22 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Změňte IP adresu na svou vlastní.
Na uzlu 'node3' vytvořte certifikát serveru pomocí následujícího příkazu.
cockroach cert create-node \
localhost \
$(hostname) \
10.5.5.23 \
--certs-dir=$COCKROACH_CERTS_DIR \
--ca-key=$COCKROACH_CERTS_DIR/ca.key
Změňte IP adresu na svou vlastní.
Nyní získáte certifikáty serveru 'node.crt' a 'node.key' v adresáři '~/.cockroach-certs'.
Krok 4 – Spuštění zabezpečeného CockroachDB Cluster
Po vytvoření některých SSL certifikátů inicializujeme Secure CockroachDB Cluster ze serveru 'node1'.
Spusťte následující příkaz na serveru 'node1'.
cockroach start \
--background --certs-dir=$COCKROACH_CERTS_DIR \
--advertise-host=10.5.5.21 --listen-addr=10.5.5.21
Ujistěte se, že nedošlo k chybě.
Poté zkontrolujte stav uzlu clusteru spuštěním příkazu šváb níže.
cockroach node status --host=10.5.5.21
Získáte, že node1 s IP adresou 10.5.5.21 je v provozu s CockroachDB v2.1.6.
Krok 5 – Přidání uzlu do clusteru
Dále přidáme 'node2' a 'node3' do zabezpečeného clusteru CockroachDB.
Ujistěte se, že certifikát CA a serveru je v adresáři ~/.cockroach-certs.
ls -lah ~/.cockroah-certs/
Nyní spusťte následující příkaz a přidejte 'node2' s IP adresou 10.5.5.22. Přidejte jej do clusteru CockroachDB.
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
Po dokončení přejděte na 'node3' a spusťte následující příkaz.
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
Změňte IP adresu na svou vlastní.
Nyní byly do clusteru Secure CockroachDB přidány 'node2' a 'node3'. Zkontrolujte to ze serveru 'node1' pomocí následujícího příkazu.
cockroach node status --host=10.5.5.21
A získáte tři různé servery, na kterých běží šváb v2.1.6.
Krok 6 – Testování
V tomto posledním kroku otestujeme naši instalaci CockroachDB Secure Cluster tím, že vstoupíme do administračního panelu a otestujeme replikaci databáze mezi servery.
Testovací panel CockroachDB
CockroachDB poskytuje krásné uživatelské rozhraní řídicího panelu pro sledování clusteru. Otevřete webový prohlížeč a zadejte IP adresu serveru následovanou portem 8080.
https://10.5.5.21:8080/
A získáte přihlašovací stránku CockroachDB, jak je uvedeno níže.
Abychom se mohli přihlásit do řídicího panelu, musíme vytvořit uživatele v databázi CockroachDB.
Vraťte se do svého terminálu 'node1' a přihlaste se do shellu cockroachdb SQL pomocí následujícího příkazu.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21
Nyní vytvořte nového uživatele s názvem 'hakase' s heslem '[email protected]#' pomocí níže uvedeného dotazu.
CREATE USER hakase WITH PASSWORD '[email protected]#';
Zadáním '\q' ukončíte prostředí CockroachDB SQL.
Nyní se vraťte do webového prohlížeče a na přihlašovací stránce zadejte uživatele 'hakase' s heslem '[email protected]#' a klikněte na tlačítko Přihlásit se.
A získáte řídicí panel správce CockroachDB, jak je uvedeno níže.
Testování replikace databáze
Nyní otestujeme replikaci databáze mezi servery v Clusteru CockroachDB vytvořením databáze na 'node1' a kontrolou databáze z 'node2' nebo 'node3'.
Na uzlu 'node1' otevřete CockroachDB SQL shell pomocí následujícího příkazu.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.21
Pomocí níže uvedených dotazů vytvořte dvě databáze 'hakasedb' a 'hakasedb2'.
create database hakasedb;
create database hakasedb2;
Nyní vytiskněte seznam databází a ujistěte se, že získáte dvě databáze, které jsme právě vytvořili.
show databases;
Dále se přihlaste k serveru 'node2' a pomocí následujícího příkazu otevřete CockroachDB SQL shell.
cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \
--host=10.5.5.22
Zkontrolujte seznam databází.
show databases;
A dostanete 'hakasedb' a 'hakasedb2' bylo replikováno na server 'node2'.
A konečně, instalace a konfigurace Secure CockroachDB Cluster pomocí Ubuntu 18.04 byla úspěšně dokončena.