Puoi eseguire flussi di lavoro di breve durata come attività in Kf. Le attività vengono eseguite nella sezione App, quindi a ogni attività deve essere associata un'app. Per ogni esecuzione vengono utilizzati gli artefatti della build dell'app principale. Poiché le attività sono di breve durata, non verrà eseguito il deployment dell'app come applicazione a lunga esecuzione e non occorre creare percorsi per l'app o l'attività.
Esegui il push di un'app per l'esecuzione di Tasks
Vai alla directory del file 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 deve essere utilizzata per l'esecuzione di Tasks. Di conseguenza, nell'app non verranno create route 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 elencando l'app.
$ kf apps
Listing Apps in Space: test-space
Name Instances Memory Disk CPU URLs
helloworld stopped 1Gi 1Gi 100m <nil>
Esegui l'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 di avvio specificato nell'app. Se per l'app non è specificato un comando di avvio, viene eseguita la ricerca della configurazione CMD dell'immagine container. Per eseguire correttamente l'attività, è necessario che sia presente 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 API Kubernetes. È 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 su 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 helloworld --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 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 facilitarne l'identificazione/il raggruppamento.
$ 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à
Annulla 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à con APP_NAME + ID attività.
$ kf terminate-task helloworld 2
Task "helloworld-6w6mz" is successfully submitted for termination
- Nota: puoi annullare solo le attività in sospeso/in esecuzione; le attività completate non sono annullabili.
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