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:
- Namapujte hostitelský soubor
- Nainstalujte úložiště Epel a Nginx
- Nainstalujte a nakonfigurujte Pacemaker, Corosync a Pcsd
- Vytvořte a nakonfigurujte klastr
- Deaktivujte STONITH a ignorujte zásady kvora
- Přidejte plovoucí IP adresu a zdroje
- Přidat pravidla do clusteru
- Nakonfigurujte bránu firewall
- 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.