הפתרון הזה מספק הנחיות מפורטות לניהול תמונות של Compute Engine. תמונות מספקות את סביבת ההפעלה הבסיסית לאפליקציות שפועלות ב-Compute Engine, והן חיוניות כדי להבטיח שהפריסה וההתאמה של האפליקציה יתבצעו במהירות ובאופן מהימן. אפשר גם להשתמש בתמונות כדי לארכב גרסאות של אפליקציות לצורך התאוששות מאסון או תרחישי חזרה לגרסה קודמת.
הסבר על תמונות
תמונה ב-Compute Engine היא משאב בענן שמספק הפניה לדיסק שלא ניתן לשינוי. לאחר מכן, הייצוג של הדיסק עובר תהליך של אנקפסולציה באמצעות כמה פורמטים של נתונים.
תמונה היא חבילה של בייטים גולמיים שמשמשים ליצירת דיסק קשיח עם נתונים מאוכלסים מראש. בכל דיסק מעוצב נכתבת טבלת מחיצות שמצביעה על מחיצה אחת או יותר שמכילות נתונים. כדי שתמונה תהיה ניתנת לאתחול, היא צריכה לכלול את הרכיבים הבאים:
- טבלת מחיצות: master boot record או GUID partition table
- מחיצה שאפשר להפעיל ממנה את המחשב
כדי לייבא דיסק כתמונה של Compute Engine, צריך לכתוב את הבייטים של הדיסק לקובץ בשם disk.raw.
אחרי שרצף הבייטים המלא מהדיסק נכתב לקובץ, הקובץ נשמר בארכיון בפורמט tar ואז נדחס בפורמט GZIP. לאחר מכן אפשר להעלות את קובץ *.tar.gz שנוצר ל-Cloud Storage ולרשום אותו כתמונה ב-Compute Engine, כמו שמוצג בתרשים הקודם. אחרי שרושמים תמונה, אפשר להשתמש בה כדי ליצור העתקים מדויקים של הדיסק המקורי בכל אזור של Google Cloud. התמונות החדשות שנרשמו משמשות לעיתים קרובות כנפחי אתחול למכונות Compute Engine.
למידע בסיסי יותר על המונחים האלה ב-Compute Engine, אפשר לעיין במאמרים מכונות וירטואליות ותמונות במאמרי העזרה.
בחירת קובץ אימג' לאתחול
השלב הראשון בשימוש ב-Compute Engine הוא לבחור את התמונה שרוצים כמערכת ההפעלה של המכונה הווירטואלית (VM). אתם יכולים להשתמש בתמונות ציבוריות שסופקו על ידי Google Cloud, שמתעדכנות באופן קבוע. Google Cloud מספקת מגוון מערכות הפעלה, כולל Debian, Ubuntu ו-CentOS, לשימוש שלכם ללא עלות נוספת. מערכות הפעלה מסוימות, כמו Red Hat Enterprise Linux ו-Microsoft Windows, הן קובצי אימג' פרימיום, ולכן יש עליהן חיובים נוספים על כל שעה שהמופעים פועלים.
מידע נוסף על תמונה מסוימת, כמו מדיניות עדכונים אוטומטיים, תיקוני אבטחה וערוצי תמיכה, מופיע בקטע פרטים על מערכת ההפעלה במסמכי המוצר.
כדי להוסיף שכבת אבטחה, אפשר גם להשתמש בתכונת התמונות המהימנות כדי להגדיר מדיניות ארגונית שמגבילה את השימוש בתמונות בפרויקטים ספציפיים של תמונות ציבוריות ליצירת תמונות אתחול.
אפשר להשתמש בתמונות הציבוריות כדי להפעיל מכונה של Compute Engine, ואז להתאים אישית את המכונה כדי להריץ את האפליקציה. Google Cloud
אחת הדרכים להגדיר את המכונה היא להשתמש בסקריפט לטעינה בזמן ההפעלה כדי להריץ את הפקודות שפורסות את האפליקציה בזמן האתחול. חשוב לזכור שהסקריפט הזה פועל בכל פעם שהמופע מופעל, ולכן צריך להפוך את הסקריפט לאידמפוטנטי כדי למנוע מצב לא עקבי או מוגדר חלקית. אם מופעי המכונה שלכם הם חלק מקבוצת מופעי מכונה מנוהלים, אתם יכולים להשתמש בכלי Instance Group Updater כדי להפעיל מחדש או לבנות מחדש את מופעי המכונה, וכך להריץ מחדש את סקריפט לטעינה בזמן ההפעלה. נהוג להשתמש בסקריפט לטעינה בזמן ההפעלה כדי להפעיל כלי לניהול הגדרות כמו Chef או Ansible.
יצירת תמונות בהתאמה אישית
אפשר להגדיר סקריפט לטעינה בזמן ההפעלה של מופע כדי להקצות את התשתית, אבל שיטה יעילה יותר היא ליצור קובץ אימג' חדש בהתאמה אישית עם ההגדרה שלכם שמשולבת בקובץ האימג' הציבורי. יש כמה דרכים להתאים אישית תמונות:
- גלילה ידנית
- אוטומטי
- ייבוא
תהליך יצירת תמונה בהתאמה אישית נקרא baking.
היתרונות של אפיית התמונות:
- זמן קצר יותר מהאתחול ועד למוכנות האפליקציה.
- שיפור האמינות של פריסות אפליקציות.
- קל יותר לחזור לגרסאות קודמות.
- פחות תלות בשירותים חיצוניים במהלך אתחול האפליקציה.
- הגדלת הקיבולת יוצרת מופעים שמכילים גרסאות תוכנה זהות.
אפייה ידנית
אפשר ליצור קובץ אימג' פשוט בהתאמה אישית על ידי יצירת מכונה וירטואלית חדשה מקובץ אימג' ציבורי, הגדרת המכונה עם האפליקציות וההגדרות הרצויות, ואז יצירת קובץ אימג' בהתאמה אישית מהמכונה הזו. משתמשים בשיטה הזו אם אתם יכולים להגדיר את התמונות מאפס באופן ידני, במקום להשתמש באפייה אוטומטית או בייבוא של תמונות קיימות.
כדי ליצור תמונה מותאמת אישית פשוטה, פועלים לפי השלבים הבאים:
- יצירת מכונה מקובץ אימג' ציבורי.
- מתחברים למכונה.
- מתאימים אישית את המופע לצרכים שלכם.
- מפסיקים את המכונה.
- יוצרים קובץ אימג' בהתאמה אישית מדיסק האתחול של המכונה. במהלך התהליך הזה תצטרכו למחוק את המכונה אבל להשאיר את דיסק האתחול.
אפייה אוטומטית
אם יש לכם מספר קטן של תמונות, קל להתחיל עם אפייה ידנית, אבל אם יש לכם מספר גדול של תמונות, קשה לבדוק ולנהל אותן. Packer הוא כלי בקוד פתוח שמאפשר ליצור תמונות שניתנות לשחזור, לבדיקה, להגדרה ולאמינות. אפשר גם להשתמש ב-Packer כחלק מצינור Spinnaker כדי ליצור תמונות שמוצבות באשכולות של מופעים.
ייבוא תמונות קיימות
אתם יכולים לייבא תמונות של דיסקים לאתחול מהתשתית הקיימת שלכם אל Compute Engine באמצעות כלי לייבוא דיסקים וירטואליים, שמבצע אוטומטית את תהליך ייבוא התמונות. למכונות Linux, הנה מדריך מפורט להעברה ידנית של קובצי אימג' של דיסקים בפורמט RAW, קובצי אימג' של מכונות אמזון (AMI) וקובצי אימג' של VirtualBox.
אפשרות נוספת לייבוא התמונות הקיימות היא להשתמש בהעברה למכונות וירטואליות.
הכלי Migrate to Virtual Machines הוא שרשרת כלים ושירות שמסייעים בהעברת מכונות מפלטפורמה אחת לאחרת עם זמן השבתה מינימלי, באמצעות שכפול רציף ברמת הבלוק. אפשר להעביר את המכונות ל-Compute Engine ואז להשתמש ב-baking ידני כדי ליצור תמונות.
הצפנת תמונות
כל הדיסקים ב-Compute Engine מוצפנים כברירת מחדל באמצעות מפתחות ההצפנה של Google. גם תמונות שנוצרות מדיסקים מוצפנות. אפשרות אחרת היא לספק מפתחות הצפנה משלכם כשיוצרים את הדיסקים. אחרי שיוצרים את הדיסק, אפשר ליצור תמונה מוצפנת על ידי הזנת מפתחות ההצפנה לפקודה ליצירת התמונה. מידע נוסף על הצפנה במנוחה ועל מפתחות הצפנה באספקת הלקוח (CSEK) זמין במאמר הצפנה במנוחה במסמכי Google Cloud .
מחזור החיים של תמונה
אחרי שמגדירים צינור ליצירת תמונות, אפשר להשתמש בתמונות כדי להפעיל באופן מהימן מופעים של אפליקציה. למרות שצינור העיבוד יכול ליצור תמונות, אתם צריכים לוודא שמנגנוני הפריסה שלכם משתמשים בגרסאות העדכניות ביותר של התמונות. לבסוף, צריך תהליך לניהול התמונות, כדי שלא ישתמשו בטעות בתמונות ישנות ולא רלוונטיות.
משפחות של תמונות
משפחות של תמונות עוזרות לכם לנהל את התמונות בפרויקט על ידי קיבוץ תמונות שקשורות זו לזו, כך שתוכלו לעבור קדימה ואחורה בין גרסאות ספציפיות של תמונות. מידע נוסף זמין במאמר בנושא שיטות מומלצות לגבי משפחות של תמונות.
הוצאה משימוש של תמונה
אדמינים יכולים גם לבטל את השינויים בתמונה שאליה מפנה משפחת התמונות, על ידי הוצאת התמונה משימוש באמצעות הפקודה הבאה:
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.
כדי למחוק לחלוטין את התמונה והנתונים שלה, צריך לשלוח פקודת מחיקה ספציפית לתמונה הזו.
שיתוף תמונות בין פרויקטים
ארגונים יוצרים לעיתים קרובות כמה Google Cloud פרויקטים כדי לחלק את המשאבים, הסביבות והגישה של המשתמשים. בידוד משאבים בפרויקטים מאפשר חיוב מפורט, אכיפת אבטחה ורשתות מופרדות. למרות שרוב משאבי הענן לא צריכים להיות משותפים בין כמה פרויקטים, תמונות הן מועמדות טובות לשיתוף בין פרויקטים. באמצעות שימוש בקבוצה משותפת של תמונות, תוכלו לפעול לפי תהליך משותף כדי לספק תמונות עם שיטות מומלצות לאבטחה, הרשאה, ניהול חבילות ופעולות שהוגדרו מראש עבור שאר הארגון.
כדי לשתף תמונות, צריך להקצות תפקידי IAM לפרויקטים של הארגון. בפרויקט שמכיל את התמונות שרוצים לשתף עם פרויקטים אחרים, שנקרא בתרשים הקודם 'פרויקט ליצירת תמונות', צריך להחיל את תפקידי ה-IAM ומדיניות ההרשאות הבאים:
- הענקת הרשאת תפקיד
compute.imageUserלמשתמשים ב'קבוצת משתמשים של תמונות' כדי שיוכלו ליצור מופעים מהתמונות האלה. - כדי לאפשר למשתמש 'יצירת תמונות' ליצור מכונות וירטואליות בפרויקט הזה, צריך להקצות לו את התפקיד
compute.instanceAdmin. - מאפשרים למשתמש 'יצירת תמונות' ליצור תמונות ודיסקים בפרויקט הזה על ידי הענקת התפקיד
compute.storageAdmin.
בפרויקטים שבהם רוצים להשתמש בתמונות המשותפות, צריך לאפשר למשתמשים עם התפקיד compute.imageUser ליצור מכונות וירטואליות על ידי הקצאת התפקיד compute.instanceAdmin.
הוראות מפורטות יותר לשיתוף תמונות בין פרויקטים זמינות במאמר שיתוף תמונות בין פרויקטים במסמכי Compute Engine.
המאמרים הבאים
- בדיקת אפשרויות הייבוא של תמונות
- עבודה עם תמונות אתחול
- עבודה עם תמונות בהתאמה אישית