Trabajos de depuración
Utilice los consejos de resolución de problemas para aprender a resolver problemas con las compilaciones y ejecuciones de IBM Cloud® Code Engine de una compilación.
Límites de trabajo a tener en cuenta
El número máximo de trabajos que se pueden tener en un proyecto es 100. Está limitado a un total de 100 ejecuciones de trabajo por proyecto antes de tener que eliminar o limpiar las antiguas.
Para obtener información adicional sobre los límites de los trabajos, incluidas memoria y CPU, consulte Límites y cuotas de Code Engine.
Con la CLI, puede utilizar el mandato ibmcloud ce project get para visualizar información sobre los límites y el uso actual. Por ejemplo:
ibmcloud ce project get --name myproject
Salida de ejemplo
Getting project 'myproject'...
OK
Name: myproject
ID: abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
Status: active
Enabled: true
Application Private Visibility Supported: true
Selected: true
Region: us-south
Resource Group: default
Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
Age: 52d
Created: Tue, 28 Sep 2021 05:12:16 -0500
Updated: Tue, 28 Sep 2021 05:12:19 -0500
Quotas:
Category Used Limit
App revisions 2 120
Apps 1 40
Build runs 1 100
Builds 2 100
Configmaps 2 100
CPU 0 128
Ephemeral storage 0 512G
Functions 0 20
Instances (active) 0 250
Instances (total) 0 2500
Job runs 13 100
Jobs 2 100
Memory 0 512G
Secrets 6 100
Subscriptions (cron) 0 100
Subscriptions (IBM Cloud Object Storage) 0 100
Subscriptions (Kafka) 0 100
Obtención de los registros de mis trabajos
Los registros pueden ser útiles para resolver problemas cuando se ejecutan trabajos. Puede ver los registros de un trabajo desde la consola o con la CLI.
Cuando se consultan los registros en la consola, hay que crear una instancia de IBM Cloud Logs en la misma región que el proyecto de Code Engine. No es necesario que cree esta instancia antes de trabajar con el trabajo de Code Engine. En Code Engine es muy fácil habilitar el registro para sus trabajos. Puede ver registros de trabajo después de añadir prestaciones de registro. Para obtener más información, consulte Visualización de registros del trabajo desde la consola.
Al trabajar con la CLI, puede visualizar los registros de todas las instancias del trabajo en ejecución o visualizar los registros de una instancia específica del trabajo.
-
Utilice el mandato
ibmcloud ce jobrun listpara listar todas las ejecuciones de trabajo definidas; por ejemplo,ibmcloud ce jobrun list -
Utilice el mandato
ibmcloud ce jobrun getpara obtener los detalles de la ejecución del trabajo, incluido el nombre de las instancias para la ejecución del trabajo; por ejemplo,ibmcloud ce jobrun get --name myjobrunSalida de ejemplo
Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... Getting events of jobrun 'myjobrun'... Run 'ibmcloud ce jobrun events -n myjobrun' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun' to follow the logs of the job run instances. OK Name: myjobrun [...] Created: 2021-03-03T14:47:04-05:00 Image: icr.io/codeengine/firstjob Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Runtime: Mode: task Array Indices: 1 - 4 Array Size: 4 JOP_ARRAY_SIZE Value: 4 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 28m Instance Statuses: Succeeded: 4 Conditions: Type Status Last Probe Last Transition Pending True 28m 28m Running True 28m 28m Complete True 28m 28m Events: Type Reason Age Source Messages Normal Updated 29m (x8 over 29m) batch-job-controller Updated JobRun "myjobrun" Normal Completed 29m batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-1-0 0/1 Succeeded 0 29m myjobrun-2-0 0/1 Succeeded 0 29m myjobrun-3-0 0/1 Succeeded 0 29m myjobrun-4-0 0/1 Succeeded 0 29mSi desea detalles más precisos sobre la ejecución del trabajo, utilice la opción
--o yamlcon el mandatojobrun get; por ejemplo,ibmcloud ce jobrun get --name myjobrun --o yaml. Esta opción es útil para mostrar información más detallada en la CLI para la ejecución del trabajo. -
Muestre los registros de las instancias del trabajo.
- Para visualizar los registros de una instancia específica de la ejecución del trabajo, utilice el mandato
ibmcloud ce jobrun logs --instance INSTANCE_NAME; por ejemplo,
ibmcloud ce jobrun logs --instance myjobrun-4-0 ``` Salida de ejemplo ```txt {: screen} Getting logs for job run instance 'myjobrun-4-0'... OK myjobrun-4-0/myjobrun: Hi from a batch job! My index is: 4 ``` * Para visualizar los registros de todas las instancias de la ejecución del trabajo, utilice el mandato [**`ibmcloud ce jobrun logs --jobrun JOBRUN_NAME`**](/docs/codeengine?topic=codeengine-cli#cli-jobrun-logs); por ejemplo, ```txt {: pre} ibmcloud ce jobrun logs --jobrun myjobrun ``` Salida de ejemplo ```txt {: screen} Getting logs for all instances of job run 'myjobrun'... Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... OK myjobrun-1-0/myjobrun: Hi from a batch job! My index is: 1 myjobrun-2-0/myjobrun: Hi from a batch job! My index is: 2 myjobrun-3-0/myjobrun: Hi from a batch job! My index is: 3 myjobrun-4-0/myjobrun: Hi from a batch job! My index is: 4 ``` - Para visualizar los registros de una instancia específica de la ejecución del trabajo, utilice el mandato
Para obtener más información, consulte Visualización de registros de trabajo con la CLI.
Obtención de la información de sucesos del sistema de los trabajos
La información de sucesos del sistema puede ser útil para resolver problemas al ejecutar trabajos. Se puede ver la información de sucesos del sistema con la CLI.
Puede visualizar sucesos del sistema de todas las instancias de una ejecución de trabajo o visualizar sucesos del sistema de una instancia específica de una ejecución de trabajo.
-
Utilice el mandato
ibmcloud ce jobrun listpara listar todas las ejecuciones de trabajo definidas; por ejemplo,ibmcloud ce jobrun list -
Utilice el mandato
ibmcloud ce jobrun getpara obtener los detalles de la ejecución del trabajo, incluido el nombre de las instancias de la ejecución del trabajo; por ejemplo,ibmcloud ce jobrun get --name myjobrunSalida de ejemplo
Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... Getting events of jobrun 'myjobrun'... OK Name: myjobrun [...] Created: 2021-03-03T14:47:04-05:00 Image: icr.io/codeengine/firstjob Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Runtime: Mode: task Array Indices: 1 - 4 Array Size: 4 JOP_ARRAY_SIZE Value: 4 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 28m Instance Statuses: Succeeded: 4 Conditions: Type Status Last Probe Last Transition Pending True 28m 28m Running True 28m 28m Complete True 28m 28m Events: Type Reason Age Source Messages Normal Updated 29m (x8 over 29m) batch-job-controller Updated JobRun "myjobrun" Normal Completed 29m batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-1-0 0/1 Succeeded 0 29m myjobrun-2-0 0/1 Succeeded 0 29m myjobrun-3-0 0/1 Succeeded 0 29m myjobrun-4-0 0/1 Succeeded 0 29mSi desea detalles más precisos sobre la ejecución del trabajo, utilice la opción
--o yamlcon el mandatojobrun get; por ejemplo,ibmcloud ce jobrun get --name myjobrun --o yaml. Esta opción es útil para mostrar información más detallada en la CLI para la ejecución del trabajo. -
Muestre los sucesos del sistema de las instancias del trabajo.
- Para visualizar los sucesos de una instancia específica de la ejecución del trabajo, utilice el mandato
ibmcloud ce jobrun events --instance INSTANCE_NAME; por ejemplo,
ibmcloud ce jobrun events --instance myjobrun-4-0 ``` Salida de ejemplo ```txt {: screen} Getting events for job run instance 'myjobrun-4-0'... OK myjobrun-4-0: Type Reason Age Source Messages Normal Scheduled 2m14s default-scheduler Successfully assigned 4svg40kna19/myjobrun-4-0 to 10.240.64.10 Normal Pulling 2m13s kubelet, 10.240.64.10 Pulling image "icr.io/codeengine/firstjob" Normal Pulled 2m12s kubelet, 10.240.64.10 Successfully pulled image "icr.io/codeengine/firstjob" in 1.234456436s Normal Created 2m11s kubelet, 10.240.64.10 Created container myjobrun Normal Started 2m11s kubelet, 10.240.64.10 Started container myjobrun ``` * Para visualizar sucesos de todas las instancias de la ejecución del trabajo, utilice el mandato [**`ibmcloud ce jobrun events --jobrun JUBRUN_NAME`**](/docs/codeengine?topic=codeengine-cli#cli-jobrun-events); por ejemplo, ```txt {: pre} ibmcloud ce jobrun events --jobrun myjobrun ``` Salida de ejemplo ```txt {: screen} Getting jobrun 'myjobrun'... Getting instances of jobrun 'myjobrun'... Getting events for all instances of job run 'myjobrun'... OK myjobrun-1-0: Type Reason Age Source Messages Normal Scheduled 66s default-scheduler Successfully assigned 4svg40kna19/myjobrun-1-0 to 10.240.128.22 Normal Pulling 65s kubelet, 10.240.128.22 Pulling image "icr.io/codeengine/firstjob" Normal Pulled 64s kubelet, 10.240.128.22 Successfully pulled image "icr.io/codeengine/firstjob" in 427.276949ms Normal Created 64s kubelet, 10.240.128.22 Created container myjobrun Normal Started 64s kubelet, 10.240.128.22 Started container myjobrun myjobrun-2-0: Type Reason Age Source Messages Normal Scheduled 66s default-scheduler Successfully assigned 4svg40kna19/myjobrun-2-0 to 10.240.0.11 Normal Pulling 65s kubelet, 10.240.0.11 Pulling image "icr.io/codeengine/firstjob" Normal Pulled 63s kubelet, 10.240.0.11 Successfully pulled image "icr.io/codeengine/firstjob" in 1.268252989s Normal Created 63s kubelet, 10.240.0.11 Created container myjobrun Normal Started 63s kubelet, 10.240.0.11 Started container myjobrun myjobrun-3-0: Type Reason Age Source Messages Normal Scheduled 66s default-scheduler Successfully assigned 4svg40kna19/myjobrun-3-0 to 10.240.0.37 Normal Pulling 65s kubelet, 10.240.0.37 Pulling image "icr.io/codeengine/firstjob" Normal Pulled 63s kubelet, 10.240.0.37 Successfully pulled image "icr.io/codeengine/firstjob" in 1.118647987s Normal Created 63s kubelet, 10.240.0.37 Created container myjobrun Normal Started 63s kubelet, 10.240.0.37 Started container myjobrun myjobrun-4-0: Type Reason Age Source Messages Normal Scheduled 66s default-scheduler Successfully assigned 4svg40kna19/myjobrun-4-0 to 10.240.64.10 Normal Pulling 65s kubelet, 10.240.64.10 Pulling image "icr.io/codeengine/firstjob" Normal Pulled 64s kubelet, 10.240.64.10 Successfully pulled image "icr.io/codeengine/firstjob" in 1.234456436s Normal Created 63s kubelet, 10.240.64.10 Created container myjobrun Normal Started 63s kubelet, 10.240.64.10 Started container myjobrun ``` - Para visualizar los sucesos de una instancia específica de la ejecución del trabajo, utilice el mandato
Entender por qué los índices de ejecución de trabajos pueden fallar
Cuando los índices de ejecución de trabajos fallan en la consola, puede buscar los errores y el razonamiento para ayudar a solucionar los problemas, rectificar las cuestiones y, a continuación, volver a ejecutar los índices de ejecución de trabajos.
Para gestionar tus trabajos y ejecuciones de trabajos, desde la página «Proyectos» de Code Engine, haz clic en el nombre de tu proyecto en la lista de proyectos
y, a continuación, haz clic en « Trabajos ». En la pestaña «Ejecuciones de tareas», consulta las instancias de ejecución de las tareas. Las ejecuciones de tareas incompletas aparecen como « Failed (<error>) » en la columna « Estado ». La siguiente tabla explica los errores comunes del índice de ejecución de trabajos y las acciones a tomar:
| Error | Explicación | Acción sugerida al usuario |
|---|---|---|
ContainerExitedCode |
Un error que incluye un código de salida proporcionado por la carga de trabajo del usuario. | Determine el motivo del código de salida dentro de su aplicación y depúrelo. |
ExceededEphemeralStorage |
La instancia ha asignado más almacenamiento efímero dentro de su contenedor del permitido. | Aumenta el almacenamiento efímero de tu recurso. |
ExecutableNotFound |
No se puede encontrar el archivo ejecutable especificado dentro del contenedor. El contenedor no puede arrancar sin él. | Verifique que el punto de entrada especificado en su imagen contenedora sea correcto y que el ejecutable exista dentro de la imagen. |
MaxExecutionTimeExceeded |
El trabajo no se completó dentro del tiempo máximo de ejecución. Si se estaban ejecutando varias instancias, todas las instancias que aún no se completaron muestran este error. | Aumentar el valor de tiempo de espera de ejecución del trabajo. |
OOMKilled |
Un error de falta de memoria. La instancia superó el límite de memoria asignado. | Aumenta la CPU y la memoria de tu recurso. |
Después de corregir los errores, haga clic en Volver a ejecutar índices fallidos para volver a ejecutar el trabajo para los índices que fallaron.
Verificación de la referencia de imagen de contenedor para mi trabajo
Cuando trabaja con trabajos Code Engine, debe especificar una referencia de imagen de contenedor y un secreto de registro para acceder a la imagen. Para que el trabajo funcione correctamente, la referencia de imagen y sus propiedades de acceso deben seguir siendo válidas durante la vida del trabajo.