GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare Nginx High Availability con Pacemaker e Corosync su CentOS 7

In questo tutorial, ti guideremo passo dopo passo su come creare un server Web Nginx in cluster ad alta disponibilità con Pacemaker, Corosync e Pcsd. Creeremo il server Web Nginx del cluster attivo-passivo o del cluster di failover utilizzando Pacemaker su un sistema CentOS 7.

Pacemaker è un software di gestione cluster open source che consente di ottenere la massima disponibilità elevata dei tuoi servizi. È un cluster manager HA avanzato e scalabile distribuito da ClusterLabs.

Corosinc Cluster Engine è un progetto open source derivato dal progetto OpenAIS con nuova licenza BSD. È un sistema di comunicazione di gruppo con funzionalità aggiuntive per l'implementazione dell'alta disponibilità all'interno delle applicazioni.

Esistono alcune applicazioni per le interfacce Pacemaker. Pzd è una delle interfacce della riga di comando e della GUI di Pacemaker per la gestione di Pacemaker. Possiamo creare, configurare o aggiungere un nuovo nodo al cluster con il comando pcsd pcs.

Prerequisiti

  • 2 o più server CentOS 7
    • web01       15.0.10.10
    • web02       15.0.10.11
    • web03       15.10.12
  • Indirizzo IP mobile 10.0.15.15
  • privilegi radice

Cosa faremo:

  1. Mappa il file host
  2. Installa Epel Repository e Nginx
  3. Installa e configura Pacemaker, Corosync e Pcsd
  4. Crea e configura il cluster
  5. Disabilita STONITH e ignora la politica del quorum
  6. Aggiungi l'IP mobile e le risorse
  7. Aggiungi regole al cluster
  8. Configura Firewalld
  9. Verifica la configurazione

Passaggio 1:mappare il file host

Nota : Esegui i passaggi 1 - 3 su tutti i server web01, web02 e web03.

Il primo passaggio che dobbiamo fare è modificare il file host su ciascun server per mappare il nome host di tutti i server. Abbiamo server "web01", "web02" e "web03", accedi a ciascun server con l'account ssh.

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

Modifica il file '/etc/hosts' con vim.

vim /etc/hosts

Incolla lì la seguente configurazione.

10.0.15.10      web01
10.0.15.11      web02
10.0.15.12      web03

Salva ed esci.

Ora prova la configurazione della mappatura degli host.

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

Assicurati che "web01", "web02" e "web03" siano mappati agli indirizzi IP corretti.

Fase 2 - Installa Epel Repository e Nginx

In questo passaggio, installeremo il repository epel e quindi installeremo il server web Nginx. Per l'installazione dei pacchetti Nginx sono necessari EPEL o Extra Packages for Enterprise Linux.

Installa EPEL Repository utilizzando il seguente comando yum.

yum -y install epel-release

Ora installa il server web Nginx dal repository EPEL.

yum -y install nginx

Al termine dell'installazione, modifica la pagina index.html predefinita su ciascun server con una nuova pagina.

#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

Il repository EPEL e il server web Nginx sono ora installati sul sistema.

Passaggio 3:installazione e configurazione di Pacemaker, Corosync e Pcsd

Pacemaker, Corosync e Pcsd sono disponibili nel repository di sistema predefinito. Quindi possono essere installati tutti dal repository CentOS utilizzando il seguente comando yum.

yum -y install corosync pacemaker pcs

Al termine dell'installazione, abilita l'avvio automatico di tutti i servizi all'avvio del sistema utilizzando i comandi systemctl riportati di seguito.

systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker

Ora avvia l'interfaccia della riga di comando di pcsd Pacemaker su tutti i server.

systemctl start pcsd

Quindi, crea una nuova password per l'utente 'hacluster' e usa la stessa password per tutti i server. Questo utente è stato creato automaticamente durante l'installazione del software.

Ecco come configurare una password per 'hacluster ' utente.

passwd hacluster
Enter new password:

Lo stack software ad alta disponibilità Pacemaker, Corosync e Pcsd sono installati nel sistema.

Fase 4:crea e configura il cluster

Nota :esegui i passaggi da 4 a 7 su 'web01' solo.

In questo passaggio creeremo un nuovo cluster con 3 server centos. Quindi configura l'indirizzo IP mobile e aggiungi nuove risorse Nginx.

Per creare il cluster, dobbiamo autorizzare tutti i server utilizzando il comando pcs e l'utente hacluster.

Autorizza tutti i server con il comando pcs e hacluster utente e password.

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

Ora è il momento di configurare il cluster. Definisci il nome del cluster e tutti i server che faranno parte del cluster.

pcs cluster setup --name hakase_cluster web01 web02 web03

Ora avvia tutti i servizi del cluster e abilitali.

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

Quindi, controlla lo stato del cluster.

pcs status cluster

Passaggio 5 - Disattiva STONITH e ignora la politica del quorum

Dal momento che non stiamo usando il dispositivo di scherma, disabiliteremo lo STONITH. STONITH o Shoot The Other Node In The Head è l'implementazione della scherma su Pacemaker. Se sei in produzione, è meglio abilitare STONITH.

