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 attività utilizza gli artefatti della build dell'app principale. Poiché le attività hanno una durata breve, il deployment dell'app non verrà eseguito come un'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
Clona il repository test-app repo.
git clone https://github.com/cloudfoundry-samples/test-app test-app
cd test-app
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 eseguire Tasks, quindi non verranno create route sull'app e non ne verrà eseguito il deployment come applicazione a lunga esecuzione.kf push test-app --task
Verifica che non siano state create istanze o route di app mediante l'elenco dell'app.
kf apps
Tieni presente che l'app non viene 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 facoltativamente un comando di avvio utilizzando il flag --command
. Se non viene specificato alcun comando di avvio, viene utilizzato il comando di avvio specificato nell'app. Se per l'app non è specificato un comando di avvio, viene cercata la configurazione CMD dell'immagine container. Per eseguire correttamente l'attività, deve esistere un comando di avvio.
kf run-task test-app --command "printenv"
Verrà visualizzato qualcosa di simile a questo, a conferma dell'invio dell'attività.
Task test-app-gd8dv is submitted successfully for execution.
Il nome dell'attività viene generato automaticamente, ha come prefisso il nome dell'app e come suffisso una stringa arbitraria. Il nome dell'attività è un identificatore univoco delle attività all'interno dello stesso cluster.
Specifica i limiti delle risorse delle attività
I limiti delle risorse (ad esempio core 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 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 usare 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à, in modo da identificarla/raggrupparla più facilmente.
$ 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 Tasks
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
.
Annulla 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à di 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