בדף הזה מוסבר איך להגדיר את המספר המקסימלי של מופעים שאפשר להשתמש בהם בשירות Cloud Run באמצעות התנהגות ברירת המחדל של התאמה אוטומטית לעומס ב-Cloud Run. כדי לשנות את קנה המידה של השירות באופן ידני, אפשר לעיין במאמר בנושא שינוי קנה מידה ידני.
הגדרה של מספר מקסימלי של מופעים ב-Cloud Run מאפשרת להגביל את קנה המידה של השירות בתגובה לבקשות נכנסות, למרות שאפשר לחרוג מההגדרה המקסימלית הזו לתקופה קצרה בגלל נסיבות כמו עליות חדות בתעבורת נתונים.
אתם יכולים להשתמש בהגדרה הזו כדי לשלוט בעלויות או להגביל את מספר החיבורים לשירות גיבוי, כמו מסד נתונים.
למידע על המגבלות המקסימליות על מופעים שעשויות לחול על השירות שלכם, אפשר לעיין במאמר מגבלות מקסימליות על מופעים.
מידע נוסף על האופן שבו Cloud Run מבצע התאמה אוטומטית לעומס של מופעי קונטיינרים זמין במאמר התאמה אוטומטית לעומס של מופעים.
החלת מספר מקסימלי של מופעים ברמת השירות לעומת ברמת הגרסה
אפשר להגדיר את מספר המופעים המקסימלי ברמת השירות או ברמת העדכון. Google ממליצה להשתמש במכסות של מכסות מקסימליות ברמת השירות, אלא אם יש לכם צורך ספציפי להגביל את המכסות ברמת השינוי.
כשמחילים את מספר המופעים המקסימלי, ההגדרות נכנסות לתוקף באופן הבא:
- ברמת השירות: באופן מיידי
- ברמת הגרסה: עם הפריסה של הגרסה
גרסאות מתויגות ומספר מקסימלי של מופעים ברמת השירות
גרסאות מתויגות מופעלות, אבל הן נספרות רק במסגרת המכסה המקסימלית של המכונות ברמת השירות אם הן חלק מחלוקת התנועה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרה ולפריסה של שירותי 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 כשיוצרים שירות חדש או פורסים עדכון חדש.
המסוף
במסוף Google Cloud , נכנסים לדף Services של Cloud Run:
אם אתם מגדירים שירות חדש, לוחצים על Deploy container (פריסת מאגר) כדי להציג את הטופס Create service (יצירת שירות). מחפשים את הטופס Service scaling (שינוי גודל השירות).
אם אתם מגדירים שירות קיים, לוחצים על השירות כדי להציג את חלונית הפרטים שלו, ואז לוחצים על עריכת הגדרות ההתאמה של רמת השירות בפינה השמאלית העליונה של חלונית הפרטים.
בשדה Maximum number of instances (מספר המכונות המקסימלי), מציינים את המספר המקסימלי הנדרש של מופעי קונטיינר, באמצעות ערך שלם כלשהו מ-
1עד המגבלה המקסימלית האפשרית לשירות. כדי להשבית את המכסה המקסימלית של מופעים ברמת השירות, צריך למחוק את כל הערכים שהגדרתם בשדה מספר מקסימלי של מופעים.לוחצים על יצירה כדי ליצור שירות חדש או על פריסה כדי לפרוס שירות קיים.
gcloud
אפשר לעדכן את המספר המקסימלי של מופעים של שירות מסוים באמצעות הפקודה הבאה:
gcloud run services update SERVICE --max MAX-VALUE
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של השירות.
- MAX-VALUE: המספר המקסימלי הנדרש של מופעי מאגר, באמצעות כל ערך של מספר שלם מ-
1עד המגבלה המקסימלית האפשרית לשירות שלכם. כדי להשבית את המכסה המקסימלית של מופעים ברמת השירות, מגדירים את הערך הזה ל-0.
אפשר גם להגדיר את המספר המקסימלי של מופעים במהלך הפריסה באמצעות הפקודה הבאה:
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עד המגבלה המקסימלית האפשרית לשירות שלכם. כדי להשבית את המכסות המקסימליות של מופעים ברמת השירות, מגדירים את הערך הזה ל-0.
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
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:
המסוף
במסוף Google Cloud , נכנסים לדף Services של Cloud Run:
לוחצים על השירות כדי לפתוח את החלונית פרטי השירות.
ההגדרה הנוכחית מוצגת בפינה השמאלית העליונה של חלונית פרטי השירות, לצד התאמה.
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 :
מוצאים את השירות שרוצים לעדכן ברשימת השירותים ולוחצים עליו כדי לפתוח את הפרטים שלו.
לוחצים על עריכה ופריסת גרסה חדשה כדי להציג את טופס הפריסה של הגרסה.
לוחצים על הכרטיסייה מאגר תגים.
מחפשים את הקטע 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
הצגת הגדרות מקסימום המופעים ברמת הגרסה
כדי לראות את ההגדרות הנוכחיות של מספר המופעים המקסימלי ברמת התיקון בשירות Cloud Run:
המסוף
במסוף Google Cloud , נכנסים לדף Services של Cloud Run:
לוחצים על השירות כדי לפתוח את החלונית פרטי השירות.
לוחצים על הכרטיסייה עדכונים.
בחלונית הפרטים בצד שמאל, רואים את ההגדרה 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. |