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

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

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

התפקידים שצריך ב-IAM

כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות הרחבות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ VM Extension Policy Admin (אדמין של מדיניות הרחבות למכונות וירטואליות) (roles/compute.vmExtensionPolicyAdmin). כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה כולל את ההרשאה compute.vmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות הרשאות לתוספים.

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

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

קדימות של מדיניות ופתרון סכסוכים

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

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

יצירת מדיניות גלובלית של תוספי VM

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

אפשר להשתמש ב-gcloud או בשיטה globalVmExtensionPolicies.insert כדי ליצור כללי מדיניות גלובליים לתוספים.

מגבלות

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

מידע על תוכניות השקה

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

תוכניות השקה מוגדרות מראש

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

תוכניות השקה בהתאמה אישית

אתם יכולים ליצור תוכניות פריסה בהתאמה אישית באמצעות שיטת rolloutPlans.insert. לדוגמה, קובץ ה-JSON הבא מגדיר תוכנית השקה בשם test-rollout-plan שמיועדת לשני אזורים:

{
  "name": "test-rollout-plan",
  "waves": [
    {
      "selectors": [
        {
          "locationSelector": {
            "includedLocations": [
              "us-central1-a",
              "us-west1-a"
            ]
          }
        }
      ],
      "validation": {
        "type": "time",
        "timeBasedValidationMetadata": {
          "waitDuration": "0s"
        }
      },
      "orchestrationOptions": {
        "maxConcurrentResourcesPerLocation": "10",
        "maxConcurrentLocations": "10"
      }
    }
  ]
}

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

יצירת מדיניות גלובלית

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

gcloud

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

gcloud beta compute global-vm-extension-policies create POLICY_NAME \
  --description="DESCRIPTION" \
  --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
  --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 \
  --rollout-predefined-plan=ROLLOUT_PLAN \
  --rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIOR

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

  • POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • DESCRIPTION: תיאור אופציונלי של המדיניות.
  • EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים להוספה למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקפים לתוספים הם:
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: רשימה מופרדת בפסיקים של זוגות של מפתח וערך, כאשר המפתח הוא שם התוסף והערך הוא גרסת התוסף. אם לא מציינים גרסה של תוסף, VM Extension Manager משתמש בגרסה הזמינה האחרונה ומשדרג אותה אוטומטית כשגרסאות חדשות הופכות לזמינות.

  • 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: מספר שלם שמגדיר את העדיפות של המדיניות. מספרים גדולים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000. אם לכמה כללי מדיניות יש את אותה עדיפות, כלל המדיניות שעודכן לאחרונה יחול על המכונות הווירטואליות.

  • 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.

דוגמה 1

הפקודה הבאה יוצרת מדיניות בשם global-test-extension-policy שמתקינה את התוסף ops-agent לפרויקט test-project. הדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML לסוכן תפעול, והדגל --rollout-predefined-plan מציין את תוכנית slow_rollout.

gcloud beta compute global-vm-extension-policies create global-test-extension-policy \
    --project=test-project \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
    --rollout-predefined-plan=slow_rollout

דוגמה 2

הפקודה הבאה יוצרת מדיניות בשם global-test-extension-policy-2 שמתקינה את התוסף ops-agent לפרויקט test-project במכונות וירטואליות עם התווית env=prod. עדיפות המדיניות מוגדרת ל-500, והדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML עבור סוכן תפעול. הדגל --rollout-custom-plan מציין תוכנית פריסה בהתאמה אישית.

 gcloud beta compute global-vm-extension-policies create global-test-extension-policy-2 \
    --project=test-project \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
    --priority=500 \
    --inclusion-labels=env=prod \
    --rollout-custom-plan=projects/12345678/locations/global/rolloutPlans/test-rollout-plan

REST

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

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

