שיטות מומלצות לניהול תמונות

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

הסבר על תמונות

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

הסבר על תמונות.

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

כדי לייבא דיסק כתמונה של Compute Engine, צריך לכתוב את הבייטים של הדיסק לקובץ בשם disk.raw.

אחרי שכל רצף הבייטים מהדיסק נכתב לקובץ, הקובץ נשמר בארכיון באמצעות פורמט tar ואז הוא נדחס באמצעות פורמט GZIP. לאחר מכן אפשר להעלות את קובץ *.tar.gz שנוצר ל-Cloud Storage ולרשום אותו כתמונה ב-Compute Engine, כמו שמוצג בתרשים הקודם. אחרי שרושמים תמונה, אפשר להשתמש בה כדי ליצור העתקים מדויקים של הדיסק המקורי בכל אזור של Cloud de Confiance by S3NS. התמונות החדשות שנרשמו משמשות לעיתים קרובות כנפחי אתחול למכונות Compute Engine.

למידע בסיסי יותר על המונחים האלה ב-Compute Engine, אפשר לעיין במאמרים מכונות וירטואליות ותמונות במאמרי העזרה.

בחירת תמונת אתחול

השלב הראשון בשימוש ב-Compute Engine הוא לבחור את התמונה שרוצים כמערכת ההפעלה של המכונה הווירטואלית (VM). אתם יכולים להשתמש בתמונות ציבוריות שסופקו על ידי Cloud de Confiance, שמתעדכנות באופן קבוע. Cloud de Confiance מספקת מגוון מערכות הפעלה, כולל Debian,‏ Ubuntu ו-CentOS, לשימוש שלכם ללא עלות נוספת. מערכות הפעלה מסוימות, כמו Red Hat Enterprise Linux ו-Microsoft Windows, הן קובצי אימג' פרימיום, ולכן יש חיובים נוספים על כל שעה שהמופעים פועלים.

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

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

קובץ אימג' לאתחול.

אפשר להשתמש בתמונות Cloud de Confiance הציבוריות כדי להפעיל מכונה של Compute Engine, ואז להתאים אישית את המכונה כדי להריץ את האפליקציה.

אחת הדרכים להגדיר את המכונה היא להשתמש בסקריפט לטעינה בזמן ההפעלה כדי להריץ את הפקודות שפורסות את האפליקציה בזמן האתחול. חשוב לזכור שהסקריפט הזה פועל בכל פעם שהמופע מופעל, ולכן צריך להפוך את הסקריפט לאידמפוטנטי כדי להימנע ממצב לא עקבי או ממצב שבו ההגדרה בוצעה באופן חלקי. אם מופעי המכונה שלכם הם חלק מקבוצת מופעי מכונה מנוהלים, אתם יכולים להשתמש בכלי Instance Group Updater כדי להפעיל מחדש או לבנות מחדש את מופעי המכונה, וכך להריץ מחדש את סקריפט לטעינה בזמן ההפעלה. נהוג להשתמש בסקריפט לטעינה בזמן ההפעלה כדי להפעיל כלי לניהול הגדרות כמו Chef או Ansible.

יצירת תמונות בהתאמה אישית

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

  • גלילה ידנית
  • אוטומטי
  • ייבוא

תהליך היצירה של תמונה בהתאמה אישית נקרא baking.

היתרונות של אפיית התמונות:

  • זמן קצר יותר מהאתחול ועד למוכנות האפליקציה.
  • שיפור האמינות של פריסות אפליקציות.
  • חזרה קלה יותר לגרסאות קודמות.
  • פחות יחסי תלות בשירותים חיצוניים במהלך אתחול האפליקציה.
  • הגדלת הקיבולת יוצרת מופעים שמכילים גרסאות תוכנה זהות.

אפייה ידנית

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

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

  1. יצירת מכונה מקובץ אימג' ציבורי.
  2. מתחברים למכונה.
  3. מתאימים אישית את המופע לצרכים שלכם.
  4. עוצרים את המכונה.
  5. יוצרים קובץ אימג' בהתאמה אישית מדיסק האתחול של המכונה. במהלך התהליך הזה תצטרכו למחוק את המכונה אבל לשמור את דיסק האתחול.

אפייה אוטומטית

אם יש לכם מספר קטן של תמונות, קל להתחיל עם אפייה ידנית, אבל אם יש לכם מספר גדול של תמונות, קשה לבדוק ולנהל אותן. ‫Packer הוא כלי בקוד פתוח שמאפשר ליצור תמונות בצורה שניתנת לשחזור, לביקורת, להגדרה ולאמינות. אפשר גם להשתמש ב-Packer כחלק מצינור (pipeline) של Spinnaker כדי ליצור תמונות שמוצבות באשכולות של מופעים.

ייבוא תמונות קיימות

