Les gens,
J'essaie de remplacer un seul équilibreur de charge vieillissant par plusieurs machines virtuelles exécutant nginx. Cependant, après avoir obtenu centos 7 et nginx installé, j'ai réalisé que heartbeat a été déprécié. J'ai donc commencé à regarder corosync et pcs pour configurer et gérer un cluster HA.
J'ai configuré les nœuds du cluster et ajouté une ressource pour une ip virtuelle pour chaque webapp que je souhaite utiliser. Les problèmes deviennent apparents lorsque je vérifie le statut
[root@vlb1 nginx]# pcs status
Cluster name: webapps
Last updated: Thu Mar 5 21:27:03 2015
Last change: Thu Mar 5 16:43:22 2015 via cibadmin on vlb1.domain.com
Stack: corosync
Current DC: vlb2.domain.com (2) - partition with quorum
Version: 1.1.10-32.el7_0.1-368c726
2 Nodes configured
2 Resources configured
Online: [ vlb1.domain.com vlb2.domain.com ]
Full list of resources:
webapp1_cluster (ocf::heartbeat:IPaddr2): Started vlb2.domain.com
webapp2_cluster (ocf::heartbeat:IPaddr2): Started vlb1.domain.com
PCSD Status:
vlb1.domain.com: Online
vlb2.domain.com: Online
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Je constate immédiatement que des groupes de ressources sont dirigés vers différents nœuds. Le problème le plus important est que sans corosync contrôlant nginx, vlb1 pourrait fonctionner alors que vlb2 donnerait une erreur de type "cannot bind address", c'est-à-dire.
015/03/05 21:15:51 [emerg] 985#0: bind() to 92.168.1.88:443 failed (99: Cannot assign requested address)
A ce stade, j'ai deux questions :
-
Est-il possible de faire en sorte que le cluster HA contrôle le démarrage (sur le nouveau nœud) et l'arrêt (sur l'ancien nœud) de nginx lorsqu'un basculement se produit ?
-
Est-il possible d'avoir plusieurs ressources de cluster et qu'elles soient toutes dirigées vers le nœud actuel, ou dois-je router plusieurs applications web vers une seule ip virtuelle et gérer cela dans la déclaration du serveur dans nginx ?
Nous avions à l'origine séparé chaque application web unique dans son propre cluster pour des raisons de conformité PCI et je préférerais ne pas avoir plusieurs applications web uniques pointant toutes vers la même IP virtuelle.