{
  "name": "POLICY_NAME",
  "description": "DESCRIPTION",
  "extensionPolicies": {
     "EXTENSION_NAME_1": {
       "stringConfig": "EXTENSION_NAME_1_CONFIG",
       "pinnedVersion": "EXTENSION_NAME_1_VERSION"
    },
     "EXTENSION_NAME_2": {
       "stringConfig": "EXTENSION_NAME_2_CONFIG",
       "pinnedVersion": "EXTENSION_NAME_2_VERSION"
    }
  },
  "instanceSelectors": [
    {
      "labelSelector": {
         "inclusionLabels": {
           "KEY_1": "VALUE_1"
         }
      }
    }
  ],
  "priority": "PRIORITY",
  "rolloutOperation": {
    "rolloutInput": {
      "conflictBehavior": "ROLLOUT_CONFLICT_BEHAVIOR",
      "name": "projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME"
    }
  }
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • DESCRIPTION: תיאור אופציונלי של המדיניות.
  • EXTENSION_NAME_1, EXTENSION_NAME_2: השם של התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקינים לתוספים הם:
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1_CONFIG, EXTENSION_NAME_2_CONFIG: ההגדרה של התוסף, מסופקת כמחרוזת מוטבעת.
  • EXTENSION_NAME_1_VERSION, ‏ EXTENSION_NAME_2_VERSION: גרסת התוסף. אם לא מציינים גרסה לתוסף, VM Extension Manager משתמש בגרסה הזמינה האחרונה ומשדרג אותה אוטומטית כשגרסאות חדשות הופכות לזמינות.

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

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

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

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

      לפרטים נוספים, אפשר לקרוא על הדגל --rollout-conflict-behavior.

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

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

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

דוגמה

בדוגמה הבאה נוצרת מדיניות בשם global-test-extension-policy שמתקינה את התוסף ops-agent לפרויקט 12345678 במכונות וירטואליות עם התווית env=prod. עדיפות המדיניות מוגדרת כ-500, והיא משתמשת בתוכנית ההשקה test-rollout-plan.

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

{
  "name": "global-test-extension-policy",
  "description": "Test extension policy for Ops Agent",
  "extensionPolicies": {
     "ops-agent": {
       "stringConfig": "logging:
        receivers:
          systemd_logs:
            type: systemd_journald
        service:
          pipelines:
            systemd_pipeline:
              receivers: [systemd_logs]",
       "pinnedVersion": "2.58.0"
        },
  "instanceSelectors": [
    {
      "labelSelector": {
         "inclusionLabels": {
         "env": "prod"
         }
      }
    }
  ],
  "priority": "500",
  "rolloutOperation": {
    "rolloutInput": {
      "name": "projects/12345678/locations/global/rolloutPlans/test-rollout-plan"
    }
  }
}

יצירת מדיניות של תוספי VM אזוריים

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

המסוף

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

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

  2. לוחצים על יצירת מדיניות לגבי תוספים.
  3. בשדה Name, מזינים שם למדיניות.
  4. אופציונלי: בשדה תיאור, מזינים תיאור למדיניות.
  5. בשדה עדיפות, מציינים מספר עדיפות כדי לפתור סתירות בין כללי מדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000.
  6. ברשימה Zone, בוחרים את התחום שבו רוצים להחיל את המדיניות הזו.
  7. בקטע Extensions (תוספים), לוחצים על Add extension (הוספת תוסף) ומבצעים את הפעולות הבאות עבור כל תוסף שרוצים להתקין במכונות הווירטואליות של היעד:
    1. ברשימה Extension, בוחרים תוסף. מידע נוסף על תוספים נתמכים
    2. ברשימה Version, מציינים את מספר הגרסה של התוסף. משאירים את השדה ריק כדי לבחור את הגרסה האחרונה.
      • ב-Ops Agent, אפשר לציין גרסה 2.58.0 ומעלה.
      • במקרה של Extension for SAP ו-Extension for Compute workloads, משאירים את השדה ריק כדי לבחור את הגרסה האחרונה.
    3. אופציונלי: בשדה Config file content (תוכן קובץ תצורה), מזינים פרמטרים של תצורה לתוסף.
  8. בקטע Target VM instances (מכונות וירטואליות ליעד), בוחרים את המכונות הווירטואליות שרוצים להחיל עליהן את המדיניות. כדי לבחור מכונות וירטואליות עם תוויות ספציפיות, לוחצים על הוספת תוויות ומוסיפים את צמד המפתח/ערך.
  9. לוחצים על יצירה.

gcloud

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

gcloud compute zone-vm-extension-policies create POLICY_NAME \
    --zone=ZONE \
    --description="DESCRIPTION" \
    --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
    --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

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

  • POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • ZONE: האזור שבו המדיניות הזו חלה.
  • DESCRIPTION: תיאור אופציונלי של המדיניות.
  • EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים להוספה למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקפים לתוספים הם:
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: רשימה מופרדת בפסיקים של זוגות של מפתח וערך, כאשר המפתח הוא שם התוסף והערך הוא גרסת התוסף. אם לא מציינים גרסה של תוסף, VM Extension Manager משתמש בגרסה הזמינה האחרונה ומשדרג אותה אוטומטית כשגרסאות חדשות הופכות לזמינות.

  • 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: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000.

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

דוגמה 1

הפקודה הבאה יוצרת מדיניות בשם test-extension-policy שמתקינה את התוסף ops-agent באזור us-central1-f עבור הפרויקט test-project. הדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML עבור סוכן תפעול.

gcloud compute zone-vm-extension-policies create test-extension-policy \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml"

דוגמה 2

הפקודה הבאה יוצרת מדיניות בשם test-extension-policy-2 שמתקינה את התוסף ops-agent באזור us-central1-f לפרויקט test-project במכונות וירטואליות עם התווית env=prod. עדיפות המדיניות מוגדרת ל-500, והדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML עבור סוכן תפעול.

gcloud compute zone-vm-extension-policies create test-extension-policy-2 \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
    --priority=500 \
    --inclusion-labels=env=prod

REST

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies

{
  "name": "POLICY_NAME",
  "description": "DESCRIPTION",
  "extensionPolicies": {
     "EXTENSION_NAME_1": {
       "stringConfig": "EXTENSION_NAME_1_CONFIG"
       "pinnedVersion": "EXTENSION_NAME_1_VERSION"
    },
     "EXTENSION_NAME_2": {
       "stringConfig": "EXTENSION_NAME_2_CONFIG"
       "pinnedVersion": "EXTENSION_NAME_2_VERSION"
    },
  "instanceSelectors": [
    {
      "labelSelector": {
         "inclusionLabels": {
         "KEY_1": "VALUE_1"
         }
      }
    }
  ],
  "priority": "PRIORITY"
}
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור שבו המדיניות הזו חלה.
  • POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • DESCRIPTION: תיאור אופציונלי של המדיניות.
  • EXTENSION_NAME_1, EXTENSION_NAME_2: השם של התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקינים לתוספים הם:
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1_VERSION, ‏ EXTENSION_NAME_2_VERSION: גרסת התוסף. אם לא מציינים גרסה לתוסף, VM Extension Manager משתמש בגרסה הזמינה האחרונה ומשדרג אותה אוטומטית כשגרסאות חדשות הופכות לזמינות.

  • EXTENSION_NAME_1_CONFIG, EXTENSION_NAME_2_CONFIG: ההגדרה של התוסף, מסופקת כמחרוזת מוטבעת.

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

  • PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000.

דוגמה

בדוגמה הבאה נוצרת מדיניות בשם test-extension-policy שמתקינה את התוסף ops-agent באזור us-central1-f עבור my-project.

POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/vmExtensionPolicies

{
  "name": "test-extension-policy",
  "description": "Test extension policy for Ops Agent",
  "extensionPolicies": {
     "ops-agent": {
       "stringConfig": "logging:
        receivers:
          systemd_logs:
            type: systemd_journald
        service:
          pipelines:
            systemd_pipeline:
              receivers: [systemd_logs]",
       "pinnedVersion": "2.58.0"
        },
  "instanceSelectors": [
    {
      "labelSelector": {
         "inclusionLabels": {
         "env": "test"
         }
      }
    }
  ],
  "priority": "500"
}
}

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