2 votes

Comment laisser Corosync / pcs contrôler nginx ?

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 :

  1. 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 ?

  2. 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.

0voto

Krasi Points 96

Vous pouvez jeter un coup d'œil aux différents agents de ressources utilisés pour gérer des services - aquí

Il existe un agent de ressources pour gérer le démon nginx.

Vous pouvez alors utiliser Contraintes de colocation de sorte que nginx et adresse ip sont toujours sur le même hôte.

Et utilisez également Les constantes de l'ordre pour définir l'ordre de démarrage de sorte que les adresse ip est toujours lancé avant de lancer le nginx service. Le site adresse ip doit également être arrêté après le nginx est arrêté au cas où le service serait déplacé vers un autre nœud de votre cluster.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X