sql >> Databáze >  >> RDS >> PostgreSQL

Nasazení a škálování PostgreSQL v13 s ClusterControl 1.8.2

PostgreSQL je jednou z databází, které lze nasadit prostřednictvím ClusterControl, spolu s MySQL, MariaDB a MongoDB. ClusterControl nejenže zjednodušuje nasazení databázového clusteru, ale má funkci škálovatelnosti v případě, že se vaše aplikace rozrůstá a vyžaduje tuto funkci.

Zvětšením databáze bude vaše aplikace běžet mnohem plynuleji a lépe v případě, že se zvýší zatížení aplikace nebo provoz. V tomto příspěvku na blogu si probereme kroky, jak provést nasazení a škálování PostgreSQL v13 pomocí ClusterControl 1.8.2.

Nasazení uživatelského rozhraní (UI)

V ClusterControl existují dva způsoby nasazení, webové uživatelské rozhraní (UI) a také rozhraní příkazového řádku (CLI). Uživatel má svobodu vybrat si kteroukoli z možností nasazení v závislosti na svých představách a potřebách. Obě možnosti jsou snadno sledovatelné a dobře zdokumentované v naší dokumentaci. V této části si projdeme proces nasazení pomocí první možnosti – webového uživatelského rozhraní.

Prvním krokem je přihlásit se do ClusterControl a kliknout na Deploy:

Zobrazí se vám níže uvedený snímek obrazovky pro další krok nasazení , pokračujte výběrem záložky PostgreSQL:

Než se přesuneme dále, rád bych připomněl, že spojení mezi uzel ClusterControl a uzly databází musí být bez hesla. Před nasazením vše, co musíme udělat, je vygenerovat ssh-keygen z uzlu ClusterControl a poté jej zkopírovat do všech uzlů. Vyplňte vstup pro uživatele SSH, heslo Sudo a název clusteru podle svých požadavků a klikněte na Pokračovat.

Na výše uvedeném snímku obrazovky budete muset definovat port serveru (v v případě, že byste chtěli použít jiné), uživatele, kterého chcete, stejně jako heslo a nezapomeňte vybrat verzi 13, kterou chcete nainstalovat.

Autor fotografiePopis fotografie

Zde musíme definovat servery buď pomocí názvu hostitele nebo IP adresu, jako v tomto případě 1 master a 2 slave. Posledním krokem je výběr režimu replikace pro náš cluster.

Po kliknutí na tlačítko Nasadit se spustí proces nasazení a můžeme sledovat pokrok na kartě Aktivita.

Nasazení obvykle trvá několik minut, výkon závisí většinou na síť a specifikace serveru.

Nyní, když máme PostgreSQL v13 nainstalovaný pomocí GUI ClusterControl, což je docela jednoduché .

Rozhraní příkazového řádku (CLI) PostgreSQL Deployment

Z výše uvedeného vidíme, že nasazení je pomocí webového uživatelského rozhraní docela jednoduché. Důležitá poznámka je, že všechny uzly musí mít před nasazením připojení SSH bez hesla. V této části se podíváme na to, jak nasadit pomocí příkazového řádku ClusterControl CLI nebo nástrojů „s9s“.

Předpokládali jsme, že ClusterControl byl nainstalován dříve, začněme vygenerováním ssh-keygen. V uzlu ClusterControl spusťte následující příkazy:

$ whoami
root
$ ssh-keygen -t rsa # generate the SSH key for the user
$ ssh-copy-id 10.10.40.11 # pg node1
$ ssh-copy-id 10.10.40.12 # pg node2
$ ssh-copy-id 10.10.40.13 # pg node3

Jakmile všechny výše uvedené příkazy úspěšně proběhnou, můžeme ověřit připojení bez hesla pomocí následujícího příkazu:

$ ssh 10.10.40.11 "whoami" # make sure can ssh without password

Pokud výše uvedený příkaz proběhne úspěšně, nasazení clusteru lze spustit ze serveru ClusterControl pomocí následujícího příkazového řádku:

$  s9s cluster --create --cluster-type=postgresql --nodes="10.10.40.11?master;10.10.40.12?slave;10.10.40.13?slave" --provider-version='13' --db-admin="postgres" --db-admin-passwd="[email protected]$$W0rd" --cluster-name=PGCluster --os-user=root --os-key-file=/root/.ssh/id_rsa --log

Hned po spuštění výše uvedeného příkazu uvidíte něco takového, což znamená, že úloha začala běžet:

Cluster bude vytvořen na 3 datových uzlech.

Ověřování parametrů úlohy.

10.10.40.11: Checking ssh/sudo with credentials ssh_cred_job_6656.
10.10.40.12: Checking ssh/sudo with credentials ssh_cred_job_6656.
10.10.40.13: Checking ssh/sudo with credentials ssh_cred_job_6656.
…
…
This will take a few moments and the following message will be displayed once the cluster is deployed:
…
…
Directory is '/etc/cmon.d'.
Filename is 'cmon_1.cnf'.
Configuration written to 'cmon_1.cnf'.
Sending SIGHUP to the controller process.
Waiting until the initial cluster starts up.
Cluster 1 is running.
Registering the cluster on the web UI.
Waiting until the initial cluster starts up.
Cluster 1 is running.
Generated & set RPC authentication token.

Můžete to také ověřit přihlášením do webové konzole pomocí uživatelského jména, které jste si vytvořili. Nyní máme cluster PostgreSQL nasazený pomocí 3 uzlů. Pokud se chcete dozvědět více o výše uvedeném příkazu nasazení, zde je pro vás nejlepší reference.

