בדף הזה מוסבר איך להגדיר את המספר המקסימלי של מופעים שאפשר להשתמש בהם בשירות Cloud Run באמצעות התנהגות ברירת המחדל של התאמה אוטומטית לעומס ב-Cloud Run. כדי לשנות את קנה המידה של השירות באופן ידני, אפשר לעיין במאמר בנושא שינוי קנה מידה ידני.
הגדרת מספר מקסימלי של מופעים ב-Cloud Run מאפשרת להגביל את שינוי הגודל של השירות בתגובה לבקשות נכנסות, למרות שאפשר לחרוג מההגדרה המקסימלית הזו לתקופה קצרה בגלל נסיבות כמו עליות חדות בתעבורת נתונים.
אתם יכולים להשתמש בהגדרה הזו כדי לשלוט בעלויות או להגביל את מספר החיבורים לשירות גיבוי, כמו מסד נתונים.
למידע על המגבלות המקסימליות על מופעים שעשויות לחול על השירות שלכם, אפשר לעיין במאמר מגבלות מקסימליות על מופעים.
מידע נוסף על האופן שבו Cloud Run משנה את גודל הקונטיינר באופן אוטומטי זמין במאמר שינוי גודל האינסטנס באופן אוטומטי.
החלת מספר מקסימלי של מופעים ברמת השירות לעומת ברמת השינוי
אפשר להגדיר את מספר המופעים המקסימלי ברמת השירות או ברמת העדכון. Google ממליצה להשתמש במכסות של מכונות ברמת השירות כדי להגביל את מספר המכונות של שירות מסוים, אלא אם יש לכם צורך ספציפי להגביל את המכונות ברמת הגרסה. כברירת מחדל, Cloud Run מגדיר 100 מופעים עבור כל גרסה. כדי לאפשר לשירות שלכם להתרחב ליותר מופעים, צריך לשנות את הערך הזה.
כשמחילים את מספר המופעים המקסימלי, ההגדרות נכנסות לתוקף באופן הבא:
- רמת שירות: באופן מיידי
- ברמת הגרסה: עם הפריסה של הגרסה
גרסאות מתויגות ומספר מקסימלי של מופעים ברמת השירות
גרסאות מתויגות מופעלות, אבל הן נספרות רק במסגרת המכסה המקסימלית של מכונות ברמת השירות אם הן חלק מפיצול תנועה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרה ולפריסה של שירותי Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- Cloud Run Developer (
roles/run.developer) בשירות Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
אם אתם פורסים שירות או פונקציה מקוד מקור, אתם צריכים גם לקבל תפקידים נוספים בפרויקט ובחשבון השירות של 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 כשאתהצור שירות חדש אוֹלפרוס גרסה חדשה.
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
אם מגדירים שירות חדש, לוחצים על Deploy container (פריסת מאגר) כדי להציג את הטופס Create service (יצירת שירות). אתר את הטופס קנה מידה של שירותים.
אם אתם מגדירים שירות קיים, לוחצים על השירות כדי להציג את חלונית הפרטים שלו, ואז על הכרטיסייה שינוי גודל.
בקטע Service scaling, מאתרים את השדה Maximum number of instances ומציינים את המספר המקסימלי הנדרש של מופעי קונטיינר, באמצעות ערך של מספר שלם מ-
1עד הגבול המקסימלי האפשרי לשירות. כדי להסיר את המגבלה ברמת השירות, מוחקים את הערך שהגדרתם. הפעולה הזו מחזירה את ההגדרה לברירת המחדל.לוחצים על יצירה כדי ליצור שירות חדש. לוחצים על הצגת ההבדלים ופריסה מחדש ואז על פריסת השינויים בשירות קיים.
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
כל שינוי בהגדרות מוביל ליצירה של גרסה חדשה. גם גרסאות מאוחרות יותר יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
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ועד למגבלה המקסימלית האפשרית עבור השירות שלך. כדי להסיר את המגבלה ברמת השירות, מוחקים את הערך שהגדרתם. הפעולה הזו מחזירה את ההגדרה לברירת המחדל.
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
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:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות כדי לפתוח את החלונית פרטי השירות.
לוחצים על הכרטיסייה שינוי גודל כדי לראות את ההגדרה הנוכחית.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מחפשים את הערך של Scaling: Auto (Min: MIN_VALUE, Max: MAX_VALUE) בהגדרה שמוחזרת.
הגדרת מופעים מקסימליים ברמת גרסה
כל שינוי בהגדרות מוביל ליצירה של גרסה חדשה. גם גרסאות מאוחרות יותר יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
כברירת מחדל, הגרסאות של Cloud Run מוגדרות להרחבה עד למקסימום של 100 מכונות.
התכונה 'שינוי קנה מידה ברמת הגרסה' זמינה רק לשירותים שהתכונה הזו הוגדרה בהם בעבר.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Containers, Networking, Security (מאגרי נתונים, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
אם אתם מגדירים שירות קיים, לוחצים על הכרטיסייה התאמת גודל.
בקטע Revision scaling (שינוי קנה מידה של עדכון), מציינים את המספר המקסימלי של מופעי קונטיינר בשדה Maximum number of instances (מספר המופעים המקסימלי).
לוחצים על יצירה כדי ליצור שירות חדש. לוחצים על הצגת ההבדלים ופריסה מחדש ואז על פריסת השינויים בשירות קיים.
gcloud
אפשר לעדכן את המספר המקסימלי של מופעים של שירות מסוים באמצעות הפקודה הבאה:
gcloud run services update SERVICE --max-instances MAX-VALUE
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של השירות.
- MAX-VALUE: המספר המקסימלי הנדרש של מופעי מאגר התגים, באמצעות כל ערך של מספר שלם מ-
1עד המגבלה המקסימלית.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
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 תווים
- מתחיל ב-
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
אם קיים קובץ
service.yaml, הפקודהgcloud run services replaceמשתמשת בו כברירת מחדל.
צפייה בהגדרות המקסימליות של המופעים ברמת השינוי
התכונה 'שינוי קנה מידה ברמת הגרסה' זמינה רק לשירותים שהתכונה הזו הוגדרה בהם בעבר.
כדי להציג את הגדרות המופעים המרביות הנוכחיות ברמת הגרסה עבור שירות Cloud Run שלך:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות כדי לפתוח את החלונית פרטי השירות.
לוחצים על הכרטיסייה התאמה.
תחת קנה מידה של גרסאות, הצג את מספר המופעים המרבי.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מחפשים את הערך של Max instances: (מספר מקסימלי של מופעים) בהגדרה שהוחזרה.
שימוש במינימום או במקסימום מופעים ברמת השירות וברמת הגרסה
הטבלה הבאה מציגה את ההתנהגות אם משלבים מופעים מקסימליים ברמת השירות עם מופעים מינימליים או מקסימליים ברמת גרסה:
| הגדרה ברמת השירות | הגדרה ברמת השינוי | התנהגות |
|---|---|---|
| הוגדר מספר מקסימלי של מופעים ברמת השירות | הוגדר מספר מקסימלי של מופעים ברמת השינוי | מגבלת המופעים המקסימלית האפקטיבית היא הערך הנמוך יותר בין מקסימום המופעים ברמת הגרסה למקסימום המופעים ברמת השירות. |
| הוגדר מספר מקסימלי של מופעים ברמת השירות | הוגדר מספר מינימלי של מופעים ברמת הגרסה | אם הערך של המופעים המקסימליים ברמת השירות נמוך מהערך של המופעים המינימליים ברמת התיקון, התיקון יתחיל מופעים עד למספר המופעים המקסימלי ברמת השירות, ולא יגיע למספר המופעים המינימלי ברמת התיקון שהוגדר. |
שימוש במספר מקסימלי של מופעים ברמת השירות עם פיצול תנועה
אם משתמשים בפיצול תנועה, מספר המופעים המקסימלי ברמת השירות יחולק על פני הגרסאות בהתבסס על שיעור פיצול התנועה. לדוגמה, אם הערך של service-level maximum instances = 100, חלוקת תנועה של 50/50 מקצה 50 מופעים של service-level maximum לכל עדכון. בטבלה הבאה מוצג תרחיש לדוגמה של הגדרה:
| הגדרה לדוגמה | התנהגות כתוצאה מכך |
|---|---|
מספר מקסימלי של מופעים שמוגדר ברמת השירות (תרחיש שבו אין הגדרות ברמת הגרסה): 100
|
חלק ממספר המופעים המקסימלי ברמת השירות מוקצה לכל גרסה. מספר המופעים המקסימלי האפקטיבי עבור כל גרסה קבוע בהתבסס על חלוקת התעבורה. מספר המופעים המקסימלי לגרסה A הוא 10, לגרסה B הוא 10 ולגרסה C הוא 80. |