Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
À propos de Tasks
Contrairement aux applications (processus de longue durée), Tasks s'exécute pendant une durée limitée, puis s'arrête. Les tâches s'exécutent dans leurs propres conteneurs en fonction de la configuration de l'application parente et peuvent être configurées pour utiliser des ressources limitées (telles que processeur/mémoire/espace de stockage sur disque).
Cas d'utilisation de Tasks
Migrer une base de données
Exécuter une tâche par lots (planifiée/non planifiée)
Envoyer un e-mail
Transformer des données (ETL)
Traiter des données (importation/sauvegarde/téléchargement)
Fonctionnement de Tasks
Les tâches sont exécutées de manière asynchrone et s'exécutent indépendamment de l'application parente ou d'autres tâches exécutées sur la même application. Aucune route créée ou attribuée n'est associée à une application créée pour exécuter Tasks, et le cycle de vie Exécuter est ignoré. Les cycles de vie Importation du code source et Build se poursuivent et aboutissent à une image de conteneur utilisée pour exécuter Tasks après le déploiement de l'application (voir les cycles de vie de l'application sur la page Déployer une application).
Le cycle de vie d'une tâche est le suivant :
Transférez une application pour exécuter des tâches à l'aide de la commande kf push APP_NAME --task.
Pour exécuter une tâche sur l'application, utilisez la commande kf run-task APP_NAME. La tâche hérite des variables d'environnement, des liaisons de service, de l'allocation des ressources, de la commande de démarrage et des groupes de sécurité associés à l'application.
Kf crée un pipeline Tekton PipelineRun à partir des valeurs de l'application et des paramètres de la commande run-task.
Le pipeline Tekton PipelineRun crée un pod Kubernetes qui lance un conteneur basé sur les configurations de l'application et de la tâche.
L'exécution de la tâche s'arrête (la tâche se termine ou est terminée manuellement), et le pod sous-jacent est arrêté ou interrompu. Les pods des tâches arrêtées sont conservés, et les journaux des tâches sont donc accessibles via la commande kf logs APP_NAME --task.
Si vous terminez une tâche avant qu'elle ne s'arrête, le pipeline Tekton PipelineRun est annulé (consultez la section Annuler un pipeline PipelineRun), le pod sous-jacent et les journaux sont supprimés. Les journaux des tâches terminées sont transmis aux flux de journalisation au niveau du cluster s'ils sont configurés (par exemple, Stackdriver, Fluentd).
Si le nombre de tâches exécutées sur une application est supérieur à 500, les tâches les plus anciennes sont automatiquement supprimées.
Règle de conservation de Tasks
Les tâches sont créées en tant que ressources personnalisées dans le cluster Kubernetes. Il est donc important de ne pas épuiser l'espace de la base de données etcd sous-jacente. Par défaut, Kf ne conserve que les 500 dernières tâches par application. Une fois que le nombre de tâches atteint la limite de 500, les tâches les plus anciennes (ainsi que les pods et les journaux sous-jacents) sont automatiquement supprimées.
Journalisation et historique d'exécution de Tasks
Les données ou les messages générés par la tâche dans STDOUT ou STDERR sont disponibles via la commande kf logs APP_NAME --task. Un mécanisme de journalisation au niveau du cluster (tel que Stackdriver, Fluentd) envoie les journaux de tâches à la destination de journalisation configurée.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]