Škálování PostgreSQL pomocí uživatelského rozhraní ClusterControl

PostgreSQL je relační databáze a víme, že škálování tohoto typu databáze není snadné ve srovnání s nerelační databází. V dnešní době potřebuje většina aplikací škálovatelnost, aby poskytovaly lepší výkon a rychlost. Existuje mnoho způsobů, jak to provést, v závislosti na vaší infrastruktuře a prostředí.

Škálovatelnost je jednou z funkcí, kterou může ClusterControl usnadnit a lze ji provádět jak pomocí uživatelského rozhraní, tak pomocí CLI. V této části uvidíme, jak můžeme škálovat PostgreSQL pomocí uživatelského rozhraní ClusterControl. Prvním krokem je přihlášení do uživatelského rozhraní a výběr clusteru, jakmile je cluster vybrán, můžete kliknout na možnost podle obrázku níže:

Po kliknutí na „Add Replication Slave“ se zobrazí následující stránka . V závislosti na situaci můžete vybrat „Přidat nový…“ nebo „Importovat…“. V tomto příkladu zvolíme první možnost:

Po kliknutí na ni se zobrazí následující obrazovka:

Autor fotografiePopis fotografie
  • Název podřízeného hostitele:název hostitele/IP adresa nového podřízeného zařízení nebo uzlu

  • Slave Port:PostgreSQL port podřízeného zařízení, výchozí je 5432

  • Název clusteru:název clusteru, můžete jej přidat nebo nechat prázdný

  • Použít výchozí nastavení balíčku pro Datadir:tuto možnost můžete nechat zaškrtnutou, pokud chcete mít jiné umístění pro Datadir

  • Instalovat software PostgreSQL:tuto možnost můžete nechat zaškrtnutou

  • Synchronní replikace:můžete si vybrat, jaký typ replikace chcete v této replikaci

  • Zahrnout do sady LoadBalancer (pokud existuje):tuto možnost zaškrtněte, pokud máte pro cluster nakonfigurovaný LoadBalancer

Klíčovou důležitou poznámkou je, že před spuštěním tohoto nastavení musíte nakonfigurovat nového podřízeného hostitele tak, aby byl bez hesla. Jakmile je vše potvrzeno, můžeme kliknutím na tlačítko „Dokončit“ dokončit nastavení. V tomto příkladu jsem přidal IP „10.10.40.140“.

Nyní můžeme monitorovat aktivitu úlohy a nechat nastavení dokončit. Pro potvrzení nastavení můžeme přejít na záložku „Topologie“, kde se zobrazí nový slave:

Škálování PostgreSQL pomocí ClusterControl CLI

Přidání nových uzlů do stávajícího clusteru je velmi jednoduché pomocí CLI. Z uzlu řadiče provedete následující příkaz. Prvním příkazem je identifikovat cluster, do kterého bychom chtěli přidat nový uzel:

 $ s9s cluster --list --long
ID STATE   TYPE              OWNER GROUP  NAME      COMMENT
 1 STARTED postgresql_single admin admins PGCluster All nodes are operational.

V tomto příkladu vidíme, že ID uzlu je „1“ pro název clusteru „PGCluster“. Podívejme se na první možnost příkazu, jak přidat nový uzel do existujícího clusteru PostgreSQL:

$  s9s cluster --add-node --cluster-id=1 --nodes="postgresql://10.10.40.141?slave" --log

Zkratka „--log“ na konci řádku nám umožní zjistit, jaká je aktuální úloha spuštěná po provedení příkazu, jak je uvedeno níže:

Using SSH credentials from cluster.
Cluster ID is 1.
The username is 'root'.
Verifying job parameters.
Found a master candidate: 10.10.40.11:5432, adding 10.10.40.141:5432 as a slave.
Verifying job parameters.
10.10.40.11: Checking ssh/sudo with credentials ssh_cred_cluster_1_6245.
10.10.40.11:5432: Loading configuration file '/var/lib/pgsql/13/data/postgresql.conf'.
10.10.40.11:5432: wal_keep_segments is set to 0, increase this for safer replication.
…
…

Další dostupný příkaz, který můžete použít, je následující:

$ s9s cluster --add-node --cluster-id=1 --nodes="postgresql://10.10.40.142?slave" --wait

Přidat uzel do clusteru

\ Job  9 RUNNING    [▋         ]   5% Installing packages

Všimněte si, že v řádku je zkratka „--wait“ a výstup, který uvidíte, se zobrazí jako výše. Po dokončení procesu můžeme potvrdit nové uzly na kartě „Přehled“ clusteru z uživatelského rozhraní:

Závěr

V tomto příspěvku na blogu jsme zkontrolovali dvě možnosti rozšíření PostgreSQL v ClusterControl. Jak jste si mohli všimnout, škálování PostgreSQL je s ClusterControl snadné. ClusterControl nejenže dokáže zajistit škálovatelnost, ale můžete také dosáhnout nastavení vysoké dostupnosti pro váš databázový cluster. Funkce jako HAProxy, PgBouncer a Keepalived jsou dostupné a připravené k implementaci pro váš cluster, kdykoli budete mít pocit, že tyto možnosti potřebujete. S ClusterControl se váš databázový cluster snadno spravuje a zároveň monitoruje.

Doufáme, že vám tento příspěvek na blogu pomůže při rozšiřování nastavení PostgreSQL.


  1. Vkládání řádků do tabulky pouze s jedním sloupcem IDENTITY

  2. Podmíněný SUM na Oracle

  3. Oracle IN vs Existuje rozdíl?

  4. SQL dotaz k vytvoření databáze v MySQL