* מערכת קוברנטיס עובדת במנות (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