הרצת משימות

אתם יכולים להריץ תהליכי עבודה לטווח קצר כמשימות ב-Kf. משימות מופעלות במסגרת אפליקציות, כלומר לכל משימה צריכה להיות משויכת אפליקציה. כל הפעלה של משימה משתמשת בפריטי מידע שנוצרו בתהליך פיתוח (Artifact) מהאפליקציה הראשית. מכיוון שמשימות הן קצרות טווח, האפליקציה לא נפרסת כאפליקציה ארוכת טווח, ולא צריך ליצור נתיבים לאפליקציה או למשימה.

העברת אפליקציה להפעלת משימות

  1. משכפלים את מאגר test-app:

    git clone https://github.com/cloudfoundry-samples/test-app test-app
    cd test-app
  2. דחיפה של האפליקציה.

    מבצעים Push לאפליקציה באמצעות הפקודה kf push APP_NAME --task. הדגל --task מציין שהאפליקציה מיועדת להרצת משימות, ולכן לא נוצרים נתיבים באפליקציה, והיא לא נפרסת כאפליקציה שפועלת לאורך זמן:

    kf push test-app --task
  3. כדי לוודא שלא נוצרו מופעים או מסלולים של האפליקציה, מריצים את הפקודה הבאה:

    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.

שם המשימה נוצר אוטומטית, עם תחילית של שם האפליקציה וסיומת של מחרוזת שרירותית. שם המשימה הוא מזהה ייחודי של משימות באותו אשכול.

ציון מכסות למשאבי משימות

אפשר לציין מגבלות משאבים (כמו ליבות מעבד, מגבלת זיכרון או מכסת נפח אחסון בדיסק) באפליקציה (במהלך 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 + מזהה המשימה:

    $ 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