Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Acerca de las tareas
A diferencia de las aplicaciones (procesos de larga duración), las tareas se ejecutan durante un tiempo finito y, luego, se detienen. Se ejecutan en sus propios contenedores según la configuración de la app principal y se pueden configurar para usar recursos limitados (p. ej., CPU/memoria/almacenamiento efímero de disco).
Casos de uso para las tareas
Migra una base de datos
Ejecuta un trabajo por lotes (programado o no programado)
Envía un correo electrónico
Transforma datos (ETL)
Procesamiento de datos (carga, copia de seguridad y descarga)
Cómo funcionan las tareas
Las tareas se ejecutan de forma asincrónica y de manera independiente desde la aplicación principal o cualquier otra tarea que se ejecute en la misma aplicación. Una app creada para ejecutar tareas no tiene rutas creadas o asignadas, y se omite el ciclo de vida de ejecución. Los ciclos de vida de carga de código fuente y de compilación continúan y generan una imagen de contenedor que se usa para ejecutar tareas después de enviar la app (consulta los ciclos de vida de la app en la sección Implementar una aplicación).
El ciclo de vida de una tarea es el siguiente:
Envía una aplicación para ejecutar tareas con el comando kf push APP_NAME --task.
Ejecuta una tarea en la app con el comando kf run-task APP_NAME. La tarea hereda las variables de entorno, las vinculaciones del servicio, la asignación de recursos, el comando de inicio y los grupos de seguridad vinculados a la app.
Kf crea un PipelineRun de Tekton con valores de la app y parámetros del comando run-task.
La PipelineRun de Tekton crea un pod de Kubernetes que inicia un contenedor basado en las configuraciones de la aplicación y la tarea.
La ejecución de la tarea se detiene (la tarea finaliza o se termina de forma manual), el Pod subyacente se detiene o se finaliza. Los Pods de las tareas detenidas se conservan y, por lo tanto, se puede acceder a los registros de tareas a través del comando de kf logs APP_NAME --task.
Si finalizas una tarea antes de que se detenga, se cancela la PipelineRun de Tekton (consulta Cancela una PipelineRun) y se borra el Pod subyacente junto con los registros. Los registros de las tareas finalizadas se entregan a las transmisiones de registros a nivel de clúster si están configuradas (p. ej., Stackdriver o Fluentd).
Si la cantidad de tareas que se ejecutan en una app es mayor que 500, se borran automáticamente las tareas más antiguas.
Política de retención de las tareas
Las tareas se crean como recursos personalizados en el clúster de Kubernetes, por lo tanto, es importante no agotar el espacio de la base de datos etcd subyacente. De forma predeterminada, Kf solo conserva las últimas 500 tareas por cada app. Cuando la cantidad de tareas alcance las 500, las tareas más antiguas (junto con los Pods y registros subyacentes) se borrarán automáticamente.
Registro de tareas e historial de ejecución
Cualquier dato o mensaje que la tarea envíe a STDOUT o STDERR está disponible con el comando kf logs APP_NAME --task. El mecanismo de registro a nivel de clúster (como Stackdriver o Fluentd) entregará los registros de la tarea al destino de registro configurado.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)"],[],[],null,["# Tasks\n\nAbout Tasks\n-----------\n\nIn contrast to Apps (long-running processes), Tasks run for a finite amount of time and then stops. Tasks run in their own containers based on configuration on the parent App, and it could be configured to use limited resources (e.g. CPU/memory/ephermeral disk storage).\n\nUse Cases for Tasks\n-------------------\n\n- Migrating a database\n- Running a batch job (scheduled/unscheduled)\n- Sending an email\n- Transforming data (ETL)\n- Processing data (upload/backup/download)\n\nHow Tasks work\n--------------\n\nTasks are executed asynchronously and run independently from the parent App or other Tasks running on the same App. An App created for running Tasks does not have routes created or assigned, and the **Run** lifecycle is skipped. The **Source code upload** and **Build** lifecycles still proceed and result in a container image used for running Tasks after pushing the App (see App lifecycles at [Deploying an Application](../how-to/deploying-an-app)).\n\nThe lifecycle of a Task is as follows:\n\n1. You push an App for running tasks with the `kf push APP_NAME --task` command.\n2. You run a Task on the App with the `kf run-task APP_NAME` command. Task inherits the environment variables, service bindings, resource allocation, start-up command, and security groups bound to the App.\n3. Kf creates a Tekton [PipelineRun](https://github.com/tektoncd/pipeline/blob/master/docs/pipelineruns.md) with values from the App and parameters from the `run-task` command.\n4. The Tekton PipelineRun creates a Kubernetes Pod which launches a container based on the configurations on the App and Task.\n5. Task execution stops (Task exits or is terminated manually), the underlying Pod is either stopped or terminated. Pods of stopped Tasks are preserved and thus Task logs are accessible via the `kf logs APP_NAME --task` command.\n6. If you terminate a Task before it stops, the Tekton PipelineRun is cancelled (see [Cancelling a PipelineRun](https://github.com/tektoncd/pipeline/blob/master/docs/pipelineruns.md#cancelling-a-pipelinerun)), the underlying Pod together with the logs are deleted. The logs of termianted Tasks are delivered to the cluster level logging streams if configured (e.g. Stackdriver, Fluentd).\n7. If the number of Tasks run on an App is greater than 500, the oldest Tasks are automatically deleted.\n\nTasks Retention Policy\n----------------------\n\nTasks are created as custom resources in the Kubernetes cluster, therefore, it is important not to exhaust the space of the underlying `etcd` database. By default, Kf only keeps the latest 500 Tasks per each App. Once the number of Tasks reach 500, the oldest Tasks (together with the underlying Pods and logs) will be automatically deleted.\n\nTask Logging and Execution History\n----------------------------------\n\nAny data or messages the Task outputs to STDOUT or STDERR is available by using the `kf logs APP_NAME --task` command. Cluster level logging mechanism (such as Stackdriver, Fluentd) will deliver the Task logs to the configured logging destination."]]