Anda dapat menjalankan alur kerja berumur pendek dengan menjalankannya sebagai Tasks di Kf. Tugas dijalankan di bagian Aplikasi, yang berarti setiap Tugas harus memiliki Aplikasi terkait. Setiap eksekusi Tugas menggunakan artefak build dari Aplikasi induk. Karena Tasks berumur pendek, Aplikasi tidak akan di-deploy sebagai aplikasi yang berjalan lama, dan tidak ada rute yang harus dibuat untuk Aplikasi atau Tugas tersebut.
Mengirim Aplikasi untuk menjalankan Tasks
Buka direktori manifes Aplikasi atau kode sumber dan buat Aplikasi untuk menjalankan Tasks dengan perintah kf push APP_NAME --task
. Tanda --task
menunjukkan bahwa Aplikasi dimaksudkan untuk digunakan untuk menjalankan Tasks, sehingga tidak ada rute yang akan dibuat pada Aplikasi dan tidak akan di-deploy sebagai aplikasi yang berjalan lama.
$ kf push helloworld --task
Konfirmasi bahwa tidak ada instance atau rute Aplikasi yang dibuat dengan mencantumkan Aplikasi.
$ kf apps
Listing Apps in Space: test-space
Name Instances Memory Disk CPU URLs
helloworld stopped 1Gi 1Gi 100m <nil>
Menjalankan Task di Aplikasi
Saat menjalankan Task di Aplikasi, Anda dapat secara opsional menentukan perintah mulai menggunakan flag --command
. Jika tidak ada perintah mulai yang ditentukan, aplikasi akan menggunakan perintah mulai yang ditentukan di Aplikasi. Jika tidak memiliki perintah mulai yang ditentukan, Aplikasi akan mencari konfigurasi CMD untuk image container. Perintah {i>start<i} harus ada agar dapat menjalankan {i>Task<i}.
$ kf run-task helloworld --command "printenv"
Task helloworld-gd8dv is submitted successfully for execution.
Nama Tugas dibuat secara otomatis di Server Kubernetes API. Nama ini diawali dengan nama Aplikasi dan ditambah dengan string arbitrer. Nama Tugas adalah ID unik untuk Tasks dalam cluster yang sama.
Menentukan batas resource Task
Batas resource (seperti core CPU/Batas memori/Kuota disk) dapat ditentukan di Aplikasi (selama kf push
) atau selama perintah kf run-task
. Batas yang ditentukan dalam perintah kf run-task
lebih diutamakan daripada batas yang ditentukan di Aplikasi.
Untuk menentukan batas resource di Aplikasi, Anda dapat menggunakan tanda --cpu-cores
, --memory-limit
, dan --disk-quota
dalam perintah kf push
.
$ kf push helloworld --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G --task
Untuk mengganti batas ini di Aplikasi, Anda dapat menggunakan tanda --cpu-cores
, --memory-limit
, dan --disk-quota
dalam perintah kf run-task
.
$ kf run-task helloworld --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G
Menentukan nama tampilan kustom untuk Tugas
Secara opsional, Anda dapat menggunakan flag --name
guna menentukan nama tampilan kustom untuk Tugas guna mempermudah identifikasi/pengelompokan.
$ 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>
Mengelola Tugas
Melihat semua Tugas Aplikasi dengan perintah 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>
Membatalkan Tugas
Batalkan Tugas aktif menggunakan perintah kf terminate-task
.
Membatalkan Nama Tugas dari Tugas.
$ kf terminate-task helloworld-6w6mz
Task "helloworld-6w6mz" is successfully submitted for termination
Atau batalkan Tugas dari APP_NAME + ID Tugas.
$ kf terminate-task helloworld 2
Task "helloworld-6w6mz" is successfully submitted for termination
- Catatan: Anda hanya dapat membatalkan Tasks yang tertunda/berjalan, Tasks yang telah selesai tidak dapat dibatalkan.
Tugas yang dibatalkan memiliki status 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
Lihat Log tugas
Lihat log Tugas menggunakan perintah kf logs APP_NAME --task
.
$ kf logs helloworld --task