GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar la alta disponibilidad de Nginx con Pacemaker y Corosync en CentOS 7

En este tutorial, lo guiaremos paso a paso sobre cómo crear un servidor web Nginx de clúster de alta disponibilidad con Pacemaker, Corosync y Pcsd. Crearemos el servidor web Nginx de clúster activo-pasivo o clúster de conmutación por error utilizando Pacemaker en un sistema CentOS 7.

Marcapasos es un software de administración de clústeres de código abierto que logra la máxima disponibilidad de sus servicios. Es un administrador de clústeres HA avanzado y escalable distribuido por ClusterLabs.

Corosync Cluster Engine es un proyecto de código abierto derivado del proyecto OpenAIS bajo la nueva licencia BSD. Es un sistema de comunicación grupal con funciones adicionales para implementar alta disponibilidad dentro de las aplicaciones.

Existen algunas aplicaciones para las interfaces de Pacemaker. Udsd es una de las interfaces de línea de comandos y GUI de Pacemaker para administrar Pacemaker. Podemos crear, configurar o agregar un nuevo nodo al clúster con el comando pcsd pcs.

Requisitos previos

  • 2 o más servidores CentOS 7
    • web01       10.0.15.10
    • web02       10.0.15.11
    • web03       10.0.15.12
  • Dirección IP flotante 10.0.15.15
  • Privilegios de raíz

Qué haremos:

  1. Asignar el archivo de host
  2. Instalar repositorio Epel y Nginx
  3. Instalar y configurar marcapasos, Corosync y Pcsd
  4. Crear y configurar el clúster
  5. Deshabilitar STONITH e ignorar la política de quórum
  6. Agregue la IP flotante y los recursos
  7. Agregar reglas al clúster
  8. Configurar cortafuegos
  9. Probar la configuración

Paso 1:Asignar el archivo de host

Nota : Ejecute los pasos 1 - 3 en todos los servidores web01, web02 y web03.

El primer paso que debemos hacer es editar el archivo de host en cada servidor para asignar el nombre de host de todos los servidores. Tenemos servidores 'web01', 'web02' y 'web03', inicie sesión en cada servidor con la cuenta ssh.

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

Edite el archivo '/etc/hosts' con vim.

vim /etc/hosts

Pegue la siguiente configuración allí.

10.0.15.10      web01
10.0.15.11      web02
10.0.15.12      web03

Guardar y salir.

Ahora pruebe la configuración de mapeo de los hosts.

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

Asegúrese de que 'web01', 'web02' y 'web03' estén asignados a las direcciones IP correctas.

Paso 2:instalar el repositorio de Epel y Nginx

En este paso, instalaremos el repositorio epel y luego instalaremos el servidor web Nginx. Se necesita el repositorio EPEL o Extra Packages for Enterprise Linux para instalar paquetes Nginx.

Instale el repositorio EPEL usando el siguiente comando yum.

yum -y install epel-release

Ahora instale el servidor web Nginx desde el repositorio de EPEL.

yum -y install nginx

Una vez completada la instalación, cambie la página index.html predeterminada en cada servidor por una página nueva.

#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

El repositorio EPEL y el servidor web Nginx ahora están instalados en el sistema.

Paso 3:instalar y configurar Pacemaker, Corosync y Pcsd

Pacemaker, Corosync y Pcsd están disponibles en el repositorio del sistema predeterminado. Entonces, todos pueden instalarse desde el repositorio de CentOS usando el siguiente comando yum.

yum -y install corosync pacemaker pcs

Una vez completada la instalación, habilite todos los servicios para que se inicien automáticamente al iniciar el sistema mediante los siguientes comandos systemctl.

systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemaker

Ahora inicie la interfaz de línea de comandos pcsd Pacemaker en todos los servidores.

systemctl start pcsd

Luego, cree una nueva contraseña para el usuario 'hacluster' y use la misma contraseña para todos los servidores. Este usuario se ha creado automáticamente durante la instalación del software.

Así es como configura una contraseña para el 'hacluster ' usuario.

passwd hacluster
Enter new password:

La pila de software de alta disponibilidad Pacemaker, Corosync y Pcsd están instalados en el sistema.

Paso 4:crear y configurar el clúster

Nota :Ejecute los pasos 4 - 7 en 'web01' solo.

En este paso, crearemos un nuevo clúster con 3 servidores centos. Luego configure la dirección IP flotante y agregue nuevos recursos de Nginx.

Para crear el clúster, debemos autorizar todos los servidores mediante el comando pcs y el usuario hacluster.

Autorice todos los servidores con el comando pcs y el usuario y la contraseña de hacluster.

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

Ahora es el momento de configurar el clúster. Defina el nombre del clúster y todos los servidores que formarán parte del clúster.

pcs cluster setup --name hakase_cluster web01 web02 web03

Ahora inicie todos los servicios de clúster y habilítelos también.

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

A continuación, compruebe el estado del clúster.

pcs status cluster

Paso 5:deshabilite STONITH e ignore la política de quórum

Dado que no estamos usando el dispositivo de vallado, desactivaremos el STONITH. STONITH o Shoot The Other Node In The Head es la implementación de esgrima en Pacemaker. Si está en producción, es mejor habilitar STONITH.

