בדף הזה מוסבר איך להגדיר את המספר המקסימלי של מופעים שאפשר להשתמש בהם בשירות 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 , 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 מכונות.
אפשר לשנות את ההגדרה של מספר המופעים המקסימלי באמצעות מסוף Google Cloud , Google Cloud CLI או קובץ YAML כשיוצרים שירות חדש או פורסים עדכון חדש.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
מוצאים את השירות שרוצים לעדכן ברשימת השירותים ולוחצים עליו כדי לפתוח את הפרטים שלו.
לוחצים על עריכה ופריסת גרסה חדשה כדי להציג את טופס הפריסה של הגרסה.
לוחצים על הכרטיסייה מאגר תגים.
מאתרים את הקטע שינוי קנה מידה של הגרסה. בשדה 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 :
לוחצים על השירות כדי לפתוח את החלונית פרטי השירות.
לוחצים על הכרטיסייה עדכונים.
בחלונית הפרטים שמשמאל, מעיינים בהגדרה Revision max. instances שמופיעה בכרטיסייה Container.
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. |