GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit Nginx High Availability s Pacemakerem a Corosync na CentOS 7

V tomto tutoriálu vás krok za krokem provedeme, jak vytvořit webový server Nginx Cluster s vysokou dostupností s Pacemakerem, Corosync a Pcsd. Vytvoříme webový server Active-Passive Cluster nebo Failover Cluster Nginx pomocí Pacemaker na systému CentOS 7.

Pacemaker je open source software pro správu clusterů, který dosahuje maximálně vysoké dostupnosti vašich služeb. Je to pokročilý a škálovatelný správce clusteru HA distribuovaný společností ClusterLabs.

Corosync Cluster Engine je open source projekt odvozený od projektu OpenAIS pod novou licencí BSD. Je to skupinový komunikační systém s dalšími funkcemi pro implementaci vysoké dostupnosti v aplikacích.

Existuje několik aplikací pro rozhraní kardiostimulátoru. Pcsd je jedním z rozhraní příkazového řádku Pacemaker a GUI pro správu kardiostimulátoru. Můžeme vytvořit, nakonfigurovat nebo přidat nový uzel do clusteru pomocí příkazu pcsd pcs.

Předpoklady

  • 2 nebo více serverů CentOS 7
    • web01       10.0.15.10
    • web02       10.0.15.11
    • web03       10.0.15.12
  • Plovoucí IP adresa 10.0.15.15
  • Kořenová oprávnění

Co uděláme:

  1. Namapujte hostitelský soubor
  2. Nainstalujte úložiště Epel a Nginx
  3. Nainstalujte a nakonfigurujte Pacemaker, Corosync a Pcsd
  4. Vytvořte a nakonfigurujte klastr
  5. Deaktivujte STONITH a ignorujte zásady kvora
  6. Přidejte plovoucí IP adresu a zdroje
  7. Přidat pravidla do clusteru
  8. Nakonfigurujte bránu firewall
  9. Otestujte nastavení

Krok 1 – Mapování hostitelského souboru

Poznámka : Spusťte krok 1–3 na všech serverech web01, web02 a web03.

Prvním krokem, který musíme udělat, je upravit soubor hostitele na každém serveru, abychom namapovali název hostitele všech serverů. Máme servery 'web01', 'web02' a 'web03', ke každému serveru se přihlaste pomocí ssh účtu.

ssh [email protected][01,02,03]

Upravte soubor '/etc/hosts' pomocí vim.

vim /etc/hosts

Zde vložte následující konfiguraci.

10.0.15.10      web01
10.0.15.11      web02
10.0.15.12      web03

Uložte a ukončete.

Nyní otestujte konfiguraci mapování hostitelů.

ping -c 3 web01
ping -c 3 web02
ping -c 3 web03

Ujistěte se, že 'web01', 'web02' a 'web03' jsou namapovány na správné IP adresy.

Krok 2 – Instalace úložiště Epel a Nginx

V tomto kroku nainstalujeme úložiště epel a poté nainstalujeme webový server Nginx. K instalaci balíčků Nginx je potřeba EPEL nebo Extra Packages for Enterprise Linux repository.

Nainstalujte úložiště EPEL pomocí následujícího příkazu yum.

yum -y install epel-release

Nyní nainstalujte webový server Nginx z úložiště EPEL.

yum -y install nginx

Po dokončení instalace změňte výchozí stránku index.html na každém serveru za novou.

#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /usr/share/nginx/html/index.html

EPEL Repository a webový server Nginx jsou nyní nainstalovány v systému.

Krok 3 – Instalace a konfigurace Pacemaker, Corosync a Pcsd

Pacemaker, Corosync a Pcsd jsou k dispozici ve výchozím systémovém úložišti. Všechny je tedy lze nainstalovat z úložiště CentOS pomocí následujícího příkazu yum.

yum -y install corosync pacemaker pcs

Po dokončení instalace povolte automatické spouštění všech služeb při spouštění systému pomocí příkazů systemctl níže.

systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker

Nyní spusťte rozhraní příkazového řádku pcsd Pacemaker na všech serverech.

systemctl start pcsd

Dále vytvořte nové heslo pro uživatele 'hacluster' a použijte stejné heslo pro všechny servery. Tento uživatel byl vytvořen automaticky během instalace softwaru.

Zde je návod, jak nakonfigurovat heslo pro 'hacluster ' uživatel.

passwd hacluster
Enter new password:

V systému jsou nainstalovány balíčky softwaru High Availability Pacemaker, Corosync a Pcsd.

Krok 4 – Vytvoření a konfigurace clusteru

Poznámka :Spusťte kroky 4–7 na webu 'web01' pouze.

V tomto kroku vytvoříme nový cluster se 3 servery centos. Poté nakonfigurujte plovoucí IP adresu a přidejte nové zdroje Nginx.

K vytvoření clusteru potřebujeme autorizovat všechny servery pomocí příkazu pcs a uživatele hacluster.

Autorizujte všechny servery pomocí příkazu pcs a uživatele a hesla hacluster.

pcs cluster auth web01 web02 web03
Username: hacluster
Password: [email protected]

Nyní je čas nastavit cluster. Definujte název clusteru a všechny servery, které budou součástí clusteru.

pcs cluster setup --name hakase_cluster web01 web02 web03

Nyní spusťte všechny clusterové služby a také je povolte.

pcs cluster start --all
pcs cluster enable --all

Dále zkontrolujte stav clusteru.

pcs status cluster

