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.
-
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.
-
Procure anomalias nos recursos de serviço ou implementação executando o comando
describe.oc describe service <service_name> -
Verifique se os contêineres estão presos no estado
ContainerCreating. -
Verifique se o cluster está no estado
Critical. Se o cluster estiver em um estadoCritical, verifique as regras de firewall e verifique se o mestre pode se comunicar com os nós do trabalhador. -
Verifique se o serviço está atendendo na porta correta.
- Obtenha o nome de um pod.
oc get pods - Efetue login em um contêiner.
oc exec -it <pod_name> -- /bin/bash - 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>
- Obtenha o nome de um pod.
-
Verifique se o serviço está vinculado corretamente aos pods.
- Obtenha o nome de um pod.
oc get pods - Efetue login em um contêiner.
oc exec -it <pod_name> -- /bin/bash - Executar curl do endereço IP do cluster e da porta do serviço.
curl <cluster_IP>:<port> - 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 seletorrun=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.
- 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
- Obtenha o nome de um pod.
-
Para serviços do Ingresso, verifique se o serviço está acessível de dentro do cluster.
- Obtenha o nome de um pod.
oc get pods - Efetue login em um contêiner.
oc exec -it <pod_name> -- /bin/bash - 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>
- Obtenha o nome de um pod.