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. Certifique-se de revisar os cenários comuns nos quais poderá ser necessário modificar seus apps, para que eles possam ser implementados nos clusters do Red Hat OpenShift.

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

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

  4. 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.

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

    1. Obtenha o nome de um pod.
      oc get pods
      
    2. Efetue login em um contêiner.
      oc 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>
      
  6. Verifique se o serviço está vinculado corretamente aos pods.

    1. Obtenha o nome de um pod.
      oc get pods
      
    2. Efetue login em um contêiner.
      oc 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.
  7. Para serviços do Ingresso, verifique se o serviço está acessível de dentro do cluster.

    1. Obtenha o nome de um pod.
      oc get pods
      
    2. Efetue login em um contêiner.
      oc 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>