הגדרת מספר מופעים מקסימלי לשירותים

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

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

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

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

מידע נוסף על האופן שבו Cloud Run משנה את גודל הקונטיינר באופן אוטומטי זמין במאמר שינוי גודל האינסטנס באופן אוטומטי.

החלת מספר מקסימלי של מופעים ברמת השירות לעומת ברמת השינוי

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

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

  • רמת שירות: באופן מיידי
  • ברמת הגרסה: עם הפריסה של הגרסה

גרסאות מתויגות ומספר מקסימלי של מופעים ברמת השירות

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

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להגדרה ולפריסה של שירותי Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

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

רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם שירות Cloud Run שלכם מתקשר עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.

שיקולי עלות

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

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

הגדרת מספר מקסימלי של מופעים ברמת השירות

ניתן לשנות את הגדרת מספר המופעים המרבי באמצעות Google Cloud קונסולה, ממשק שורת פקודה (CLI) של גוגל קלאוד, YAML או Terraform כשאתהצור שירות חדש אוֹלפרוס גרסה חדשה.

המסוף

  1. נכנסים לדף Services של Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. אם מגדירים שירות חדש, לוחצים על Deploy container (פריסת מאגר) כדי להציג את הטופס Create service (יצירת שירות). אתר את הטופס קנה מידה של שירותים.

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

  4. בקטע Service scaling, מאתרים את השדה Maximum number of instances ומציינים את המספר המקסימלי הנדרש של מופעי קונטיינר, באמצעות ערך של מספר שלם מ-1 עד הגבול המקסימלי האפשרי לשירות. כדי להסיר את המגבלה ברמת השירות, מוחקים את הערך שהגדרתם. הפעולה הזו מחזירה את ההגדרה לברירת המחדל.

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

gcloud

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

gcloud run services update SERVICE --max MAX-VALUE

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

  • SERVICE: השם של השירות.
  • MAX-VALUE: המספר המרבי הנדרש של מופעי קונטיינרים, תוך שימוש בכל ערך שלם מ-1 ועד למגבלה המקסימלית האפשרית עבור השירות שלך. כדי להסיר את המגבלה ברמת השירות, מוחקים את הערך שהגדרתם. הפעולה הזו מחזירה את ההגדרה לברירת המחדל.

אפשר גם להגדיר את המספר המקסימלי של מופעים במהלך הפריסה באמצעות הפקודה הבאה:

gcloud run deploy --image IMAGE_URL --max MAX-VALUE

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

  • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • MAX-VALUE: המספר המקסימלי הנדרש של מופעי מאגר התגים, באמצעות כל ערך של מספר שלם מ-1 עד המגבלה המקסימלית.

YAML

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

  1. אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:

    gcloud run services describe SERVICE --format export > service.yaml
  2. מעדכנים את המאפיין run.googleapis.com/maxScale::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/maxScale: 'MAX-INSTANCE'

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

    • SERVICE: השם של שירות Cloud Run
    • MAX-INSTANCE: המספר המרבי הנדרש של מופעי קונטיינרים, תוך שימוש בכל ערך שלם מ-1 ועד למגבלה המקסימלית האפשרית עבור השירות שלך. כדי להסיר את המגבלה ברמת השירות, מוחקים את הערך שהגדרתם. הפעולה הזו מחזירה את ההגדרה לברירת המחדל.
  3. יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

    אם קיים קובץ service.yaml, הפקודה gcloud run services replace משתמשת בו כברירת מחדל.

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

מוסיפים את השורות הבאות למשאב google_cloud_run_v2_service בתצורת Terraform:
resource "google_cloud_run_v2_service" "default" {
name     = "SERVICE"
location = "REGION"

scaling {
  max_instance_count = MAX_INSTANCE
}

template {
  containers {
    image = "IMAGE_URL"
  }
}
}

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

  • SERVICE: השם של שירות Cloud Run.
  • REGION: האזור Google Cloud . לדוגמה, europe-west1.
  • MAX_INSTANCE: המספר המקסימלי הנדרש של מופעי מאגר התגים, באמצעות כל ערך של מספר שלם מ-1 עד המגבלה המקסימלית.
  • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

הצגת מספר האירועים המקסימלי ברמת השירות

כדי לראות את ההגדרות הנוכחיות של מספר המופעים המקסימלי ברמת השירות בשירות Cloud Run:

