שיטות מומלצות לשימוש במשפחות תמונות

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

לפני שמתחילים

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

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

    gcloud

    1. מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

משפחות של תמונות שגלויות לכולם

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

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

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

במהלך השקת תמונה, יכול להיות שהגרסה האחרונה של תמונה במשפחת תמונות תהיה שונה באזורים שונים. לדוגמה, debian-12 משפחת התמונות בפרויקט debian-cloud תמיד מצביעה על התמונה העדכנית ביותר של Debian 12, אבל יכול להיות שהתמונה העדכנית ביותר של Debian 12 באזורים us-central1-a ו-southamerica-east1-b תהיה שונה.

כשיוצרים מכונות וירטואליות ממשפחות של תמונות באמצעות Google Cloud CLI,‏ Compute Engine משתמש בתמונה האחרונה שזמינה באזור של המכונה הווירטואלית עבור הבקשה שלכם. כשיוצרים מכונות וירטואליות באמצעות מסוף Cloud de Confiance , ‏ Compute Engine מציג רק את האימג'ים הציבוריים שזמינים באזור שבחרתם. אם רוצים ליצור מכונות וירטואליות באמצעות התמונה העדכנית ביותר שזמינה באופן גלובלי, משתמשים בפקודה instances create של ה-CLI של gcloud ומציינים את --image-family-scope=global.

הצגת הגרסה האחרונה של התמונה שזמינה

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

ברחבי העולם

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

gcloud

משתמשים בפקודה gcloud compute images describe-from-family:

gcloud compute images describe-from-family IMAGE_FAMILY_NAME  \
   --project=IMAGE_PROJECT

מחליפים את מה שכתוב בשדות הבאים:

  • ‫IMAGE_FAMILY_NAME: השם של משפחת התמונות שרוצים לחפש. רשימה מלאה של שמות המשפחה של התמונות מופיעה במאמר בנושא פרטים על מערכת ההפעלה.
  • ‫IMAGE_PROJECT: שם פרויקט התמונות. רשימה מלאה של שמות פרויקטים של תמונות זמינה במאמר בנושא פרטים על מערכת ההפעלה.

REST

שולחים בקשת GET אל ה-method‏ images.getFromFamily:

GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • ‫IMAGE_PROJECT: שם פרויקט התמונות. רשימה מלאה של שמות פרויקטים של תמונות מופיעה במאמר בנושא פרטים על מערכת ההפעלה.
  • ‫IMAGE_FAMILY_NAME: השם של משפחת התמונות שרוצים לחפש. רשימה מלאה של שמות המשפחה של התמונות מופיעה במאמר בנושא פרטים על מערכת ההפעלה.

לכל אזור

כדי לראות את התמונה האחרונה שזמינה במשפחת תמונות באזור מסוים, משתמשים באחת מהשיטות הבאות:

gcloud

משתמשים בgcloud compute images describe-from-family עם הדגל --zone:

gcloud compute images describe-from-family IMAGE_FAMILY_NAME  \
   --project=IMAGE_PROJECT \
   --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫IMAGE_FAMILY_NAME: השם של משפחת התמונות שרוצים לחפש. רשימה מלאה של שמות המשפחה של התמונות מופיעה במאמר בנושא פרטים על מערכת ההפעלה.
  • ‫IMAGE_PROJECT: שם פרויקט התמונות. רשימה מלאה של שמות פרויקטים של תמונות מופיעה במאמר בנושא פרטים על מערכת ההפעלה.
  • ‫ZONE: האזור שרוצים לשלוח אליו שאילתה.

REST

שולחים בקשת GET אל ה-method‏ imageFamilyViews:

GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/zones/ZONE/imageFamilyViews/IMAGE_FAMILY_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • ‫IMAGE_PROJECT: שם פרויקט התמונות. רשימה מלאה של שמות פרויקטים של תמונות מופיעה בקטע פרטים על מערכת ההפעלה.
  • ‫ZONE: האזור שרוצים לשלוח אליו שאילתה.
  • ‫IMAGE_FAMILY_NAME: השם של משפחת התמונות שרוצים לחפש. רשימה מלאה של שמות המשפחה של התמונות מופיעה במאמר בנושא פרטים על מערכת ההפעלה.

משפחות של תמונות בהתאמה אישית

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

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

gcloud compute images create my-application-v3-20210101 \
    --source-disk my-application-disk-1 \
    --source-disk-zone us-central1-f \
    --family my-application

אחרי שמריצים את הפקודה הזו, כל הקריאות להרצת מופע שמבוסס על קובץ האימג' my-application מפנות לקובץ האימג' החדש שנוצר, my-application-v3-20210101.

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

איך משתמשים במשפחות של תמונות

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

לסיכום, אפשר לנסות את הגישה הבאה:

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

לדוגמה, התהליך יכול להיות דומה לתהליך הבא.

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

    gcloud compute images create test-image-name \
    --source-image-project source-project \
    --source-image-family source-image-family \
    --project test-project \
    --family test-image-family
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫test-image-name: השם של תמונת הבדיקה.
    • ‫source-project: הפרויקט שאליו שייכת משפחת תמונות המקור.
    • ‫source-image-family: השם של משפחת תמונות המקור.
    • ‫test-project: השם של פרויקט הבדיקה שרוצים להוסיף אליו את משפחת התמונות.
    • ‫test-image-family: השם של משפחת תמונות הבדיקה.
  2. בעזרת משפחת האימג'ים בהתאמה אישית test-image-family, יוצרים מכונת VM כדי לבדוק את עומס העבודה. כדי ליצור את המכונה הווירטואלית, מריצים את הפקודה הבאה:

    gcloud compute instances create test-instance-name \
    --image-family your-test-image-family \
    --project test-project
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫test-instance-name: השם של מכונת הבדיקה.
    • ‫test-image-family: השם של משפחת תמונות הבדיקה.
    • ‫test-project: השם של פרויקט הבדיקה.
  3. אחרי שמוודאים שהתמונה מתאימה לעומס העבודה, מעתיקים אותה לסביבת הייצור.

    gcloud compute images create prod-image-name \
    --source-image-family test-image-family \
    --source-image-project test-project \
    --project prod-project \
    --family prod-image-family
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫prod-image-name: השם של תמונת הייצור.
    • ‫test-image-family: השם של משפחת תמונות הבדיקה.
    • ‫test-project: הפרויקט שאליו שייכת משפחת תמונות הבדיקה.
    • ‫prod-project: השם של הפרויקט שנמצא בסביבת הייצור.
    • ‫prod-image-family: השם של משפחת התמונות שרוצים להשתמש בה בסביבת הייצור.