Krok 5 – Deaktivace STONITH a ignorování zásad kvora

Protože nepoužíváme oplocení, deaktivujeme STONITH. STONITH nebo Shoot The Other Node In The Head je implementace šermu na Pacemaker. Pokud jste ve výrobě, je lepší povolit STONITH.

Vypněte STONITH pomocí následujícího příkazu pcs.

pcs property set stonith-enabled=false

Dále, pokud jde o zásady kvora, ignorujte je.

pcs property set no-quorum-policy=ignore

Zkontrolujte seznam vlastností a ujistěte se, že jsou zakázány zásady stonith a kvora.

pcs property list

Zásady STONITH a kvora jsou zakázány.

Krok 6 – Přidejte plovoucí IP a zdroje

Plovoucí IP adresa je IP adresa, kterou lze automaticky migrovat/přesouvat z jednoho serveru na druhý ve stejném datovém centru. A již jsme definovali plovoucí IP adresu pro Pacemaker High-Availability na '10.0.15.15'. Nyní chceme přidat dva zdroje, zdroj plovoucí IP adresy s názvem 'virtual_ip' a nový zdroj pro webový server Nginx s názvem 'webserver'.

Přidejte novou plovoucí IP adresu zdroje „virtual_ip“ pomocí příkazu pcs, jak je uvedeno níže.

pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30s

Dále přidejte nový zdroj pro 'webový server' Nginx.

pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"

Ujistěte se, že nedošlo k žádné chybě, a poté zkontrolujte dostupné zdroje.

pcs status resources

Uvidíte dva zdroje 'virtual_ip' a 'webový server'. Byly přidány nové zdroje pro plovoucí IP a webový server Nginx.

Krok 7 – Přidání pravidel omezení do clusteru

V tomto kroku nastavíme pravidla vysoké dostupnosti a nastavíme omezení zdrojů pomocí rozhraní příkazového řádku počítače.

Nastavte omezení řazení pro webový server a zdroje virtual_ip se skóre 'INFINITY'. Také nastavte webový server a zdroje virtual_ip stejně na všech serverových uzlech.

pcs constraint colocation add webserver virtual_ip INFINITY

Nastavte zdroje 'virtual_ip' a 'webserver' vždy na serverech stejného uzlu.

pcs constraint order virtual_ip then the webserver

Dále zastavte cluster a poté spusťte znovu.

pcs cluster stop --all
pcs cluster start --all

Nyní znovu zkontrolujte zdroje a uvidíte jejich stav jako „Spuštěno“ na stejném serveru „web01“.

pcs status resources

prostředky virtual_ip a webserver byly spuštěny na stejném serveru/uzlu 'web01'.

Krok 8 – Konfigurace brány firewall

HA-Cluster poběží pod konfigurací firewallu firewalld – nainstalujte jej, pokud nemáte balíček.

yum -y install firewalld

Spusťte firewall a povolte jeho automatické spuštění při každém spouštění systému pomocí následujících příkazů systemctl.

systemctl start firewalld
systemctl enable firewalld

Dále přidejte nové služby do firewallu pomocí příkazů firewall-cmd – přidejte službu s vysokou dostupností, HTTP a HTTPS služby pro Nginx.

firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

Znovu načtěte konfiguraci brány firewall a zkontrolujte všechny služby.

firewall-cmd --reload
firewall-cmd --list-all

Ujistěte se, že služba ha s HTTP a https je v seznamu.

Krok 9 – Testování

V tomto kroku provedeme nějaký test pro cluster. Otestujte stav uzlu ('Online' nebo 'Offline'), otestujte členy a stav corosync a poté otestujte vysokou dostupnost webového serveru Nginx přístupem k plovoucí IP adrese.

Otestujte stav uzlu pomocí následujícího příkazu.

pcs status nodes

Všechny uzly jsou „online“.

Otestujte členy corosync.

corosync-cmapctl | grep members

Získáte IP adresu členů Corosync.

Zkontrolujte členy Corosync a uvidíte výsledek, jak je uvedeno níže.

pcs status corosync

A nakonec zkontrolujte vysokou dostupnost webového serveru. Otevřete webový prohlížeč a zadejte plovoucí IP adresu „10.0.15.15“.

Uvidíte webovou stránku ze serveru 'web01'.

Dále zastavte cluster na serveru 'web01' pomocí příkazu níže.

pcs cluster stop web01

A znovu zkontrolujte stránku a získáte stránku ze serveru 'web02', jak je uvedeno níže.

Další:

Zkontrolujte stav clusteru pomocí příkazu níže.

pcs status

A dostanete výsledek, jak je ukázáno níže.

Nastavení vysoké dostupnosti webového serveru Nginx s Pacemakerem, Corosync a Pcsd na serveru CentOS 7 bylo úspěšně dokončeno.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  3. Jak nastavit Nginx High Availability Cluster pomocí Pacemaker na CentOS 7

  1. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8

  2. Jak nainstalovat ownCloud 9.1 s Nginx a MariaDB na CentOS 7

  3. Jak nainstalovat WordPress s HHVM a Nginx na CentOS 7

  1. Jak nainstalovat Nextcloud s Nginx a PHP7-FPM na CentOS 7

  2. Jak nastavit vysokou dostupnost Nginx pomocí Pacemaker, Corosync a Crmsh na Ubuntu 16.04

  3. Jak nainstalovat a nakonfigurovat Askbot s Nginx na CentOS 7