Depuración de despliegues de app
Nube privada virtual Infraestructura clásica
Revise las opciones que tiene para depurar sus despliegues de app y busque las causas raíz de los errores.
Antes de empezar, asegúrese de que dispone de la función de acceso al servicio IAM Writer o Manager IBM Cloud para el espacio de nombres en el que está desplegada su aplicación.
-
Asegúrese de revisar los escenarios comunes en los que es posible que tenga que modificar las apps para poderlas desplegar en clústeres de Red Hat OpenShift.
-
Busque anomalías en el servicio o en los recursos de despliegue mediante el mandato
describe.oc describe service <service_name> -
Compruebe si los contenedores se atascan en el estado
ContainerCreating. -
Compruebe si el clúster está en el estado
Critical. Si el clúster está en el estadoCritical, compruebe las reglas de cortafuegos y verifique que el maestro se puede comunicar con los nodos trabajadores. -
Verifique que el servicio está a la escucha en el puerto correcto.
- Obtenga el nombre de un pod.
oc get pods - Inicie una sesión en un contenedor.
oc exec -it <pod_name> -- /bin/bash - Ejecute curl sobre la app desde dentro del contenedor. Si no se puede acceder al puerto, es posible que el servicio no esté a la escucha en el puerto correcto o que la app tenga problemas. Actualiza el archivo de configuración del servicio
con el puerto correcto y vuelve a desplegarlo, o investiga posibles problemas con la aplicación.
curl localhost:<port>
- Obtenga el nombre de un pod.
-
Verifique que el servicio está enlazado correctamente a los pods.
- Obtenga el nombre de un pod.
oc get pods - Inicie una sesión en un contenedor.
oc exec -it <pod_name> -- /bin/bash - Ejecute curl sobre la dirección IP del clúster y el puerto del servicio.
curl <cluster_IP>:<port> - Si no se puede acceder a la dirección IP y al puerto, mire los puntos finales correspondientes al servicio.
- Si no se listan puntos finales, el selector del servicio no coincide con los pods. Por ejemplo, es posible que el despliegue de la app tenga la etiqueta
app=foo, pero que el servicio tenga el selectorrun=foo. - Si se listan puntos finales, mire el campo del puerto de destino en el servicio y asegúrese de que el puerto de destino es el mismo que el que se utiliza para los pods. Por ejemplo, es posible que la app escuche en el puerto 9080, pero que el servicio escuche en el puerto 80.
- Si no se listan puntos finales, el selector del servicio no coincide con los pods. Por ejemplo, es posible que el despliegue de la app tenga la etiqueta
- Obtenga el nombre de un pod.
-
Para servicios Ingress, verifique que se puede acceder al servicio desde dentro del clúster.
- Obtenga el nombre de un pod.
oc get pods - Inicie una sesión en un contenedor.
oc exec -it <pod_name> -- /bin/bash - Ejecute curl sobre el URL especificado para el servicio Ingress. Si no se puede acceder al URL, compruebe si hay un problema de cortafuegos entre el clúster y el punto final externo.
curl <host_name>.<domain>
- Obtenga el nombre de un pod.