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

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

תפקידים והרשאות של IAM

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

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

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

ההרשאות הנדרשות

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

  • כדי להציג את כללי המדיניות של התוספים: compute.vmExtensionPolicies.list
  • כדי לראות את הפרטים של מדיניות תוספים: compute.vmExtensionPolicies.get
  • כדי לשנות את כללי המדיניות של התוספים: compute.vmExtensionPolicies.update
  • כדי למחוק כללי מדיניות של תוספים: compute.vmExtensionPolicies.delete

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

מידע נוסף על תפקידים והרשאות ב-IAM ב-Compute Engine זמין במאמר תפקידים והרשאות ב-Compute Engine.

צפייה בכללי המדיניות של התוספים

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

עולמי

gcloud

כדי להציג את כל מדיניות התוספים הגלובלית בפרויקט, משתמשים בפקודה gcloud beta compute global-vm-extension-policies list:

gcloud beta compute global-vm-extension-policies list \
  --project=PROJECT_ID \
  --page-size=PAGE_SIZE

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

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • PAGE_SIZE: המספר המקסימלי של התוצאות שיוחזרו בכל דף.

כדי לראות את הפרטים של מדיניות גלובלית ספציפית לתוספים, משתמשים בפקודה gcloud beta compute global-vm-extension-policies describe:

gcloud beta compute global-vm-extension-policies describe POLICY_NAME \
  --project=PROJECT_ID

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

  • POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים לתאר.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

REST

כדי לראות את כל כללי המדיניות הגלובליים של התוספים בפרויקט, צריך לשלוח בקשת GET ל-method‏ globalVmExtensionPolicies.list.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/vmExtensionPolicies

כדי לראות את הפרטים של מדיניות גלובלית ספציפית לגבי תוספים, שולחים בקשת GET אל ה-method‏ globalVmExtensionPolicies.get.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/vmExtensionPolicies/POLICY_NAME

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

  • POLICY_NAME: השם של מדיניות התוסף של מכונת ה-VM שרוצים להציג.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

אזורי

המסוף

  1. נכנסים לדף VM extension policies במסוף Google Cloud .

    מעבר אל מדיניות התוספים למכונות וירטואליות

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

gcloud

כדי להציג את כל מדיניות התוספים באזור, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies list:

gcloud beta compute zone-vm-extension-policies list \
  --project=PROJECT_ID \
  --zone=ZONE \
  --page-size=PAGE_SIZE

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

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ZONE: השם של האזור שבו רוצים להציג את מדיניות התוספים של מכונות וירטואליות.
  • PAGE_SIZE: המספר המקסימלי של התוצאות שיוחזרו בכל דף.

כדי לראות את הפרטים של מדיניות ספציפית לתוסף, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies describe:

gcloud beta compute zone-vm-extension-policies describe POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE

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

  • POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים לתאר.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ZONE: האזור שבו נמצאת מדיניות התוסף של המכונה הווירטואלית. Google Cloud

REST

כדי להציג את כל כללי המדיניות של התוספים האזוריים בפרויקט, שולחים בקשת GET אל ה-method‏ zoneVmExtensionPolicies.list.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies

כדי לראות את הפרטים של מדיניות ספציפית של תוסף אזורי, שולחים בקשת GET אל ה-method‏ zoneVmExtensionPolicies.get.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies/POLICY_NAME

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

  • POLICY_NAME: השם של מדיניות התוסף של מכונת ה-VM שרוצים להציג.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ZONE: האזור שבו נמצאת מדיניות התוסף של המכונה הווירטואלית. Google Cloud

שינוי תוספים על ידי עדכון מדיניות של תוסף למכונה וירטואלית

כשמעדכנים מדיניות, VM Extension Manager פורס את השינויים בכל מכונות ה-VM הרלוונטיות, בדרך כלל תוך דקה. אם משנים תוויות של הכללה, יכול להיות שתוספים יותקנו במכונות וירטואליות חדשות או יוסרו ממכונות וירטואליות קיימות, בהתאם להתאמה שלהם לתוויות המעודכנות.

עולמי

gcloud

