Esecuzione di attività

Puoi eseguire flussi di lavoro di breve durata come attività in Kf. Le attività vengono eseguite nella sezione App, il che significa che a ogni attività deve essere associata un'app. Ogni esecuzione di ogni attività utilizza gli artefatti di build dell'app principale. Poiché le attività sono di breve durata, il deployment dell'app non viene eseguito come applicazione a lunga esecuzione e non occorre creare route per l'app o l'attività.

Esegui il push di un'app per l'esecuzione di Tasks

  1. Clona il repository repo-app test:

    git clone https://github.com/cloudfoundry-samples/test-app test-app
    cd test-app
    
  2. Esegui il push dell'app.

    Esegui il push dell'app con il comando kf push APP_NAME --task. Il flag --task indica che l'app è destinata a essere utilizzata per l'esecuzione di Tasks e, di conseguenza, non viene creato alcun percorso nell'app e non ne viene eseguito il deployment come applicazione a lunga esecuzione:

    kf push test-app --task
    
  3. Verifica che non siano state create istanze o route dell'app elencando l'app:

    kf apps
    

    Nota che l'app non è stata avviata e non ha URL:

    Listing Apps in Space: test-space
    Name                     Instances  Memory  Disk  CPU   URLs
    test-app                 stopped    1Gi     1Gi   100m  <nil>
    

Esecuzione di un'attività nell'app

Quando esegui un'attività nell'app, puoi specificare un comando di avvio utilizzando il flag --command. Se non viene specificato alcun comando di avvio, viene utilizzato il comando start specificato nell'app. Se per l'app non è specificato un comando di avvio, cerca la configurazione CMD dell'immagine container. Per eseguire correttamente l'attività, deve esistere un comando di avvio.

kf run-task test-app --command "printenv"

Viene visualizzato qualcosa di simile a questo, che conferma che l'attività è stata inviata:

Task test-app-gd8dv is submitted successfully for execution.

Il nome dell'attività viene generato automaticamente, è preceduto dal nome dell'app e è preceduto da una stringa arbitraria. Il nome dell'attività è un identificatore univoco delle attività all'interno dello stesso cluster.

Specificare i limiti delle risorse per le attività

I limiti delle risorse (ad esempio core della CPU/limite di memoria/quota di disco) possono essere specificati nell'app (durante kf push) o durante il comando kf run-task. I limiti specificati nel comando kf run-task hanno la precedenza sui limiti specificati nell'app.

Per specificare i limiti delle risorse in un'app, puoi utilizzare i flag --cpu-cores, --memory-limit e --disk-quota nel comando kf push:

kf push test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G --task

Per eseguire l'override di questi limiti nell'app, puoi utilizzare i flag --cpu-cores, --memory-limit e --disk-quota nel comando kf run-task:

kf run-task test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G

Specifica un nome visualizzato personalizzato per un'attività

Facoltativamente, puoi utilizzare il flag --name per specificare un nome visualizzato personalizzato per un'attività per semplificare l'identificazione/il raggruppamento:

$ 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>

Gestisci attività

Visualizza tutte le attività di un'app con il comando kf tasks APP_NAME:

$ 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>

Annullare un'attività

Annulla un'attività attiva utilizzando il comando kf terminate-task:

  • Annullare un'attività in base al nome:

    $ kf terminate-task test-app-6w6mz
    Task "test-app-6w6mz" is successfully submitted for termination
    
  • In alternativa, annulla un'attività specificando APP_NAME + ID attività:

    $ kf terminate-task test-app 2
    Task "test-app-6w6mz" is successfully submitted for termination
    

Le attività annullate hanno lo stato 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

Visualizza i log delle attività

Visualizza i log di un'attività utilizzando il comando kf logs APP_NAME --task:

$ kf logs test-app --task