אתם יכולים לייבא תמונות של דיסקים לאתחול מהתשתית הקיימת שלכם אל Compute Engine באמצעות כלי לייבוא דיסקים וירטואליים, שמבצע אוטומטית את תהליך ייבוא התמונות. למכונות Linux, הנה מדריך מפורט להעברה ידנית של קובצי אימג' של דיסקים בפורמט RAW, קובצי אימג' של מכונות Amazon‏ (AMI) וקובצי אימג' של VirtualBox.

אפשרות נוספת לייבוא התמונות הקיימות היא להשתמש בהעברה אל מכונות וירטואליות.

הכלי Migrate to Virtual Machines הוא שרשרת כלים ושירות שמסייעים בהעברת מכונות מפלטפורמה אחת לאחרת עם השבתה מינימלית, באמצעות שכפול רציף ברמת הבלוק. אפשר להעביר את המכונות ל-Compute Engine ואז להשתמש ב-manual baking כדי ליצור תמונות.

הצפנה של תמונות

כל הדיסקים ב-Compute Engine מוצפנים כברירת מחדל באמצעות מפתחות ההצפנה של Google. גם תמונות שנבנו מדיסקים מוצפנות. אפשרות אחרת היא לספק מפתחות הצפנה משלכם כשיוצרים את הדיסקים. אחרי שיוצרים את הדיסק, אפשר ליצור תמונה מוצפנת על ידי הזנת מפתחות ההצפנה לפקודה ליצירת התמונה. מידע נוסף על הצפנה במנוחה ועל מפתחות הצפנה באספקת הלקוח זמין במאמר הצפנה במנוחה במסמכי Cloud de Confiance .

מחזור החיים של תמונה

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

משפחות של תמונות

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

הוצאה משימוש של תמונה

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

gcloud compute images deprecate my-application-v3-20161011 --state DEPRECATED

אפשר לבחור מבין מצבי הוצאה משימוש שונים:

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

אכיפת כללי מדיניות בנושא מחזור חיים

אפשר לסמן תמונות למחיקה או להוצאה משימוש באמצעות הפקודה gcloud compute images deprecate. אפשר לצרף מטא-נתונים לתמונות כדי לסמן אותן למחיקה בעתיד. לשם כך, צריך לספק את אחד מהדגלים --delete-in או --delete-on. כדי לצרף מטא-נתונים לסימון תמונות שיהפכו ללא רלוונטיות בעתיד, צריך לספק את הדגלים --obsolete-in או --obsolete-on. אתם יכולים לשלב את הפקודה הזו בתהליך build של תמונה כדי לאכוף מדיניות מחזור חיים של תמונות, שמגבילה את ההפצה של תמונות לא פעילות ותמונות שתוקף השימוש בהן פג בפרויקט. לדוגמה, בסוף צינור בניית התמונות, אפשר לכלול בדיקה נוספת של תמונות שצריך להוציא משימוש או למחוק, ואז לבצע את הפעולות האלה באופן מפורש.

אומנם תמונות שהוצאו משימוש ונמחקו לא מוצגות יותר דרך ה-API וממשק המשתמש כברירת מחדל, אבל עדיין אפשר לראות אותן באמצעות האפשרות --show-deprecated. כדי למחוק את התמונה והנתונים שלה באופן סופי, צריך לשלוח פקודת מחיקה ספציפית לתמונה הזו.

שיתוף תמונות בין פרויקטים

בארגונים יוצרים לעיתים קרובות כמה Cloud de Confiance פרויקטים כדי לחלק את המשאבים, הסביבות והגישה של המשתמשים. בידוד משאבים בפרויקטים מאפשר חיוב מדויק, אכיפת אבטחה ורשתות מופרדות. למרות שרוב משאבי הענן לא צריכים להיות משותפים בין כמה פרויקטים, תמונות הן מועמדות טובות לשיתוף בין פרויקטים. באמצעות שימוש במערך משותף של תמונות, תוכלו לפעול לפי תהליך משותף כדי לספק תמונות עם שיטות מומלצות לאבטחה, להרשאות, לניהול חבילות ולפעולות שהוגדרו מראש עבור שאר הארגון.

שיתוף תמונות.

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

  1. המשתמשים בקבוצת המשתמשים 'תמונה' יכולים ליצור מופעים מהתמונות האלה אם תעניקו להם את התפקיד compute.imageUser.
  2. כדי לאפשר למשתמש עם התפקיד Image Creation User (משתמש שיוצר תמונות) ליצור מכונות וירטואליות בפרויקט הזה, צריך להקצות לו את התפקיד compute.instanceAdmin.
  3. מאפשרים למשתמש 'יצירת תמונות' ליצור תמונות ודיסקים בפרויקט הזה על ידי הענקת התפקיד compute.storageAdmin.

בפרויקטים שבהם רוצים להשתמש בתמונות המשותפות, צריך לאפשר למשתמשים עם התפקיד compute.imageUser ליצור מכונות וירטואליות על ידי הקצאת התפקיד compute.instanceAdmin.

הוראות מפורטות יותר לשיתוף תמונות בין פרויקטים זמינות במאמר שיתוף תמונות בין פרויקטים במסמכי Compute Engine.

המאמרים הבאים