Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Clúster de alta disponibilidad HAproxy en Red Hat 7

Clúster de alta disponibilidad HAproxy en Red Hat 7

Tabla de contenidos

¿Que es un Cluster HA?

Un cluster de alta disponibilidad es un conjunto de dos o más máquinas que se caracterizan por mantener una serie de servicios compartidos y por estar constantemente monitorizándose entre sí. Podemos

mas información

¿Que es HAProxy?

HAProxy (que significa alta disponibilidad Proxy) es una solución de código abierto rápido y confiable, que es capaz de manejar el tráfico enorme y ofrece alta disponibilidad, balanceo de carga y proxy para TCP y aplicaciones basadas en HTTP. Similar a NginxBalancer, se utiliza un modelo orientado a eventos de un solo proceso, que consume un bajo (y estable) cantidad de memoria, lo que permite a HAProxy procesar un gran número de peticiones concurrentes al mismo tiempo, garantiza un buen equilibrio de carga con la persistencia inteligente y mitigación de DDoS.

Configuramos el archivo /etc/hosts en ambos nodos

text
172.20.0.10 proxyinv01.redorbita.com proxyinv01
172.20.0.11 proxyinv02.redorbita.com proxyinv02
172.20.0.12 proxyinv-vip.redorbita.com proxyinv-vip

Listamos la subcripciones

text
subscription-manager list –available

Añadimos la subcripción

text
subscription-manager list –available
subscription-manager attach –pool=8a85f981550f53aa01550fbfd43c69aa
subscription-manager repos –enable=rhel-ha-for-rhel-7-server-rpms

Instalamos la paquetería necesaria:

Dado que en mi caso lo empleare como proxy inverso tambien instalare apache.

bash
yum install iptables-services haproxy apache pcs fence-agents-all

Habilitamos las reglas en el firewall o lo desactivamos

bash
firewall-cmd –permanent –add-service=high-availability
firewall-cmd –add-service=high-availability
systemctl stop firewalld
ystemctl disable firewalld
systemctl mask firewalld

Activamos iptables

bash
systemctl enable iptables
systemctl start iptables
text
Cambiamos la contraseña al usuario del cluster
text
passwd hacluster
Changing password for user hacluster.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Iniciamos el servicio.

bash
systemctl start pcsd.service
systemctl enable pcsd.service

Autorizar nodos y usuario, realizar en un solo nodo:

text
pcs cluster auth proxyinv01.redorbita.com proxyinv02.redorbita.com
Username: hacluster
Password:
proxyinv01.redorbita.com: Authorized
proxyinv02.redorbita.com: Authorized

Creamos el cluster y habilitar cluster al iniciar maquinas

text
pcs cluster setup –start –name clusproxyinv proxyinv01.redorbita.com proxyinv02.redorbita.com

Activamos los dos nodos

text
pcs cluster enable –all

Comprobamos el estado del cluster

text
pcs cluster status
Cluster Status:
Last updated: Thu Jun 2 11:58:37 2016 Last change: Thu Jun 2 11:38:40 2016 by hacluster via crmd on proxyinv01.redorbita.com
Stack: corosync
Current DC: proxyinv01.redorbita.com (version 1.1.13-10.el7_2.2-44eb2dd) – partition with quorum
2 nodes and 0 resources configured
Online: [proxyinv01.redorbita.com proxyinv02.redorbita.com]
PCSD Status:
proxyinv01.redorbita.com: Online
proxyinv02.redorbita.com: Online

Generamos el usuario de Fence en vmware, para ello nos vamos a Roles en el vcenter

Generamos el usuario de Fence en vmware, para ello nos vamos a Roles en el vcenter

redhatcluster02 redhatcluster03 redhatcluster04

Nos vamos a la carpeta del proyecto, botón detrecho > Add Permission…

redhatcluster05

redhatcluster06

Creamos el recurso fence

text
pcs stonith create fence fence_vmware_soap pcmk_host_map=»node1:proxyinv01.redorbita.com;node2:proxyinv02.redorbita.com» ipaddr=<ESXi/vCenter IP address> ssl=1 login=fenceuser passwd=fencepassword01.

Desactivamos el quorum y stonith

text
pcs property set no-quorum-policy=ignore
pcs property set stonith-enabled=false

Creamos los recursos

text
pcs resource create proxyinv-vip ocf:heartbeat:IPaddr2 ip=172.20.0.12 cidr_netmask=32 op monitor interval=30s
pcs resource create apache ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf op monitor interval=20s
pcs resource create HAproxy systemd:haproxy op monitor interval=5s

Configuramos el orden de inicio de los recursos.

text
pcs constraint order start proxyinv-vip then apache
pcs constraint order start apache then HAproxy

Creamos el grupo y añadimos los recursos a este grupo

text
pcs resource group add clusproxyinv proxyinv-vip apache Haproxy

Iniciamos el recurso

text
pcs resource enable clusproxyinv

un saludo

:wq!

Comentarios