Disabilita STONITH con il seguente comando pcs.

pcs property set stonith-enabled=false

Quindi, per il criterio del quorum, ignoralo.

pcs property set no-quorum-policy=ignore

Controlla l'elenco delle proprietà e assicurati che stonith e il criterio del quorum siano disabilitati.

pcs property list

Il criterio STONITH e quorum è disabilitato.

Passaggio 6:aggiungi l'IP mobile e le risorse

L'IP mobile è l'indirizzo IP che può essere migrato/spostato automaticamente da un server a un altro server nello stesso data center. E abbiamo già definito l'indirizzo IP mobile per Pacemaker High-Availability come "10.0.15.15". Ora vogliamo aggiungere due risorse, la risorsa dell'indirizzo IP mobile con il nome 'virtual_ip' e una nuova risorsa per il server web Nginx denominata 'webserver'.

Aggiungi il nuovo indirizzo IP mobile della risorsa "ip_virtuale" utilizzando il comando pcs come mostrato di seguito.

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

Quindi, aggiungi una nuova risorsa per il "server web" di Nginx.

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

Assicurati di non avere alcun risultato di errore, quindi controlla le risorse disponibili.

pcs status resources

Vedrai due risorse "ip_virtuale" e un "server web". Sono state aggiunte nuove risorse per l'IP mobile e il server web Nginx.

Passaggio 7:aggiungi regole di vincolo al cluster

In questo passaggio, imposteremo le regole di alta disponibilità e imposteremo il vincolo delle risorse con l'interfaccia della riga di comando pcs.

Imposta il vincolo di confronto per il server web e le risorse virtual_ip con il punteggio "INFINITY". Inoltre, imposta il server web e le risorse virtual_ip come identiche su tutti i nodi del server.

pcs constraint colocation add webserver virtual_ip INFINITY

Imposta le risorse 'virtual_ip' e 'webserver' sempre sugli stessi server del nodo.

pcs constraint order virtual_ip then the webserver

Quindi, arresta il cluster e ricomincia.

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

Ora, controlla di nuovo le risorse e vedrai il loro stato come "Avviato" sullo stesso server "web01".

pcs status resources

ip_virtuale e le risorse del server web sono state avviate sullo stesso server/nodo 'web01'.

Passaggio 8 - Configura Firewalld

HA-Cluster verrà eseguito sotto la configurazione del firewall firewalld - installalo se non hai il pacchetto.

yum -y install firewalld

Avvia firewalld e abilitalo all'esecuzione automatica ogni volta all'avvio del sistema utilizzando i seguenti comandi systemctl.

systemctl start firewalld
systemctl enable firewalld

Quindi, aggiungi nuovi servizi al firewalld con i comandi firewall-cmd:aggiungi servizi ad alta disponibilità, HTTP e HTTPS per Nginx.

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

Ricarica la configurazione del firewall e controlla tutti i servizi.

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

Assicurati che il servizio ha con HTTP e https sia presente nell'elenco.

Fase 9 - Test

In questo passaggio, faremo dei test per il cluster. Verifica lo stato del nodo ("Online" o "Offline"), verifica i membri e lo stato di corosync, quindi verifica l'elevata disponibilità del server web Nginx accedendo all'indirizzo IP mobile.

Verifica lo stato del nodo con il comando seguente.

pcs status nodes

Tutti i nodi sono 'Online'.

Testa i membri corosync.

corosync-cmapctl | grep members

Otterrai l'indirizzo IP dei membri di Corosync.

Controlla i membri di Corosync e vedrai il risultato come mostrato di seguito.

pcs status corosync

E infine, controlla il server web High Availability. Apri il tuo browser web e digita l'indirizzo IP mobile '10.0.15.15'.

Vedrai la pagina web dal server 'web01'.

Quindi, arresta il cluster sul server 'web01' con il comando seguente.

pcs cluster stop web01

E controlla di nuovo la pagina e otterrai la pagina dal server 'web02' come di seguito.

Aggiuntivo:

Verifica lo stato del cluster con il comando seguente.

pcs status

E otterrai il risultato come mostrato di seguito.

La configurazione del server web Nginx High Availability con Pacemaker, Corosync e Pcsd sul server CentOS 7 è stata completata con successo.


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare phpMyAdmin con Nginx su CentOS 7

  3. Come installare Nextcloud con Nginx e PHP 7.3 su CentOS 8

  4. Come installare ownCloud 9.1 con Nginx e MariaDB su CentOS 7

  5. Come configurare il cluster ad alta disponibilità Nginx utilizzando Pacemaker su CentOS 7

Come installare OwnCloud 8 con Nginx e MariaDB su CentOS 7

Come installare Shopware 6 con NGINX e Lets Encrypt su CentOS 8

Come installare Nginx con ngx_pagespeed su CentOS

Come installare OwnCloud 8 con Nginx e PHP-FPM su CentOS 6

Come installare Nginx con PHP-FastCGI su CentOS 6

Come installare e configurare Hive con disponibilità elevata – Parte 7