אתם יכולים להריץ תהליכי עבודה קצרי-חיים כמשימות ב-Kf. משימות מופעלות במסגרת אפליקציות, כלומר לכל משימה צריכה להיות אפליקציה משויכת. כל הפעלה של משימה משתמשת בארטיפקטים של הבנייה מהאפליקציה הראשית. מכיוון שמשימות הן קצרות טווח, האפליקציה לא תופעל כאפליקציה ארוכת טווח, ולא צריך ליצור מסלולים לאפליקציה או למשימה.
העברת אפליקציה להפעלת משימות
משכפלים את מאגר test-app repo.
git clone https://github.com/cloudfoundry-samples/test-app test-appcd test-appדחיפה של האפליקציה.
מבצעים Push לאפליקציה באמצעות הפקודה
kf push APP_NAME --task. הדגל--taskמציין שהאפליקציה מיועדת להרצת משימות, ולכן לא ייווצרו מסלולים באפליקציה והיא לא תופעל כאפליקציה שפועלת לאורך זמן.kf push test-app --taskכדי לוודא שלא נוצרו מופעים או מסלולים של האפליקציה, מציגים את רשימת האפליקציות.
kf appsשימו לב שהאפליקציה לא מופעלת ואין לה כתובות URL.
Listing Apps in Space: test-space Name Instances Memory Disk CPU URLs test-app stopped 1Gi 1Gi 100m <nil>
הרצת משימה באפליקציה
כשמריצים משימה באפליקציה, אפשר לציין פקודת התחלה באמצעות הדגל --command. אם לא מציינים פקודת הפעלה, המערכת משתמשת בפקודת ההפעלה שצוינה באפליקציה. אם לא צוינה פקודת הפעלה באפליקציה, המערכת מחפשת את הגדרת ה-CMD של קובץ האימג' של הקונטיינר. כדי להפעיל משימה בהצלחה, צריכה להיות פקודת התחלה.
kf run-task test-app --command "printenv"יוצג אישור דומה לזה שמופיע כאן, שמאשר שהמשימה נשלחה.
Task test-app-gd8dv is submitted successfully for execution.
שם המשימה נוצר אוטומטית, עם תחילית של שם האפליקציה וסיומת של מחרוזת שרירותית. שם המשימה הוא מזהה ייחודי של משימות באותו אשכול.
ציון מכסות למשאבי משימות
אפשר לציין מגבלות משאבים (כמו ליבות CPU, מגבלת זיכרון או מכסת דיסק) באפליקציה (במהלך kf push) או במהלך הפקודה kf run-task. המגבלות שצוינו בפקודה kf run-task מקבלות קדימות על פני המגבלות שצוינו באפליקציה.
כדי לציין מגבלות על משאבים באפליקציה, אפשר להשתמש בדגלים --cpu-cores, --memory-limit ו---disk-quota בפקודה kf push.
kf push test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5G --taskכדי לעקוף את המגבלות האלה באפליקציה, אפשר להשתמש בדגלים --cpu-cores, --memory-limit ו---disk-quota בפקודה kf run-task.
kf run-task test-app --command "printenv" --cpu-cores=0.5 --memory-limit=2G --disk-quota=5Gהגדרת שם תצוגה מותאם אישית למשימה
אפשר להשתמש בדגל --name כדי לציין שם לתצוגה בהתאמה אישית למשימה, כדי שיהיה קל יותר לזהות אותה או לקבץ אותה.
$ 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>
ניהול משימות
אפשר להשתמש בפקודה 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>
ביטול משימה
מבטלים משימה פעילה באמצעות הפקודה kf terminate-task.
ביטול משימה לפי שם המשימה.
$ kf terminate-task test-app-6w6mz
Task "test-app-6w6mz" is successfully submitted for termination
או לבטל משימה באמצעות APP_NAME + Task ID.
$ kf terminate-task test-app 2
Task "test-app-6w6mz" is successfully submitted for termination
למשימות שבוטלו יש סטטוס 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
צפייה ביומני המשימות
כדי להציג את היומנים של משימה, משתמשים בפקודה kf logs APP_NAME --task.
$ kf logs test-app --task