כדי לשנות מדיניות קיימת של תוסף VM גלובלי, משתמשים בפקודה gcloud beta compute global-vm-extension-policies update. כשמעדכנים מדיניות באמצעות gcloud, הבקשה מחליפה את המדיניות הקודמת. כל שדה אופציונלי שמשמיטים חוזר לערכי ברירת המחדל שלו במקום לשמור על הערכים הקיימים מהמדיניות ששונתה.

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

  gcloud beta compute global-vm-extension-policies update POLICY_NAME \
      --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
      --description="DESCRIPTION" \
      --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \
      --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \
      --inclusion-labels=KEY_1=VALUE_1 \
      --priority=PRIORITY_NUMBER \
      --rollout-predefined-plan=ROLLOUT_PLAN \
      --rollout-retry-uuid=RETRY_UUID \
      --rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIOR

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

  • POLICY_NAME: שם של מדיניות הרחבות ל-VM שרוצים לעדכן.
  • EXTENSION_NAME_1, ‏ EXTENSION_NAME_2: שמות התוספים שרוצים לעדכן. צריך לציין לפחות תוסף אחד.
  • DESCRIPTION: תיאור של מדיניות התוספים למכונות וירטואליות.
  • VERSION_1: הגרסה של התוסף הראשון למכונה וירטואלית.
  • VERSION_2: הגרסה של התוסף השני למכונה וירטואלית.
  • EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, כאשר המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף. הנתיב הזה נמצא במכונה הווירטואלית שבה מריצים את הפקודה gcloud ולא במכונה הווירטואלית שבה מתקינים את התוסף.

    לחלופין, כדי לספק את ההגדרה כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file. לדוגמה: EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות להכללה עבור בורר. כדי שמכונות וירטואליות יהיו יעדים, הן צריכות לכלול את כל התוויות שצוינו בסלקטור. אם מציינים את התג --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (אופרטור OR לוגי). אם לא מציינים את הדגל הזה, המדיניות מכוונת לכל מכונות ה-VM בכל האזורים בפרויקט.

  • PRIORITY_NUMBER: מספר העדיפות של מדיניות התוסף של המכונה הווירטואלית.

  • ROLLOUT_PLAN: ציון הערך slow_rollout או fast_rollout. אם אתם צריכים להשתמש בתוכנית פריסה בהתאמה אישית, אתם יכולים להשתמש בדגל --rollout-custom-plan במקום בדגל --rollout-predefined-plan ולציין את שם התוכנית, לדוגמה:

    --rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME
    

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

    • PROJECT_NUMBER: הפרויקט שבו מוגדרת תוכנית ההשקה.
    • ROLLOUT_PLAN_NAME: השם של תוכנית הפריסה המותאמת אישית שהגדרתם.

    אם לא מציינים דגל של תוכנית השקה, המערכת משתמשת ב-slow_rollout.

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

  • "" (מחרוזת ריקה): המדיניות הגלובלית לא מחליפה מדיניות אזורית סותרת עם אותו שם. זו התנהגות ברירת המחדל.

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

    פרטים נוספים זמינים במאמר בנושא הדגל --rollout-conflict-behavior.

  • RETRY_UUID: מזהה ייחודי אוניברסלי (UUID) שמזהה ניסיון חוזר להפעלת עדכון מדיניות. כך תוכלו לנסות שוב לעדכן בלי לבצע שינויים. אם מגדירים את הדגל הזה ומשנים את המדיניות, מתרחשת שגיאה. מידע נוסף מופיע במאמר בנושא ניסיון חוזר להפעלת תכונה.

אזורי

המסוף

  1. נכנסים לדף VM extension policies במסוף Google Cloud .

    מעבר אל מדיניות התוספים למכונות וירטואליות

  2. בוחרים את המדיניות שרוצים לעדכן.
  3. לוחצים על Edit.
  4. משנים את התיאור, העדיפות, התוספים או מופעי ה-VM של היעד.
  5. לוחצים על Save.

gcloud

