GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie Nginx High Availability mit Pacemaker und Corosync unter CentOS 7 ein

In diesem Tutorial führen wir Sie Schritt für Schritt durch die Erstellung eines Hochverfügbarkeitscluster-Nginx-Webservers mit Pacemaker, Corosync und Pcsd. Wir werden den Active-Passive-Cluster- oder Failover-Cluster-Nginx-Webserver mit Pacemaker auf einem CentOS 7-System erstellen.

Herzschrittmacher ist eine Open-Source-Cluster-Manager-Software, die eine maximale Hochverfügbarkeit Ihrer Dienste erreicht. Es ist ein fortschrittlicher und skalierbarer HA-Cluster-Manager, der von ClusterLabs vertrieben wird.

Corosync Cluster Engine ist ein Open-Source-Projekt, das vom OpenAIS-Projekt unter einer neuen BSD-Lizenz abgeleitet wurde. Es ist ein Gruppenkommunikationssystem mit zusätzlichen Funktionen zur Implementierung von Hochverfügbarkeit in Anwendungen.

Es gibt einige Anwendungen für die Pacemaker-Schnittstellen. PCD ist eine der Pacemaker-Befehlszeilenschnittstelle und GUI zur Verwaltung des Pacemaker. Mit dem pcsd-Befehl pcs.

können wir einen neuen Knoten zum Cluster erstellen, konfigurieren oder hinzufügen

Voraussetzungen

  • 2 oder mehr CentOS 7-Server
    • web01       10.0.15.10
    • web02       10.0.15.11
    • web03       10.0.15.12
  • Floating-IP-Adresse 10.0.15.15
  • Root-Berechtigungen

Was wir tun werden:

  1. Hostdatei zuordnen
  2. Epel-Repository und Nginx installieren
  3. Installieren und konfigurieren Sie Pacemaker, Corosync und Pcsd
  4. Cluster erstellen und konfigurieren
  5. Deaktivieren Sie STONITH und ignorieren Sie die Quorum-Richtlinie
  6. Floating-IP und Ressourcen hinzufügen
  7. Regeln zum Cluster hinzufügen
  8. Firewalld konfigurieren
  9. Testen Sie die Einrichtung

Schritt 1 - Ordnen Sie die Hostdatei zu

Hinweis : Führen Sie Schritt 1–3 auf allen Servern web01, web02 und web03 aus.

Der erste Schritt, den wir tun müssen, besteht darin, die Hostdatei auf jedem Server zu bearbeiten, um den Hostnamen aller Server zuzuordnen. Wir haben 'web01', 'web02' und 'web03' Server, melden Sie sich bei jedem Server mit dem ssh-Konto an.

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

Bearbeiten Sie die Datei „/etc/hosts“ mit vim.

vim /etc/hosts

Fügen Sie dort die folgende Konfiguration ein.

10.0.15.10      web01
10.0.15.11      web02
10.0.15.12      web03

Speichern und beenden.

Testen Sie nun die Mapping-Konfiguration der Hosts.

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

Stellen Sie sicher, dass "web01", "web02" und "web03" den richtigen IP-Adressen zugeordnet sind.

Schritt 2 – Epel-Repository und Nginx installieren

In diesem Schritt installieren wir das epel-Repository und dann den Nginx-Webserver. Das EPEL- oder Extra Packages for Enterprise Linux-Repository ist für die Installation von Nginx-Paketen erforderlich.

Installieren Sie das EPEL-Repository mit dem folgenden yum-Befehl.

yum -y install epel-release

Installieren Sie nun den Nginx-Webserver aus dem EPEL-Repository.

yum -y install nginx

Ändern Sie nach Abschluss der Installation die Standardseite index.html auf jedem Server durch eine neue Seite.

#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

Das EPEL-Repository und der Nginx-Webserver sind jetzt auf dem System installiert.

Schritt 3 – Installieren und konfigurieren Sie Pacemaker, Corosync und Pcsd

Pacemaker, Corosync und Pcsd sind im Standard-Systemrepository verfügbar. Daher können sie alle mit dem folgenden yum-Befehl aus dem CentOS-Repository installiert werden.

yum -y install corosync pacemaker pcs

