Menjalankan Tugas

Anda dapat menjalankan alur kerja berumur pendek dengan menjalankannya sebagai Tugas di Kf. Tugas dijalankan di bawah Aplikasi, yang berarti setiap Tugas harus memiliki Aplikasi terkait. Setiap eksekusi Tugas menggunakan artefak build dari Aplikasi induk. Karena Tugas berumur pendek, Aplikasi tidak akan di-deploy sebagai aplikasi yang berjalan lama, dan tidak ada rute yang harus dibuat untuk Aplikasi atau Tugas.

Mendorong Aplikasi untuk menjalankan Tasks

Buka direktori manifes Aplikasi atau kode sumber dan buat Aplikasi untuk menjalankan Tugas dengan perintah kf push APP_NAME --task. Flag --task menunjukkan bahwa Aplikasi dimaksudkan untuk digunakan untuk menjalankan Tugas, sehingga tidak ada rute yang akan dibuat di Aplikasi dan tidak akan di-deploy sebagai aplikasi yang berjalan lama.

$ kf push helloworld --task

Pastikan 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 Tugas di Aplikasi

Saat menjalankan Tugas di Aplikasi, Anda dapat menentukan perintah mulai secara opsional menggunakan tanda --command. Jika tidak ada perintah mulai yang ditentukan, perintah mulai yang ditentukan di Aplikasi akan digunakan. Jika Aplikasi tidak memiliki perintah mulai yang ditentukan, Aplikasi akan mencari konfigurasi CMD image container. Perintah mulai harus ada agar Tugas berhasil dijalankan.

$ 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 diakhiri dengan string arbitrer. Nama Tugas adalah ID unik untuk Tugas dalam cluster yang sama.

Menentukan batas resource Tugas

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 diprioritaskan daripada batas yang ditentukan di Aplikasi.

Untuk menentukan batas resource di Aplikasi, Anda dapat menggunakan flag --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 flag --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 tanda --name untuk menentukan nama tampilan kustom untuk Tugas agar identifikasi/pengelompokan lebih mudah.

$ 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

Lihat 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 Tugas menurut nama Tugas.

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

Atau batalkan Tugas dengan APP_NAME + ID Tugas.

$ kf terminate-task helloworld 2
Task "helloworld-6w6mz" is successfully submitted for termination
  • Catatan: Anda hanya dapat membatalkan Tugas yang tertunda/berjalan, Tugas 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

Melihat log Tugas

Lihat log Tugas menggunakan perintah kf logs APP_NAME --task.

$ kf logs helloworld --task