כדי לשנות מדיניות קיימת של תוסף למכונה וירטואלית, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies update. כשמעדכנים מדיניות באמצעות gcloud, הבקשה פועלת כהחלפה מלאה. כל השדות האופציונליים שהשמטתם יחזרו לערכי ברירת המחדל שלהם, במקום לשמור על הערכים הקיימים מהמדיניות ששונתה.

כדי לעדכן מדיניות של תוסף למכונת VM, מריצים את הפקודה הבאה:

  gcloud beta compute zone-vm-extension-policies update POLICY_NAME \
      --zone=ZONE \
      --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
      --description="DESCRIPTION" \
      --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \
      --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \
      --inclusion-labels=KEY_1=VALUE_1 \
      --priority=PRIORITY_NUMBER

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

  • POLICY_NAME: שם של מדיניות הרחבות ל-VM שרוצים לעדכן.
  • ZONE: Google Cloud האזור שבו המדיניות חלה.
  • EXTENSION_NAME_1, ‏ EXTENSION_NAME_2: שמות התוספים שרוצים לעדכן. צריך לציין לפחות תוסף אחד.
  • DESCRIPTION: תיאור אופציונלי של מדיניות התוסף של המכונה הווירטואלית.
  • VERSION_1: הגרסה של התוסף הראשון למכונה וירטואלית.
  • VERSION_2: הגרסה של התוסף השני למכונה וירטואלית.
  • EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, כאשר המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף. הנתיב הזה נמצא במכונה הווירטואלית שבה מריצים את הפקודה gcloud, ולא במכונה הווירטואלית שבה מתקינים את התוסף.

    לחלופין, כדי לספק הגדרה כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file. לדוגמה: EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות להכללה עבור בורר. כדי שמכונות וירטואליות יהיו יעדים, הן צריכות לכלול את כל התוויות שצוינו בסלקטור. אם מציינים את התג --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (אופרטור OR לוגי). אם משמיטים את הדגל הזה, המדיניות מטרגטת את כל המכונות הווירטואליות באזור שצוין.

  • PRIORITY_NUMBER: מספר העדיפות של מדיניות התוסף של המכונה הווירטואלית.

REST

כדי לעדכן מדיניות של תוסף אזורי, שולחים בקשת PATCH ל-method‏ zoneVmExtensionPolicies.update. כשמעדכנים מדיניות באמצעות REST, צריך לספק רק את השדות שרוצים לעדכן. כל השדות שמשמיטים שומרים על הערכים הקיימים שלהם.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies/POLICY_NAME

{
"description": "DESCRIPTION",
"extensionPolicies": {
  "EXTENSION_NAME": {
    "pinnedVersion": "EXTENSION_NAME_VERSION",
    "stringConfig": "EXTENSION_NAME_CONFIG"
  }
},
"instanceSelectors": [
  {
    "labelSelector": {
      "inclusionLabels": {
        "KEY_1": "VALUE_1",
        "KEY_2": "VALUE_2"
      }
    }
  }
],
"priority": PRIORITY_NUMBER
}

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

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ZONE: האזור שבו נמצאת מדיניות התוסף של המכונה הווירטואלית. Google Cloud
  • POLICY_NAME: שם של מדיניות הרחבות ל-VM שרוצים לעדכן.
  • DESCRIPTION: תיאור של מדיניות התוספים למכונות וירטואליות.
  • EXTENSION_NAME: השם של התוסף שרוצים לעדכן, שמשמש כמפתח במפה extensionPolicies. כדי לעדכן כמה תוספים, צריך לכלול כמה רשומות בextensionPolicies map.
  • EXTENSION_NAME_VERSION: הגרסה של תוסף ה-VM.
  • EXTENSION_NAME_CONFIG: הגדרות התצורה של תוסף ה-VM, כמחרוזת מוטבעת.
  • KEY_1:VALUE_1, KEY_2:VALUE_2: זוגות של מפתח וערך שמגדירים תוויות הכללה לבורר. כדי שמכונות וירטואליות יהיו יעדים, הן צריכות לכלול את כל התוויות שצוינו בסלקטור. כדי לציין כמה סלקטורים, צריך לכלול כמה אובייקטים במערך instanceSelectors, כל אחד עם שדה labelSelector. במקרה כזה, VM Extension Manager מכוון למכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (האופרטור הלוגי OR). אם משמיטים את instanceSelectors, המדיניות מטרגטת את כל המכונות הווירטואליות באזור שצוין.
  • PRIORITY_NUMBER: מספר העדיפות של מדיניות התוסף של המכונה הווירטואלית.

