Como acessar os aplicativos que foram implantados no k8s no Google Cloud Platform usando um balanceador de carga HTTP (S) do Google Cloud Engine?

1

Objetivo: acessar aplicativos que residem em um namespace de kubernetes (k8s) usando um balanceador de carga HTTP (S)

Métodos

TCP load balancing (TLB) (camada 4)

  • Um cluster k8s foi criado no Google Cloud Platform (GCP)
  • Um IP estático foi criado
  • Um TLB foi criado, o IP estático foi atribuído e o DNS foi atualizado
  • Navegar para some.domain.com mostra o aplicativo que foi implantado no namespace "alguns"
  • another.domain.com mostra o aplicativo executado dentro do "outro" namespace
  • Quando espaços de nome adicionais são implantados, por exemplo, algo-else, em seguida, indo para algo-else.domain.com retorna o aplicativo daquele namespace também.

Balanceamento de carga HTTP (S) (camada 7)

  • A suposição era de que os aplicativos poderiam ser acessados da mesma maneira, ou seja, basta substituir o TLB pelo outro da camada 7.
  • Um dos GCP oficiais foi seguido, o backend foi configurado, o caminho padrão foi deixado como está e os certificados foram configurados na seção frontend
  • O DNS foi atualizado
  • Após cinco minutos, um HTTP 502 foi retornado quando algum.domínio.com foi consultado
  • O log de entrada do log nginx POD foi seguido, mas nenhum log adicional foi adicionado quando o some.domain.com foi atualizado
  • O registro no GCP indicou que há um "erro de back-end"
  • A verificação de integridade do balanceador de carga não estava funcionando bem inicialmente e, quando uma verificação 10256 HTTP foi adicionada, o serviço ficou verde
  • Quando se navega para alguns dos namespaces, o seguinte erro é exibido:

Error: Server Error

The server encountered a temporary error and could not complete your request.

Please try again in 30 seconds.

Discussão

  • Embora a mesma verificação de integridade, ou seja, a que é usada para o TLB foi adicionada e transformou o HLB em verde, isso pode ser um falso positivo.
  • De acordo com este Q & A , o problema é causado por um serviço insalubre, mas a verificação TCP 10256 foi adicionada , transformou o serviço em verde e, em seguida, o problema persistiu. Deveria outro cheque por adicionado?
  • A suposição de que o TLB funcionaria da mesma maneira parece incorreta. De acordo com o log do GCP, o HLB não pode nem direcionar o tráfego para um namespace.

Sub-perguntas

  • Qual verificação de saúde deve ser configurada para verificar o HLB?
  • Como o roteamento do HLB se desvia do TLB?
por 030 14.05.2018 / 22:10

1 resposta

0

Como comentário:

O "Erro: Erro do Servidor" provavelmente é gerado a partir de uma verificação de integridade não íntegra que não está recebendo a resposta 200 do backend. Você verificou se o back-end não tem nenhum redirecionamento na raiz caminho da web /?

    
por 15.05.2018 / 17:58