במאמר הזה מתואר Skaffold, איך ומדוע Cloud Deploy משתמש בו, ומה צריך לעשות כדי שהוא יפעל בשבילכם.
Cloud Deploy משתמש ב-Skaffold לפעולות רינדור ופריסה. אפשר להשתמש בו גם לפיתוח מקומי, לבנייה, לבדיקה ולתכונות מתקדמות של פריסה. עם זאת, Cloud Deploy דורש רק הגדרה של Skaffold שמזהה את המניפסטים לעיבוד וליישום.
מה זה Skaffold?
Skaffold הוא כלי לשורת הפקודה שמאפשר פיתוח רציף של אפליקציות נייטיב ל-Kubernetes. אפשר להשתמש ב-Skaffold כדי להגדיר סביבת עבודה מקומית לפיתוח לשימוש עם צינורות עיבוד נתונים של Cloud Deploy לפריסה רציפה.
Skaffold כולל את התכונות הבאות:
הוא מאפשר לכם שליטה נפרדת בפעילויות של צינורות CI/CD (build, render, test deploy וכו').
הוא שימושי ככלי לפיתוח מקומי.
פרופילים של Skaffold מאפשרים להבחין בין סביבות שונות, עם הגדרות שונות של בנייה, בדיקה ופריסה, והכול באותו קובץ הגדרות.
למה Cloud Deploy משתמש ב-Skaffold?
ב-Google Cloud Deploy נעשה שימוש ב-Skaffold כדי להפריד בין כלי הרינדור לבין צינור העברת הנתונים. צינור העברת הנתונים פשוט מגדיר את ההתקדמות מיעד ליעד, בעוד שההגדרה של Skaffold מגדירה אילו מניפסטים מעובדים ואיך. כך אפשר לעבד את קובץ המניפסט בצורה גמישה בלי להשפיע על האופן שבו מגדירים את צינור ההפצה.
אלה כמה מהיתרונות של Skaffold כשמשתמשים בו עם Cloud Deploy:
תהליך קליטה פשוט
מתחילים בלולאת פיתוח מקומית. אתם יכולים לשתף את קובץ
skaffold.yamlעם הצוות שלכם, כדי לשמור על עקביות ולעזור לחברי צוות חדשים להתחיל לעבוד.שליטה עקבית בעיבוד של רכיבים במגוון יעדי פריסה
אפשר להשתמש בפרופילים של Skaffold, עם עיבוד ופריסה שונים ליעדים שונים.
בחירה בין כלי עיבוד בלי לפגוע באופן שבו מוגדרים צינורות העברת הנתונים
השימוש ב-Skaffold מאפשר ל-Cloud Deploy להפריד בין ההגדרה של צינור העברת התוכן לבין פרטי העיבוד. ההפרדה הזו מאפשרת לכם לערוך ניסויים במניפסטים בלי לשבש את צינור ההפצה.
תהליך עיבוד עקבי
מקור הרנדור והקונטיינרים משמשים ליצירת מניפסטים שעברו רנדור.
בדיקות תקינות של פריסה
Skaffold מבצע אותן, ו-Cloud Deploy משתמש בהן.
איך Cloud Deploy משתמש ב-Skaffold?
מקור העיבוד וההפניות לתמונות קונטיינר מועברים אל Cloud Deploy כשיוצרים גרסת הפצה.
במסגרת יצירת הגרסה, Cloud Deploy קורא ל-Cloud Build, שבתורו מפעיל את
skaffold diagnoseואתskaffold renderכדי לעבד את המניפסט או המניפסטים באמצעות מקור העיבוד והתמונות האלה.אפשר להשתמש בפרופילים של Skaffold כדי להבחין בין מניפסטים שיוחלו על יעדים שונים.
Cloud Deploy תומך במודולים סטטיים של Skaffold.
במהלך הפריסה, Cloud Deploy קורא ל-
skaffold applyכדי להחיל את המניפסט או המניפסטים שעברו עיבוד על אשכול היעד.Cloud Deploy לא תומך בשימוש בכלי פריסה אחרים כדי לפרוס את האפליקציה, אלא אם משתמשים ביעדים מותאמים אישית. עם זאת, אפשר להשתמש בכלים כמו Helm או Kustomize כמעבדי תבניות. מידע נוסף על פריסה ב-Cloud Deploy ללא שימוש בכלי פריסה ספציפיים (כמו Helm) זמין במאמר ארכיטקטורת השירות.
איך משתמשים ב-Skaffold
מגדירים את Skaffold בהתאם לצרכים של צינור עיבוד הנתונים.
קובעים את הצרכים של צינור עיבוד הנתונים למשלוח.
כמה יעדים יהיו לך? האם הרינדור והפריסה זהים לכל אחד מהם. אם ההגדרה זהה לכל יעד בהתקדמות, לא צריך להשתמש בפרופילים של Skaffold. צריך רק
skaffold.yamlקובץ שמתאר את המניפסטים לעיבוד.אם רלוונטי, יוצרים פרופיל Skaffold לכל יעד
מגדירים את זה בקובץ
skaffold.yamlומבצעים קישור ברצף ההתקדמות של הגדרת צינור ההפצה.מידע נוסף על פרופילי Skaffold זמין במסמכי התיעוד של Skaffold. בנוסף, במסמך ניהול מניפסטים ב-Cloud Deploy יש דוגמאות להגדרות של פרופילים.
הגדרת רמת הפירוט של היומן ב-Skaffold
כברירת מחדל, רמת הרישום ביומן של Skaffold מוגדרת כ-
warn. אפשר לשנות את זה ל-debugבהגדרה של סביבת ההפעלה של יעד על ידי הגדרתverbose: true.
מחברים את Cloud Deploy למערכת האינטגרציה הרציפה.
בסוף תהליך ה-CI, מעבירים את
skaffold.yaml, את מקור הרנדרינג ואת תמונות הקונטיינר לאכלוס במניפסט שעבר רנדרינג.אופציונלי: הגדרת לולאת פיתוח מקומית באמצעות Skaffold.
השימוש ב-Skaffold לפיתוח הוא אופציונלי ב-Cloud Deploy. הדבר היחיד שנדרש כדי להפעיל את Cloud Deploy הוא קובץ
skaffold.yamlשמזהה מניפסטים לעיבוד.
המאמרים הבאים
באתר של Skaffold אפשר לקרוא על אופן הפעולה של הכלי ועל מה שהוא יכול לעשות בשבילכם.
איך Cloud Deploy בוחר את גרסאות הכלים לשימוש ואיך קובעים אילו גרסאות נמצאות בשימוש.
איך משתמשים בפרופילים של Skaffold בשילוב עם כלים מתקדמים לניהול מניפסטים כמו Helm, Kustomize ו-kpt.
כדאי לנסות את המדריך לפרופילים של Skaffold.