Depuração de implementações de aplicativos

Nuvem privada virtual Infraestrutura clássica

Revise as opções que você tiver para depurar suas implementações de app e localize as causas raiz das falhas.

Antes de começar, certifique-se de ter a função de acesso de serviço Gravador ou Gerenciador do IAM do IBM Cloud para o namespace no qual seu aplicativo é implementado.

  1. Procure anomalias nos recursos de serviço ou implementação executando o comando describe.

    kubectl describe service <service_name>
    
  2. Verifique se os contêineres estão presos no estado ContainerCreating.

  3. Verifique se o cluster está no estado Critical. Se o cluster estiver em um estado Critical, verifique as regras de firewall e verifique se o mestre pode se comunicar com os nós do trabalhador.

  4. Verifique se o serviço está atendendo na porta correta.

    1. Obtenha o nome de um pod.
      kubectl get pods
      
    2. Efetue login em um contêiner.
      kubectl exec -it <pod_name> -- /bin/bash
      
    3. Executar curl do app de dentro do contêiner. Se a porta não estiver acessível, o serviço poderá não estar atendendo na porta correta ou o app pode ter problemas. Atualize o arquivo de configuração do serviço com a porta correta e reimplante, ou investigue possíveis problemas com o aplicativo.
      curl localhost:<port>
      
  5. Verifique se o serviço está vinculado corretamente aos pods.

    1. Obtenha o nome de um pod.
      kubectl get pods
      
    2. Efetue login em um contêiner.
      kubectl exec -it <pod_name> -- /bin/bash
      
    3. Executar curl do endereço IP do cluster e da porta do serviço.
      curl <cluster_IP>:<port>
      
    4. Se o endereço IP e a porta não estiverem acessíveis, observe os terminais para o serviço.
      • Se nenhum terminal está listado, o seletor para o serviço não corresponde ao pods. Por exemplo, sua implementação do app pode ter o rótulo app=foo, mas o serviço pode ter o seletor run=foo.
      • Se os terminais estiverem listados, olhe para o campo da porta de destino no serviço e certifique-se de que a porta de destino seja a mesma que está sendo usada para os pods. Por exemplo, o seu app pode atender na porta 9080, mas o serviço pode atender na porta 80.
  6. Para serviços do Ingresso, verifique se o serviço está acessível de dentro do cluster.

    1. Obtenha o nome de um pod.
      kubectl get pods
      
    2. Efetue login em um contêiner.
      kubectl exec -it <pod_name> -- /bin/bash
      
    3. Executar curl da URL especificada para o serviço do Ingresso. Se a URL não estiver acessível, procure um problema de firewall entre o cluster e o terminal externo.
      curl <host_name>.<domain>