Rolling update behind HAProxy

1

Estou usando uma plataforma de infraestrutura que consiste em contêineres de estivadores em execução em um host do CentOS.

  • Dimensionar vários contêineres por meio do docker compor.
  • Cônsul para descoberta de serviços.
  • Registrator para registro de serviços
  • HAProxy como balanceador de carga
  • Cônsul-modelo para gerar a configuração do haproxy toda vez que o contêiner é adicionado / removido.

Sempre que atualizamos nossa compilação, novos contêineres são gerados e contêineres antigos são removidos. O problema é que os contêineres são removidos instantaneamente sem considerar as solicitações existentes sendo atendidas pelos contêineres. Idealmente, eu deveria ter um sinal para marcar os contêineres no modo de manutenção ou drenagem para que as conexões existentes possam ser atendidas e, em seguida, gentilmente removidas do haproxy primeiro e depois fisicamente.

Alguém já enfrentou esse problema antes ou fez o mesmo fluxo de trabalho de escalonamento automático por meio de contêineres.

    
por Madhur Ahuja 24.06.2016 / 15:56

1 resposta

3

Do meu entendimento do que você está perguntando, você tem controle sobre todas as etapas desse processo e deseja exibir novas versões de um aplicativo conteinerizado que fica atrás do HAProxy sem interromper as conexões do cliente com os aplicativos antigos, mas evitando novas conexões.

Isso parece ser um bom uso do comando de servidor HAProxy disable .

Você deve ser capaz de desabilitar seus servidores preteridos, marcando-os para manutenção no HAProxy, o que deve permitir que os clientes concluam seus negócios, e sua magia consul / HAProxy pode colocar os novos servidores online.

    
por 28.06.2016 / 19:23