Esecuzione delle attività

Puoi eseguire flussi di lavoro di breve durata eseguendoli come attività in Kf. Le attività vengono eseguite in App, il che significa che a ciascuna attività deve essere associata un'app. Ogni esecuzione di un'attività utilizza gli artefatti della build dell'app principale. Poiché le attività hanno una breve durata, non verrà eseguito il deployment dell'app come applicazione a lunga esecuzione e non sarà necessario creare route per l'app o l'attività.

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

Vai alla directory del manifest o del codice sorgente dell'app e crea un'app per eseguire Tasks con il comando kf push APP_NAME --task. Il flag --task indica che l'app è destinata a essere utilizzata per eseguire Tasks, quindi non verranno create route sull'app e non ne verrà eseguito il deployment come applicazione a lunga esecuzione.

$ kf push helloworld --task

Verifica che non siano state create istanze o route dell'app mediante l'elenco dell'app.

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

Esegui attività nell'app

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

$ kf run-task helloworld --command "printenv"
Task helloworld-gd8dv is submitted successfully for execution.

Il nome dell'attività viene generato automaticamente nel server dell'API Kubernetes. Ha un prefisso con il nome dell'app e un suffisso con una stringa arbitraria. Il nome della task è un identificatore univoco per le attività all'interno dello stesso cluster.

Specificare i limiti delle risorse di Task

I limiti di risorse (ad esempio core della CPU/limite di memoria/quota del 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 usare i flag --cpu-cores, --memory-limit e --disk-quota nel comando kf push.

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

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

$ kf run-task helloworld --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à in modo da identificarla/raggrupparla più facilmente.

$ kf run-task helloworld --command "printenv" --name foo
Task helloworld-6swct is submitted successfully for execution.

$ kf tasks helloworld
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
helloworld-6swct  3   foo                1m     21s       True       <nil>

Gestione delle attività

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

$ kf tasks helloworld
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
helloworld-gd8dv  1   helloworld-gd8dv   1m     21s       True       <nil>

Annullare un'attività

Annullare un'attività attiva utilizzando il comando kf terminate-task.

Annullare un'attività in base al nome.

$ kf terminate-task helloworld-6w6mz
Task "helloworld-6w6mz" is successfully submitted for termination

In alternativa, annulla un'attività di APP_NAME + ID attività.

$ kf terminate-task helloworld 2
Task "helloworld-6w6mz" is successfully submitted for termination
  • Nota: è possibile annullare soltanto le attività in sospeso o in esecuzione e le attività completate non possono essere annullate.

Le attività annullate hanno lo stato PipelineRunCancelled.

$ kf tasks helloworld
Listing Tasks in Space: test space
Name              ID  DisplayName        Age    Duration  Succeeded  Reason
helloworld-gd8dv  1   helloworld-gd8dv   1m     21s       True       <nil>
helloworld-6w6mz  2   helloworld-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 helloworld --task