Eu tenho um grupo de instâncias com 2 instâncias atrás de um balanceador de carga HTTP. uma instância está ativa e funcionando normalmente (retornando http 200), a outra travou (tempo limite de solicitações HTTP). Não tenho certeza do que estou fazendo de errado, mas de acordo com a documentação, a instância com falha deve ser removida automaticamente do balanceador de carga.
Aqui estão os documentos relacionados:https://cloud.google.com/compute/docs/load-balancing/health-checks com o parágrafo relacionado:
Para que uma verificação de integridade seja considerada bem-sucedida, o back-end deve retornar uma resposta HTTP válida com o código 200 e fechar a conexão normalmente dentro do período timeoutSec. Se uma instância falhar na verificação de integridade, ela será removida do grupo ou pool sem que nenhuma notificação seja enviada. Se posteriormente passar em uma verificação de integridade, ele será retornado ao grupo ou pool, novamente sem qualquer notificação.
Aqui está o que vejo atualmente na minha página do console do Google Cloud para o back-end do HTTP Load Balancer.
Ao visitar meu site (http://stage2.phantomjscloud.com) Cerca de metade das vezes que recebo
Erro: Erro do Servidor O servidor encontrou um erro temporário e não pôde concluir sua solicitação. Por favor, tente novamente em 30 segundos.
O balanceador de carga HTTP (e a verificação de integridade) detecta claramente a instância com falha, mas o tráfego ainda está sendo fornecido a ela de qualquer maneira.
Como posso resolver o problema?
Responder1
verificações de integridade de grupos de instâncias gerenciadas VS verificações de integridade do balanceamento de carga
As verificações de integridade usadas pelos grupos de instâncias gerenciadas são as mesmas usadas pelo balanceamento de carga, com algumas diferenças de comportamento. As verificações de integridade aplicadas aos serviços de balanceamento de carga ajudam um balanceador de carga a determinar para onde direcionar o tráfego de rede. Essas verificações de integridade não fazem com que o Compute Engine recrie instâncias. As verificações de integridade aplicadas a grupos de instâncias gerenciadas sinalizarão proativamente ao grupo de instâncias gerenciadas para excluir e recriar instâncias se elas se tornarem INSEGURES.
Na maioria dos cenários, use verificações de integridade separadas para balanceamento de carga e monitoramento de grupos de instâncias gerenciadas. A verificação de integridade para balanceamento de carga pode e deve ser mais agressiva, pois determina se uma instância recebe tráfego de usuário. Como os clientes podem confiar em seus serviços, você deseja capturar rapidamente as instâncias que não respondem para poder redirecionar o tráfego, se necessário. Por outro lado, a verificação de integridade de grupos de instâncias fará com que o Compute Engine substitua proativamente as instâncias com falha, para que você possa criar verificações de integridade mais conservadoras do que as verificações de integridade de um balanceador de carga.
Responder2
Faz algum tempo que não vejo esse tipo de bug (6 meses ou mais), então acho que foi um bug do Google Cloud e eles o corrigiram.