Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Informazioni su Tasks
A differenza delle app (processi a lunga esecuzione), le attività vengono eseguite per un periodo di tempo limitato e poi si arrestano. Le attività vengono eseguite nei propri container in base alla configurazione nell'app principale e possono essere configurate per utilizzare risorse limitate (ad es. CPU/memoria/spazio di archiviazione su disco temporaneo).
Casi d'uso per le attività
Migrazione di un database
Esecuzione di un job batch (pianificato/non pianificato)
Invio di un'email
Trasformazione dei dati (ETL)
Elaborazione dei dati (caricamento/backup/download)
Come funziona Tasks
Le attività vengono eseguite in modo asincrono e indipendentemente dall'app principale o da altre attività in esecuzione nella stessa app. Un'app creata per l'esecuzione di attività non ha percorsi creati o assegnati e il ciclo di vita Esegui viene ignorato. Il ciclo di vita del caricamento del codice sorgente e della costruzione procede e genera un'immagine container utilizzata per l'esecuzione dei task dopo il push dell'app (vedi Ciclo di vita delle app in Eseguire il deployment di un'applicazione).
Il ciclo di vita di un'attività è il seguente:
Esegui il push di un'app per l'esecuzione di attività con il comando kf push APP_NAME --task.
Esegui un'attività nell'app con il comando kf run-task APP_NAME. La task eredita le variabili di ambiente, le associazioni di servizi, l'allocazione delle risorse, il comando di avvio e i gruppi di sicurezza associati all'app.
Kf crea un PipelineRun Tekton con i valori dell'app e i parametri del comando run-task.
Tekton PipelineRun crea un pod Kubernetes che avvia un contenitore in base alle configurazioni di App e Task.
L'esecuzione dell'attività si interrompe (l'attività esce o viene interrotta manualmente), il pod sottostante viene interrotto o terminato. I pod di Tasks interrotti vengono conservati e, di conseguenza, i log di Tasks sono accessibili tramite il comando kf logs APP_NAME --task.
Se interrompi un'attività prima che si arresti, la PipelineRun di Tekton viene annullata (vedi Annullamento di una PipelineRun) e il pod sottostante insieme ai log vengono eliminati. I log delle attività terminate vengono inviati agli stream di log a livello di cluster, se configurati (ad es. Stackdriver, Fluentd).
Se il numero di attività eseguite in un'app è superiore a 500, le attività più vecchie vengono eliminate automaticamente.
Criteri di conservazione di Tasks
Le attività vengono create come risorse personalizzate nel cluster Kubernetes, pertanto è importante non esaurire lo spazio del database etcd sottostante. Per impostazione predefinita, Kf conserva solo le ultime 500 attività per ogni app. Una volta raggiunto il numero di 500 attività, le attività più vecchie (insieme ai pod e ai log sottostanti) verranno eliminate automaticamente.
Log delle attività e cronologia delle esecuzioni
Tutti i dati o i messaggi che l'attività stampa su STDOUT o STDERR sono disponibili utilizzando il comando kf logs APP_NAME --task. Il meccanismo di logging a livello di cluster (ad esempio Stackdriver, Fluentd) invierà i log delle attività alla destinazione di logging configurata.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]