Sie können kurzlebige Workflows ausführen, indem Sie sie als Aufgaben in Kf ausführen. Aufgaben werden unter „Apps” ausgeführt. Das bedeutet, dass jeder Aufgabe eine App zugeordnet sein muss. Bei jeder Aufgabenausführung werden die Build-Artefakte der übergeordneten Anwendung verwendet. Da Aufgaben kurzlebig sind, wird die Anwendung nicht als Anwendungen mit langer Laufzeit bereitgestellt und es sollten keine Routen für die App oder die Aufgabe erstellt werden.
App zum Ausführen von Aufgaben per Push übertragen
Klonen Sie das Test-App-Repository.
git clone https://github.com/cloudfoundry-samples/test-app test-app
cd test-app
Übertragen Sie die Anwendung per Push.
Übertragen Sie die Anwendung mit dem Befehl
kf push APP_NAME --task
per Push. Das Flag--task
gibt an, dass die Anwendung für die Ausführung von Aufgaben verwendet werden soll. Daher werden keine Routen in der App erstellt und nicht als lang andauernde Anwendung bereitgestellt.kf push test-app --task
Prüfen Sie, ob keine App-Instanzen oder Routen erstellt wurden, indem Sie die Anwendung auflisten.
kf apps
Die Anwendung wird nicht gestartet und enthält keine URLs.
Listing Apps in Space: test-space Name Instances Memory Disk CPU URLs test-app stopped 1Gi 1Gi 100m <nil>
Aufgabe in der Anwendung ausführen
Wenn Sie eine Aufgabe in der Anwendung ausführen, können Sie optional mit dem Flag --command
einen Startbefehl angeben. Wenn kein Startbefehl angegeben ist, wird der in der App angegebene Startbefehl verwendet. Wenn kein Startbefehl für die App angegeben ist, wird die CMD-Konfiguration des Container-Images abgerufen. Es muss ein Startbefehl vorhanden sein, damit die Aufgabe ausgeführt werden kann.
kf run-task test-app --command "printenv"
Sie sehen in etwa so etwas, das bestätigt, dass die Aufgabe gesendet wurde.
Task test-app-gd8dv is submitted successfully for execution.
Der Aufgabenname wird automatisch generiert, dem Anwendungsnamen vorangestellt und mit einem beliebigen String versehen. Der Aufgabenname ist eine eindeutige Kennung für Aufgaben innerhalb desselben Clusters.
Limits für Aufgabenressourcen angeben
Ressourcenlimits (z. B. CPU-Kerne/Speicherlimit/Laufwerkkontingent) können in der Anwendung (während kf push
) oder während des kf run-task
-Befehls festgelegt werden. Die im Befehl kf run-task
angegebenen Limits haben Vorrang vor den für die Anwendung angegebenen Limits.
Zum Angeben von Ressourcenlimits in einer App können Sie die Flags --cpu-cores
, --memory-limit
und --disk-quota
im Befehl kf push
verwenden.
kf push test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G --task
Wenn Sie diese Limits in der Anwendung überschreiben möchten, können Sie im Befehl kf run-task
die Flags --cpu-cores
, --memory-limit
und --disk-quota
verwenden.
kf run-task test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G
Benutzerdefinierten Anzeigenamen für eine Aufgabe festlegen
Optional können Sie das Flag --name
verwenden, um einen benutzerdefinierten Anzeigenamen für eine Aufgabe anzugeben, um die Identifizierung/Gruppierung zu erleichtern.
$ kf run-task test-app --command "printenv" --name foo
Task test-app-6swct is submitted successfully for execution.
$ kf tasks test-app
Listing Tasks in Space: test space
Name ID DisplayName Age Duration Succeeded Reason
test-app-6swct 3 foo 1m 21s True <nil>
Aufgaben verwalten
Sehen Sie sich alle Aufgaben einer App mit dem Befehl kf tasks APP_NAME
an.
$ kf tasks test-app
Listing Tasks in Space: test space
Name ID DisplayName Age Duration Succeeded Reason
test-app-gd8dv 1 test-app-gd8dv 1m 21s True <nil>
Aufgabe abbrechen
Mit dem Befehl kf terminate-task
eine aktive Aufgabe abbrechen.
Brechen Sie eine Aufgabe nach Aufgabenname ab.
$ kf terminate-task test-app-6w6mz
Task "test-app-6w6mz" is successfully submitted for termination
Oder brechen Sie eine Aufgabe über APP_NAME und Aufgaben-ID ab.
$ kf terminate-task test-app 2
Task "test-app-6w6mz" is successfully submitted for termination
Abgebrochene Aufgaben haben den Status PipelineRunCancelled
.
$ kf tasks test-app
Listing Tasks in Space: test space
Name ID DisplayName Age Duration Succeeded Reason
test-app-gd8dv 1 test-app-gd8dv 1m 21s True <nil>
test-app-6w6mz 2 test-app-6w6mz 38s 11s False PipelineRunCancelled
Aufgabenlogs ansehen
Logs einer Aufgabe mit dem Befehl kf logs APP_NAME --task
aufrufen.
$ kf logs test-app --task