Como deixar o Corosync / pcs controlar o nginx?

2

Gente,

Estou tentando substituir um único balanceador de carga antigo por várias máquinas virtuais que executam o nginx. No entanto, depois que eu instalei o centos 7 e o nginx, percebi que o heartbeat estava obsoleto. Então, comecei a procurar no corosync e pcs para configurar e gerenciar um cluster de alta disponibilidade.

Eu configurei os nós no cluster e adicionei um recurso para um ip virtual para cada webapp que desejo usar. Os problemas se tornam aparentes quando eu verifico o status

[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

Imediatamente, vejo que tenho clusters de recursos indo para nós diferentes. O maior problema é que, sem o corosync controlando o nginx, o vlb1 pode estar funcionando, enquanto o vlb2 fornecerá um erro de endereço não vinculado, ou seja,

015/03/05 21:15:51 [emerg] 985#0: bind() to 92.168.1.88:443 failed (99: Cannot assign requested address)

Neste ponto, tenho duas perguntas:

  1. É possível iniciar o controle de cluster de alta disponibilidade (no novo nó) e parar (no nó antigo) nginx quando ocorre um failover?

  2. É possível ter vários recursos de cluster e tê-los todos indo para o nó atual ou eu deveria rotear vários aplicativos da Web para um único ip virtual e manipulá-lo na declaração do servidor no nginx?

Originalmente, tínhamos separado cada aplicativo único em seu próprio cluster por motivos de Conformidade com PCI e preferiria não ter vários aplicativos únicos apontando para o mesmo ip virtual.

    
por Jchieppa 06.03.2015 / 06:58

0 respostas