המסוף

  1. נכנסים לדף Services של Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. לוחצים על השירות כדי לפתוח את החלונית פרטי השירות.

  3. לוחצים על הכרטיסייה שינוי גודל כדי לראות את ההגדרה הנוכחית.

gcloud

  1. משתמשים בפקודה הבאה:

    gcloud run services describe SERVICE
  2. מחפשים את הערך של Scaling: Auto (Min: MIN_VALUE, Max: MAX_VALUE) בהגדרה שמוחזרת.

הגדרת מופעים מקסימליים ברמת גרסה

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

כברירת מחדל, הגרסאות של Cloud Run מוגדרות להרחבה עד למקסימום של 100 מכונות.

התכונה 'שינוי קנה מידה ברמת הגרסה' זמינה רק לשירותים שהתכונה הזו הוגדרה בהם בעבר.

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות.

  3. אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Containers, Networking, Security (מאגרי נתונים, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.

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

  5. בקטע Revision scaling (שינוי קנה מידה של עדכון), מציינים את המספר המקסימלי של מופעי קונטיינר בשדה Maximum number of instances (מספר המופעים המקסימלי).

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

gcloud

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

gcloud run services update SERVICE --max-instances MAX-VALUE

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

  • SERVICE: השם של השירות.
  • MAX-VALUE: המספר המקסימלי הנדרש של מופעי מאגר התגים, באמצעות כל ערך של מספר שלם מ-1 עד המגבלה המקסימלית.

YAML

  1. אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:

    gcloud run services describe SERVICE --format export > service.yaml
  2. מעדכנים את המאפיין autoscaling.knative.dev/maxScale::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: 'MAX-INSTANCE'
          name: REVISION

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

    • SERVICE: השם של שירות Cloud Run
    • MAX-INSTANCE: המספר המקסימלי הנדרש של מופעי מאגר התגים, באמצעות כל ערך של מספר שלם מ-1 עד המגבלה המקסימלית.
    • REVISION: שם חדש לגרסה או מחיקה של השם (אם קיים). אם מספקים שם חדש לגרסה, חובה שהוא יעמוד בקריטריונים הבאים:
      • מתחיל ב-SERVICE-
      • מכיל רק אותיות קטנות, מספרים ו-
      • לא מסתיים ב--
      • לא חורג מ-63 תווים
  3. יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

    אם קיים קובץ service.yaml, הפקודה gcloud run services replace משתמשת בו כברירת מחדל.

צפייה בהגדרות המקסימליות של המופעים ברמת השינוי

התכונה 'שינוי קנה מידה ברמת הגרסה' זמינה רק לשירותים שהתכונה הזו הוגדרה בהם בעבר.

כדי להציג את הגדרות המופעים המרביות הנוכחיות ברמת הגרסה עבור שירות Cloud Run שלך:

המסוף

  1. נכנסים לדף Services של Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. לוחצים על השירות כדי לפתוח את החלונית פרטי השירות.

  3. לוחצים על הכרטיסייה התאמה.

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

gcloud

  1. משתמשים בפקודה הבאה:

    gcloud run services describe SERVICE
  2. מחפשים את הערך של Max instances:‎ (מספר מקסימלי של מופעים) בהגדרה שהוחזרה.

שימוש במינימום או במקסימום מופעים ברמת השירות וברמת הגרסה

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

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

שימוש במספר מקסימלי של מופעים ברמת השירות עם פיצול תנועה

אם משתמשים בפיצול תנועה, מספר המופעים המקסימלי ברמת השירות יחולק על פני הגרסאות בהתבסס על שיעור פיצול התנועה. לדוגמה, אם הערך של service-level maximum instances = 100, חלוקת תנועה של 50/50 מקצה 50 מופעים של service-level maximum לכל עדכון. בטבלה הבאה מוצג תרחיש לדוגמה של הגדרה:

הגדרה לדוגמה התנהגות כתוצאה מכך
מספר מקסימלי של מופעים שמוגדר ברמת השירות (תרחיש שבו אין הגדרות ברמת הגרסה): 100
  • חלוקת התנועה לגרסה א': 10%
  • חלוקת תנועה עבור גרסה B: 10%
  • חלוקת התנועה לגרסה C‏ : 80%
חלק ממספר המופעים המקסימלי ברמת השירות מוקצה לכל גרסה. מספר המופעים המקסימלי האפקטיבי עבור כל גרסה קבוע בהתבסס על חלוקת התעבורה. מספר המופעים המקסימלי לגרסה A הוא 10, לגרסה B הוא 10 ולגרסה C הוא 80.