Aktivieren Sie nach Abschluss der Installation mithilfe der folgenden systemctl-Befehle, dass alle Dienste beim Systemstart automatisch gestartet werden.

systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker

Starten Sie nun auf allen Servern die pcsd Pacemaker Kommandozeilenschnittstelle.

systemctl start pcsd

Erstellen Sie als Nächstes ein neues Passwort für den Benutzer „hacluster“ und verwenden Sie dasselbe Passwort für alle Server. Dieser Benutzer wurde während der Softwareinstallation automatisch erstellt.

So konfigurieren Sie ein Passwort für den 'hacluster ' Benutzer.

passwd hacluster
Enter new password:

Hochverfügbarkeits-Software-Stack Pacemaker, Corosync und Pcsd sind auf dem System installiert.

Schritt 4 – Cluster erstellen und konfigurieren

Hinweis :Führen Sie die Schritte 4 bis 7 auf 'web01' aus nur.

In diesem Schritt erstellen wir einen neuen Cluster mit 3 Centos-Servern. Konfigurieren Sie dann die Floating-IP-Adresse und fügen Sie neue Nginx-Ressourcen hinzu.

Um den Cluster zu erstellen, müssen wir alle Server mit dem Befehl pcs und dem Benutzer hacluster autorisieren.

Autorisieren Sie alle Server mit dem pcs-Befehl und hacluster-Benutzer und -Passwort.

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

Jetzt ist es an der Zeit, den Cluster einzurichten. Definieren Sie den Clusternamen und alle Server, die Teil des Clusters sein werden.

pcs cluster setup --name hakase_cluster web01 web02 web03

Starten Sie nun alle Clusterdienste und aktivieren Sie diese ebenfalls.

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

Überprüfen Sie als Nächstes den Clusterstatus.

pcs status cluster

Schritt 5 – Deaktivieren Sie STONITH und ignorieren Sie die Quorum-Richtlinie

Da wir das Fechtgerät nicht verwenden, werden wir den STONITH deaktivieren. STONITH oder Shoot The Other Node In The Head ist die Fechtimplementierung auf Pacemaker. Wenn Sie in der Produktion sind, ist es besser, STONITH zu aktivieren.

Deaktivieren Sie STONITH mit dem folgenden pcs-Befehl.

pcs property set stonith-enabled=false

Als Nächstes ignorieren Sie die Quorum-Richtlinie.

pcs property set no-quorum-policy=ignore

Überprüfen Sie die Eigenschaftsliste und stellen Sie sicher, dass stonith und die Quorum-Richtlinie deaktiviert sind.

pcs property list

Die STONITH- und Quorum-Richtlinie ist deaktiviert.

Schritt 6 – Floating-IP und Ressourcen hinzufügen

Floating IP ist die IP-Adresse, die automatisch von einem Server zu einem anderen Server im selben Rechenzentrum migriert/verschoben werden kann. Und wir haben die Floating-IP-Adresse für Pacemaker High-Availability bereits auf „10.0.15.15“ festgelegt. Jetzt wollen wir zwei Ressourcen hinzufügen, die Floating-IP-Adressressource mit dem Namen „virtual_ip“ und eine neue Ressource für den Nginx-Webserver namens „webserver“.

Fügen Sie die neue Ressourcen-Floating-IP-Adresse „virtual_ip“ mit dem pcs-Befehl wie unten gezeigt hinzu.

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

Fügen Sie als Nächstes eine neue Ressource für den Nginx-Webserver hinzu.

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

Stellen Sie sicher, dass Sie kein Fehlerergebnis erhalten haben, und überprüfen Sie dann die verfügbaren Ressourcen.

pcs status resources

Sie sehen zwei Ressourcen „virtual_ip“ und einen „webserver“. Neue Ressourcen für Floating IP und Nginx-Webserver wurden hinzugefügt.

Schritt 7 – Hinzufügen von Einschränkungsregeln zum Cluster

In diesem Schritt richten wir Hochverfügbarkeitsregeln und Ressourcenbeschränkungen mit der pcs-Befehlszeilenschnittstelle ein.

