Pular para o conteúdo principal

Sequência de Verificação de Falhas de Aplicação

Se uma aplicação está enfrentando problemas, por onde devemos começar?

Vamos considerar um cenário de uma aplicação Web que se comunica com o banco de dados.

Exemplo de Aplicação

Aqui estão algumas dicas sobre como realizar uma verificação para tentar descobrir onde está ocorrendo um problema específico.

Um bom log pode ser de grande ajuda. No entanto, dependendo do problema, podemos ter uma ideia se devemos começar pela esquerda ou pela direita.

Tudo vai depender de como os objetos estão organizados no cluster. Se tivermos banco de dados e aplicação web em namespaces diferentes, políticas de rede diferentes, etc. Mas vamos simplificar o problema, embora seja importante ter isso em mente.

O ideal é verificar cada elo mostrado na imagem.

Se um usuário relatar problemas para acessar o aplicativo, por onde devemos começar?

Se ele relatou que o problema está relacionado ao acesso, então vamos começar pela aplicação web.

  1. Testar se o webapp está acessível. Uma ótima ferramenta para fazer isso é o curl. Execute: curl http://webapp-service:node-port

  2. Verificar os endpoints no serviço webapp para ver se correspondem aos dos pods.

    2.1. Verificar se o seletor do serviço corresponde aos labels dos pods que ele está direcionando.

  3. Verificar os pods, logs e eventos dos pods da aplicação web para ver se não estão sendo reiniciados.

    3.1. Verificar usando kubectl log, kubectl get pod, kubectl describe pod, etc.

    3.2. Verificar Política de Rede.

    3.3. Verificar Containers de Inicialização se existirem.

    3.4. Verificar comandos e argumentos.

    3.5. Verificar variáveis de ambiente.

    3.6. Verificar segredos utilizados.

    3.7. Verificar volumes montados e PVCs.

  4. Verificar o serviço de banco de dados da mesma forma que no passo 2.

  5. Verificar o pod do banco de dados como no passo 3.

Esta foi apenas uma ideia rápida, mas se você não estiver familiarizado com o Kubernetes, pode ser difícil saber por onde começar.