* מערכת קוברנטיס עובדת במנות (BATCH) אפשר לעקוף את זה אבל העבודה
הרגילה היא ללא מקלדת לקלט וללא מסך לפלט - הכל נכתב ונקרא בקבצים.
* המערכת עובדת על קונטיינרים, נדרש ניסיון קודם בדוקר ובלינוקס.
* נלמד לעבוד עם שלוש פקודות קסם שבעזרתן פעולות מתבצעות במערכת המרוחקת
שלוש הפקודות הן:
לטיפול בקבצים   kube_bash_storage
להעברת קבצים   local2storage או storage2local
להרצה   runai

הנה תיאור גרפי של מה שאנו הולכים לעשות




* הפקודה הראשונה שנלמד, טיפול בקבצים:
לכל פרוייקט יש תיקיה קבועה ששמה תמיד storage/ בה אפשר
לשמור קבצים. זה המקום לבנות את סביבת העבודה הוירטואלית שלנו
וכאן נריץ פקודות כמו pip install וכדומה

הפקודה שנותנת לי גישה אל הקבצים בשרת

kube_bash_storage

root@storage-gateway-5856974484-5d9ws:/#   ls -l
root@storage-gateway-5856974484-5d9ws:/storage#   cd /storage
root@storage-gateway-5856974484-5d9ws:/storage#   ls

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

root@storage-gateway-5856974484-5d9ws:/storage#   mkdir sara yoav
root@storage-gateway-5856974484-5d9ws:/storage#   exit





* הפקודה השניה שנלמד, העברת קבצים:
לשרה יש סקריפט בשם myscr.py את הסקריפט היא תאכסן בַּמערכת
כלומר תעתיק את myscr.py מהמחשב המקומי אל ה storage שבשרת:

local2storage myscr.py sara/myscr.py

במקרה הסקריפט myscr.py כותב "אמריקה" למסך ו"לונדון" לתוך קובץ...

print("America")
f=open("/storage/sara/output.txt", "w")
f.write("London\n")

בהמשך, שרה תוכל להעתיק מהשרת אל התיקיה במחשב המקומי, לדוגמה:

storage2local sara/output.txt output.txt

(הפקודות local2storage ו storage2local יכולות להעביר גם תיקיה שלמה)




וכך נראה הדוקרפייל (Dockerfile) של שרה...

FROM python
WORKDIR /storage/sara
CMD ["python", "myscr.py"]

אחרי ששרה בנתה את אימייג'הדוקר והעלתה אותו לענן
היא יכולה להריץ אותו



* אם כן, ניגש לפקודה השלישית, הרצה:

runai submit --pvc=storage:/storage -g 0.1 -i uuddii/helo

במקום uuddii/helo יבוא שם אימיג' הדוקר מתוך דוקרהאב
ביקשתי עשירית GPU לצורך הריצה הזו.
האופציה PVC דרושה לעבודה עם קבצים!
חשוב, אופצית ה PVC מגדירה את האחסון הראשי (לא כתוב sara או yoav).

בתגובה המערכת תתן לנו את שם הג'וב לצורך מעקב אך אפשר להקצות שם הגיוני יותר.
נבדוק את התוצאות:

kube_bash_storage
storage-gateway-5856974484-5d9ws:/#   cd /storage/sara
storage-gateway-5856974484-5d9ws:/storage/sara#   ls
storage-gateway-5856974484-5d9ws:/storage/sara#   cat output.txt
storage-gateway-5856974484-5d9ws:/storage/sara#   exit

אך מה קרה? היכן אמריקה?
כמו שנאמר, הפלט נשלח לקבצים אך אם לא ציינו את שם קובץ היעד בתוכנית,
אז הפלט ישלח אל הלוגים:

runai logs theJobName

שו"ת runai
הביתה run-ai