Legen Sie die Sortierungsbeschränkung für Webserver- und virtual_ip-Ressourcen mit der Bewertung „INFINITY“ fest. Richten Sie außerdem den Webserver und die virtual_ip-Ressourcen auf allen Serverknoten gleich ein.

pcs constraint colocation add webserver virtual_ip INFINITY

Legen Sie die Ressourcen „virtual_ip“ und „webserver“ immer auf denselben Knotenservern fest.

pcs constraint order virtual_ip then the webserver

Stoppen Sie als Nächstes den Cluster und starten Sie ihn erneut.

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

Überprüfen Sie jetzt noch einmal die Ressourcen und Sie sehen ihren Status als "Gestartet" auf demselben Server "web01".

pcs status resources

virtual_ip und Webserver-Ressourcen wurden auf demselben Server/Knoten „web01“ gestartet.

Schritt 8 - Konfigurieren Sie Firewalld

Der HA-Cluster läuft unter der Firewall-Konfiguration firewalld - installieren Sie es, wenn Sie das Paket nicht haben.

yum -y install firewalld

Starten Sie firewalld und aktivieren Sie es so, dass es jedes Mal beim Systemstart automatisch ausgeführt wird, indem Sie die folgenden systemctl-Befehle verwenden.

systemctl start firewalld
systemctl enable firewalld

Fügen Sie als Nächstes neue Dienste mit Firewall-cmd-Befehlen zur Firewall hinzu – fügen Sie Hochverfügbarkeitsdienste, HTTP- und HTTPS-Dienste für Nginx hinzu.

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

Laden Sie die Firewall-Konfiguration neu und überprüfen Sie alle Dienste.

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

Stellen Sie sicher, dass ein Dienst mit HTTP und https auf der Liste steht.

Schritt 9 – Testen

In diesem Schritt führen wir einige Tests für den Cluster durch. Testen Sie den Knotenstatus („Online“ oder „Offline“), testen Sie die Corosync-Mitglieder und den Status und testen Sie dann die Hochverfügbarkeit des Nginx-Webservers, indem Sie auf die Floating-IP-Adresse zugreifen.

Testen Sie den Knotenstatus mit dem folgenden Befehl.

pcs status nodes

Alle Knoten sind 'Online'.

Testen Sie die Corosync-Mitglieder.

corosync-cmapctl | grep members

Sie erhalten die IP-Adresse der Corosync-Mitglieder.

Überprüfen Sie die Corosync-Mitglieder und Sie sehen das Ergebnis wie unten gezeigt.

pcs status corosync

Und schließlich überprüfen Sie die Hochverfügbarkeit des Webservers. Öffnen Sie Ihren Webbrowser und geben Sie die Floating-IP-Adresse „10.0.15.15“ ein.

Sie sehen die Webseite vom 'web01'-Server.

Stoppen Sie als Nächstes den Cluster auf dem Server „web01“ mit dem folgenden Befehl.

pcs cluster stop web01

Und überprüfen Sie die Seite erneut, und Sie erhalten die Seite wie unten vom 'web02'-Server.

Zusätzlich:

Überprüfen Sie den Clusterstatus mit dem folgenden Befehl.

pcs status

Und Sie erhalten das unten gezeigte Ergebnis.

Die Einrichtung von Nginx Webserver High Availability mit Pacemaker, Corosync und Pcsd auf dem CentOS 7-Server wurde erfolgreich abgeschlossen.


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7

  3. So installieren Sie Nextcloud mit Nginx und PHP 7.3 auf CentOS 8

  4. So installieren Sie ownCloud 9.1 mit Nginx und MariaDB auf CentOS 7

  5. So richten Sie Nginx High Availability Cluster mit Pacemaker unter CentOS 7 ein

So installieren Sie OwnCloud 8 mit Nginx und MariaDB auf CentOS 7

So installieren Sie Shopware 6 mit NGINX und Lets Encrypt unter CentOS 8

So installieren Sie Nginx mit ngx_pagespeed unter CentOS

So installieren Sie OwnCloud 8 mit Nginx und PHP-FPM auf CentOS 6

So installieren Sie Nginx mit PHP-FastCGI unter CentOS 6

So installieren und konfigurieren Sie Hive mit Hochverfügbarkeit – Teil 7