Aufgaben ausführen

Sie können kurzlebige Workflows ausführen. Führen Sie sie dazu als Aufgaben in Kf aus. Aufgaben werden unter Anwendungen ausgeführt. Das bedeutet, dass jeder Aufgabe eine Anwendung 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 Anwendung oder die Aufgabe erstellt werden.

App zum Ausführen von Aufgaben per Push übertragen

  1. Klonen Sie das Test-App-Repository:

    git clone https://github.com/cloudfoundry-samples/test-app test-app
    cd test-app
  2. Ü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 zum Ausführen von Aufgaben verwendet werden soll. Daher werden in der Anwendung keine Routen erstellt und nicht als Anwendung mit langer Ausführungszeit bereitgestellt:

    kf push test-app --task
  3. Prüfen Sie, ob keine App-Instanzen oder Routen erstellt wurden. Listen Sie dazu die Anwendung auf.

    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 etwas Ähnliches wie das hier, das bestätigt, dass die Aufgabe eingereicht 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 Anwendung 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 Anwendung 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

Brechen Sie eine aktive Aufgabe mit dem Befehl kf terminate-task ab:

  • Brechen Sie eine Aufgabe über 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 + 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

So rufen Sie Logs einer Aufgabe mit dem Befehl kf logs APP_NAME --task auf:

$ kf logs test-app --task