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
Clone repo test-app repo.
git clone https://github.com/cloudfoundry-samples/test-app test-app
cd test-app
Kirim Aplikasi.
Kirim Aplikasi 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 test-app --task
Pastikan tidak ada instance atau rute Aplikasi yang dibuat dengan mencantumkan Aplikasi.
kf apps
Perhatikan bahwa Aplikasi tidak dimulai dan tidak memiliki URL.
Listing Apps in Space: test-space Name Instances Memory Disk CPU URLs test-app 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 ini akan menggunakan perintah mulai yang ditentukan di Aplikasi. Jika Aplikasi tidak memiliki perintah mulai yang ditentukan, perintah ini akan mencari konfigurasi CMD image container. Perintah mulai harus ada agar Tugas berhasil dijalankan.
kf run-task test-app --command "printenv"
Anda akan melihat sesuatu yang mirip dengan ini, yang mengonfirmasi bahwa Tugas telah dikirim.
Task test-app-gd8dv is submitted successfully for execution.
Nama Tugas dibuat secara otomatis, 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 test-app --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 test-app --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 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>
Mengelola Tugas
Lihat semua Tugas Aplikasi dengan perintah 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>
Membatalkan Tugas
Batalkan Tugas aktif menggunakan perintah kf terminate-task
.
Membatalkan Tugas menurut nama Tugas.
$ kf terminate-task test-app-6w6mz
Task "test-app-6w6mz" is successfully submitted for termination
Atau batalkan Tugas dengan APP_NAME + ID Tugas.
$ kf terminate-task test-app 2
Task "test-app-6w6mz" is successfully submitted for termination
Tugas yang Dibatalkan memiliki status 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
Melihat log Tugas
Lihat log Tugas menggunakan perintah kf logs APP_NAME --task
.
$ kf logs test-app --task