Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Allgemeine Informationen zu Tasks
Im Gegensatz zu Anwendungen mit langer Laufzeit werden Tasks für eine begrenzte Zeit ausgeführt und dann beendet. Tasks werden je nach Konfiguration in der übergeordneten Anwendung in eigenen Containern ausgeführt und können so konfiguriert werden, dass nur begrenzte Ressourcen verwendet werden (wie CPU/Arbeitsspeicher/flüchtiger Laufwerkspeicher).
Anwendungsfälle für Tasks
Datenbank migrieren
Batchjob ausführen (geplant/nicht geplant)
E-Mails senden
Daten umwandeln (ETL)
Daten verarbeiten (Upload/Sicherung/Download)
Funktionsweise von Tasks
Aufgaben werden asynchron und unabhängig von der übergeordneten Anwendung oder anderen Tasks ausgeführt, die in derselben Anwendung laufen. Für eine Anwendung, die für das Ausführen von Tasks erstellt wurde, werden keine Routen erstellt oder zugewiesen. Der Lebenszyklus Ausführen wird übersprungen. Die Lebenszyklen Upload des Quellcodes und Build werden ausgeführt und führen zu einem Container-Image, das zum Ausführen von Tasks nach dem Übertragen der Anwendung verwendet wird (siehe die Anwendungslebenszyklen unterAnwendung bereitstellen).
Der Lebenszyklus von Tasks sieht so aus:
Sie übertragen eine Anwendung zum Ausführen von Aufgaben mit dem Befehl kf push APP_NAME --task.
Sie führen mit dem Befehl kf run-task APP_NAME eine Task in der Anwendung aus. Tasks übernehmen die Umgebungsvariablen, Dienstbindungen, die Ressourcenzuweisung, den Startbefehl und die Sicherheitsgruppen, die an die Anwendung gebunden sind.
Kf erstellt einen Tekton-PipelineRun mit Werten aus der Anwendung und Parametern aus dem Befehl run-task.
Der Tekton-PipelineRun erstellt einen Kubernetes-Pod, der anhand der Konfigurationen in der Anwendung und der Task einen Container startet.
Die Task-Ausführung wird gestoppt (Task wird (manuell) beendet), der zugrunde liegende Pod wird entweder angehalten oder beendet. Pods gestoppter Tasks bleiben erhalten und über den Befehl kf logs APP_NAME --task kann auf Task-Logs zugegriffen werden.
Wenn Sie Tasks beenden, bevor sie gestoppt werden, wird der Tekton-PipelineRun abgebrochen (siehe Einen PipelineRun abbrechen) und der zugrunde liegende Pod wird zusammen mit den Logs gelöscht. Die Logs beendeter Tasks werden an die Logging-Streams auf Clusterebene gesendet, wenn sie konfiguriert sind (zum Beispiel Stackdriver oder Fluentd).
Ist die Anzahl der Tasks, die in einer Anwendung ausgeführt werden, größer als 500, werden die ältesten Tasks automatisch gelöscht.
Aufbewahrungsrichtlinie für Tasks
Tasks werden im Kubernetes-Cluster als benutzerdefinierte Ressourcen erstellt. Daher ist es wichtig, den Speicherplatz der zugrunde liegenden etcd-Datenbank nicht vollständig zu belegen. Standardmäßig behält Kf nur die neuesten 500 Tasks pro Anwendung. Sobald die Anzahl der Tasks 500 erreicht hat, werden die ältesten zusammen mit den zugrunde liegenden Pods und Logs automatisch gelöscht.
Task-Logging und Ausführungsverlauf
Alle Daten oder Nachrichten, die Tasks an STDOUT oder STDERR ausgeben, sind über den Befehl kf logs APP_NAME --task verfügbar. Beim Logging auf Clusterebene (zum Beispiel mit Stackdriver oder Fluentd) werden die Task-Logs an das konfigurierte Logging-Ziel gesendet.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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."]]