הסרת תוספים על ידי מחיקת מדיניות של תוסף למכונה וירטואלית

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

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

עולמי

gcloud

כדי למחוק מדיניות קיימת של תוסף VM גלובלי, משתמשים בפקודה gcloud beta compute global-vm-extension-policies delete.

gcloud beta compute global-vm-extension-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --rollout-predefined-plan=ROLLOUT_PLAN \
  --rollout-retry-uuid=RETRY_UUID

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

  • POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים למחוק.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ROLLOUT_PLAN: מציינים slow_rollout או fast_rollout. אם אתם צריכים להשתמש בתוכנית פריסה בהתאמה אישית, אתם יכולים להשתמש בדגל --rollout-custom-plan במקום בדגל --rollout-predefined-plan ולציין את שם התוכנית, לדוגמה:

    --rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME
    

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

    • PROJECT_NUMBER: הפרויקט שבו מוגדרת תוכנית ההשקה.
    • ROLLOUT_PLAN_NAME: השם של תוכנית הפריסה המותאמת אישית שהגדרתם.

    אם לא מציינים דגל של תוכנית השקה, המערכת משתמשת ב-slow_rollout.

  • RETRY_UUID: מזהה ייחודי אוניברסלי (UUID) לניסיון חוזר למחיקת מדיניות הרחבות. מגדירים את השדה הזה רק כשמנסים שוב לשלוח בקשת מחיקה של מדיניות קיימת שנמצאת במצב DELETING. הגדרת השדה הזה כשהמדיניות לא במצב DELETING גורמת לשגיאה. מידע נוסף מופיע במאמר בנושא ניסיון חוזר להפעלת תכונה.

REST

כדי למחוק מדיניות גלובלית של תוסף, צריך לשלוח בקשת POST ל-method‏ globalVmExtensionPolicies.delete.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/vmExtensionPolicies/POLICY_NAME

{
"retryUuid": "RETRY_UUID",
"predefinedRolloutPlan": "ROLLOUT_PLAN"
}

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

  • POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים למחוק.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ROLLOUT_PLAN: מציינים slow_rollout או fast_rollout.
  • RETRY_UUID: מזהה ייחודי אוניברסלי (UUID) לניסיון חוזר למחיקת מדיניות של תוסף. מגדירים את השדה הזה רק כשמנסים שוב לשלוח בקשת מחיקה של מדיניות קיימת שנמצאת במצב DELETING. הגדרת השדה הזה כשהמדיניות לא במצב DELETING גורמת לשגיאה. מידע נוסף מופיע במאמר בנושא ניסיון חוזר להפעלת תכונה.

אזורי

המסוף

  1. נכנסים לדף VM extension policies במסוף Google Cloud .

    מעבר אל מדיניות התוספים למכונות וירטואליות

  2. בוחרים את המדיניות שרוצים למחוק.
  3. לוחצים על Delete.
  4. בתיבת הדו-שיח לאישור, לוחצים על מחיקה.

gcloud

כדי למחוק מדיניות קיימת של תוסף למכונה וירטואלית, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies delete.

gcloud beta compute zone-vm-extension-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE

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

  • POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים למחוק.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ZONE: Google Cloud האזור שבו נמצאת המדיניות.

REST

כדי למחוק מדיניות של תוסף אזורי, שולחים בקשת DELETE ל-method‏ zoneVmExtensionPolicies.delete.

DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies/POLICY_NAME

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

  • POLICY_NAME: השם של מדיניות התוסף של מכונת ה-VM שרוצים למחוק.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ZONE: Google Cloud האזור שבו נמצאת המדיניות.

פתרון בעיות בתוספים של מכונות וירטואליות

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

איך בודקים אם תוסף מותקן