Desactive STONITH con el siguiente comando pcs.

pcs property set stonith-enabled=false

Luego, para la política de Quórum, ignórela.

pcs property set no-quorum-policy=ignore

Verifique la lista de propiedades y asegúrese de que stonith y la política de quórum estén deshabilitados.

pcs property list

La Política de STONITH y Quórum está deshabilitada.

Paso 6:agregue la IP flotante y los recursos

La IP flotante es la dirección IP que se puede migrar/mover automáticamente de un servidor a otro servidor en el mismo centro de datos. Y ya hemos definido la dirección IP flotante para Pacemaker High-Availability como '10.0.15.15'. Ahora queremos agregar dos recursos, el recurso de dirección IP flotante con el nombre 'virtual_ip' y un nuevo recurso para el servidor web Nginx llamado 'webserver'.

Agregue la nueva dirección IP flotante de recursos 'virtual_ip' usando el comando pcs como se muestra a continuación.

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

A continuación, agregue un nuevo recurso para el 'servidor web' de Nginx.

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

Asegúrese de que no obtuvo ningún resultado de error, luego verifique los recursos disponibles.

pcs status resources

Verá dos recursos 'virtual_ip' y un 'webserver'. Se han agregado nuevos recursos para el servidor web Floating IP y Nginx.

Paso 7:agregar reglas de restricción al clúster

En este paso, configuraremos las reglas de alta disponibilidad y configuraremos la restricción de recursos con la interfaz de línea de comandos de pcs.

Establezca la restricción de intercalación para el servidor web y los recursos de virtual_ip con la puntuación 'INFINITY'. Además, configure los recursos del servidor web y virtual_ip como igual en todos los nodos del servidor.

pcs constraint colocation add webserver virtual_ip INFINITY

Configure los recursos 'virtual_ip' y 'webserver' siempre en los mismos servidores de nodo.

pcs constraint order virtual_ip then the webserver

A continuación, detenga el clúster y vuelva a iniciarlo.

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

Ahora, verifique nuevamente los recursos y verá su estado como 'Iniciado' en el mismo servidor 'web01'.

pcs status resources

Los recursos virtual_ip y webserver se han iniciado en el mismo servidor/nodo 'web01'.

Paso 8:configurar el cortafuegos

HA-Cluster se ejecutará bajo la configuración del firewall firewalld; instálelo si no tiene el paquete.

yum -y install firewalld

Inicie firewalld y habilítelo para que se ejecute automáticamente cada vez que se inicie el sistema usando los siguientes comandos systemctl.

systemctl start firewalld
systemctl enable firewalld

A continuación, agregue nuevos servicios al firewalld con los comandos firewall-cmd:agregue servicios de alta disponibilidad, HTTP y HTTPS para Nginx.

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

Vuelva a cargar la configuración del cortafuegos y compruebe todos los servicios.

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

Asegúrese de que haya un servicio con HTTP y https en la lista.

Paso 9 - Prueba

En este paso, haremos algunas pruebas para el clúster. Pruebe el estado del nodo ('En línea' o 'Fuera de línea'), pruebe los miembros y el estado de corosync, y luego pruebe la alta disponibilidad del servidor web Nginx accediendo a la dirección IP flotante.

Pruebe el estado del nodo con el siguiente comando.

pcs status nodes

Todos los nodos están 'en línea'.

Pruebe los miembros corosync.

corosync-cmapctl | grep members

Obtendrá la dirección IP de los miembros de Corosync.

Compruebe los miembros de Corosync y verá el resultado como se muestra a continuación.

pcs status corosync

Y, por último, verifique la alta disponibilidad del servidor web. Abra su navegador web y escriba la dirección IP flotante '10.0.15.15'.

Verá la página web desde el servidor 'web01'.

A continuación, detenga el clúster en el servidor 'web01' con el siguiente comando.

pcs cluster stop web01

Y verifique nuevamente la página, y obtendrá la página del servidor 'web02' como se muestra a continuación.

Adicional:

Verifique el estado del clúster con el siguiente comando.

pcs status

Y obtendrá el resultado como se muestra a continuación.

La configuración de la alta disponibilidad del servidor web Nginx con Pacemaker, Corosync y Pcsd en el servidor CentOS 7 se completó con éxito.


Cent OS
  1. Cómo instalar y configurar Nginx en CentOS 7

  2. Cómo instalar phpMyAdmin con Nginx en CentOS 7

  3. Cómo instalar Nextcloud con Nginx y PHP 7.3 en CentOS 8

  4. Cómo instalar ownCloud 9.1 con Nginx y MariaDB en CentOS 7

  5. Cómo configurar el clúster de alta disponibilidad de Nginx con Pacemaker en CentOS 7

Cómo instalar OwnCloud 8 con Nginx y MariaDB en CentOS 7

Cómo instalar Shopware 6 con NGINX y Lets Encrypt en CentOS 8

Cómo instalar Nginx con ngx_pagespeed en CentOS

Cómo instalar OwnCloud 8 con Nginx y PHP-FPM en CentOS 6

Cómo instalar Nginx con PHP-FastCGI en CentOS 6

Cómo instalar y configurar Hive con alta disponibilidad:parte 7