כדי לוודא שתוסף מותקן, בודקים את הדברים הבאים במכונה הווירטואלית:

  • מתחברים ל-VM ובודקים אם יש תהליכים פעילים.

    בטבלה הבאה מפורטים שמות התהליכים של כל תוסף:

    שם התוסף שם התהליך של התוסף
    google-cloud-sap-extension google_cloud_sap_agent
    google-cloud-workload-extension google_cloud_workload_agent
    ops-agent ops-agent

    Linux

    ps aux | grep 'EXTENSION_PROCESS_NAME'
    מחליפים את EXTENSION_PROCESS_NAME בשם התהליך של התוסף. לדוגמה, כדי לבדוק את התהליך של סוכן תפעול, מריצים את הפקודה הבאה:
    ps aux | grep 'ops-agent'

    Windows

    tasklist | findstr "EXTENSION_PROCESS_NAME"
    מחליפים את EXTENSION_PROCESS_NAME בשם התהליך של התוסף. לדוגמה, כדי לבדוק את התהליך של סוכן תפעול, מריצים את הפקודה הבאה:
    tasklist | findstr "ops-agent"

    הפלט של הפקודה ps במכונת VM של Linux עבור סוכן תפעול עשוי להציג רשומה דומה לזו:

    ....
    /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3
    ....
  • הפעלה ובדיקה של יומנים של סוכני אורחים בקטעי היומן של סוכן האורח מופיעים נתונים על התקנה והפעלה של תוסף.

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

    my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]]
    my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-centrall-a/ops-agent
    my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87
    my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87)
    my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"

פתרון בעיות בהתקנה

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

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

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

      1. מוסיפים תווית חדשה למכונות הווירטואליות שההתקנה שלהן נכשלה. לדוגמה, מוסיפים תווית status=failed.
      2. יוצרים מדיניות עם עדיפות גבוהה יותר שמטרגטת את התווית החדשה. לדוגמה, אם המדיניות המקורית שנכשלה הייתה בעדיפות ברירת המחדל 1000, צריך ליצור מדיניות בעדיפות גבוהה יותר, כמו 500.
        gcloud beta compute zone-vm-extension-policies create temp-policy  
        --project=test-project
        --zone=us-central1-f
        --extensions=ops-agent
        --config-from-file=ops-agent="/usr/ops-agent-config.yaml"
        --priority=500
        --inclusion-labels=status=failed
      3. אחרי שההרחבה מותקנת בהצלחה, צריך למחוק את מדיניות הזמנית ולהסיר את התווית מהמכונות הווירטואליות. התוסף נשאר מותקן כי המדיניות המקורית עדיין פעילה.

צפייה ביומני ניפוי באגים של סוכן האורח

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

Linux

  1. פותחים את קובץ התצורה של סוכן האורח שנמצא במיקום /etc/default/instance_configs.cfg.
  2. מוסיפים את השורות הבאות לקובץ. אם הקטע [Core] כבר קיים, מוסיפים לו את ההגדרות log_level ו-log_verbosity.

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. מפעילים מחדש את מנהל סוכני האורחים באמצעות הפקודה הבאה:

     sudo systemctl restart google-guest-agent-manager
    
  4. כדי להציג את היומנים של פעילות סוכן האורח במהלך התקנת התוסף, מריצים את הפקודה הבאה:

    journalctl -u google-guest-agent-manager
    

Windows

  1. פותחים את קובץ התצורה של סוכן האורח שנמצא במיקום C:\Program Files\Google\Compute Engine\instance_configs.cfg.
  2. מוסיפים את השורות הבאות לקובץ. אם הקטע [Core] כבר קיים, מוסיפים לו את ההגדרות log_level ו-log_verbosity.

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. מפעילים מחדש את מנהל סוכן האורח על ידי הרצת הפקודה הבאה כאדמין ב-Windows:

     net stop GCEAgentManager
     net start GCEAgentManager
    
  4. כדי להציג את היומנים של פעילות הסוכן האורח במהלך התקנת התוסף, מריצים את הפקודה הבאה ב-PowerShell:

    Get-Eventlog -Source google_guest_agent_manager -LogName Application
    

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

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

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