מאגרי עובדים מטפלים בעומסי עבודה שלא קשורים לבקשות. בתרחישי שימוש שבהם צריך לפצל עבודה בין כמה עדכונים, כמו פריסת עדכון חדש, מאגרי עובדים משתמשים בפיצול מופעים.
ב-Cloud Run אפשר לציין אילו גרסאות יקבלו מופעים, ולציין את אחוזי הקצאת המופעים לכל גרסה. התכונה הזו מאפשרת לחזור לגרסה קודמת, לפצל מופעים בין כמה גרסאות ולהקצות מופעים לגרסה האחרונה. בדף הזה מוסבר איך משתמשים בתכונה הזו כדי לנהל את הקצאת המופעים לגרסאות של Cloud Run.
ההתאמות בהקצאת המופעים לא מתבצעות באופן מיידי. כשמשנים את הקצאת המופעים לגרסאות, כל הבקשות שנמצאות בעיבוד ממשיכות עד לסיום. בקשות פעילות לא נפסלות, ויכול להיות ש-Cloud Run יפנה את הבקשות האלה לגרסה חדשה או לגרסה קודמת במהלך תקופת המעבר.
מחזור החיים של פיצולי מופעים
אם מפצלים מופעים בין כמה עדכונים או מקצים מופעים לעדכון קודם, כל הפריסות הבאות ישתמשו בדפוס פיצול המופעים הזה. כדי לחזור לשימוש רק בגרסה האחרונה בלי לפצל את המופעים, שולחים את כל המופעים לגרסה האחרונה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לניהול מאגרי עובדים של Cloud Run ועדכונים של מאגרי עובדים, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Cloud Run Developer (roles/run.developer) במאגר העובדים של Cloud Run.
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר העובדים של Cloud Run מתקשר עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
חזרה לגרסה קודמת
כדי לחזור לגרסה קודמת, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
המסוף
במסוף Google Cloud , עוברים אל Cloud Run worker pools:
מאתרים את מאגר העובדים ברשימה ולוחצים עליו.
לוחצים על הכרטיסייה Revisions (עדכונים) כדי להציג את רשימת העדכונים הנוכחיים של מאגר העובדים הזה.
לוחצים על ניהול פיצולים של מופעים כדי להציג את הטופס לניהול מופעים. ב-Cloud Run מפורטת הגרסה האחרונה שמוצגת. בטופס, מגדירים את הפרטים הבאים:
- לוחצים על הוספת שינוי ומשתמשים בתפריט הנפתח כדי לבחור שינוי קודם.
- מגדירים את אחוז המקרים של הגרסה הקודמת ל-100.
- מגדירים את אחוז התנועה של הגרסה האחרונה להצגה ל-0.
- לוחצים על Save.
gcloud
מריצים את הפקודה הבאה כדי לציין את הגרסאות שאליהן רוצים לחזור.
gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=REVISION=100
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים.
- REVISION: השם של הגרסה שאליה רוצים לחזור.
YAML
אם אתם יוצרים מאגר חדש של עובדים, דלגו על השלב הזה. אם אתם מעדכנים מאגר עובדים קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
בדוגמה הבאה מופיעה הגדרת ה-YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - revisionName: REVISION percent: 100מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים.
- REGION: האזור Google Cloud . לדוגמה:
us-central1. - IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל
us-docker.pkg.dev/cloudrun/container/worker-pool:latest - REVISION: השם של הגרסה שאליה רוצים לחזור.
יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:
gcloud run worker-pools replace workerpool.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
import {
id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
to = google_cloud_run_v2_worker_pool.default
}
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION"
percent = 100
}
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: האזור Google Cloud . לדוגמה:
us-central1. - WORKER_POOL: השם של מאגר העובדים.
- IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל
us-docker.pkg.dev/cloudrun/container/worker-pool:latest - REVISION: השם של הגרסה שאליה רוצים לחזור.
פיצול מופעים בין כמה גרסאות
כדי לפצל את המופעים בין שתי גרסאות או יותר, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
כשמפצלים מופעים בין כמה עדכונים, צריך לוודא שהסכום הכולל של האחוזים בכל העדכונים שווה ל-100%, ומספר המופעים הידניים צריך להיות גדול ממספר פיצולי המופעים שמשרתים את עומס העבודה.
המסוף
במסוף Google Cloud , עוברים אל Cloud Run worker pools:
מאתרים את מאגר העובדים ברשימה ולוחצים עליו.
לוחצים על הכרטיסייה Revisions (גרסאות) כדי להציג את רשימת הגרסאות הנוכחיות של מאגר העובדים הזה.
לוחצים על ניהול פיצולים של מופעים כדי להציג את הטופס לניהול מופעים. ב-Cloud Run מפורטת הגרסה האחרונה שמוצגת. בטופס, מגדירים את הפרטים הבאים:
מגדירים את אחוז החלוקה של הגרסה האחרונה שמוצגת לערך הנדרש, לדוגמה, מקטינים אותו מ-100%.
לוחצים על הוספת גרסה ומשתמשים בתפריט הנפתח כדי לבחור גרסה קודמת ולהגדיר את אחוז החלוקה התואם.
כדי לפצל מופעים עם עדכונים נוספים, לוחצים על הוספת עדכון, בוחרים עדכון נוסף ומגדירים את אחוז החשיפה שלו.
לוחצים על Save.
gcloud
מריצים את הפקודה הבאה כדי לציין את הגרסאות ואת אחוז המקרים. הקצאת מופעים לכל עדכון ברשימה מופרדת בפסיקים:
gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LIST
מחליפים את מה שכתוב בשדות הבאים:
WORKER_POOL: השם של מאגר העובדים.
LIST: רשימה של עדכונים ואחוזים שמופרדת בפסיקים:
REVISION1=PERCENTAGE1,REVISION2=PERCENTAGE2,REVISIONn=PERCENTAGEx.
לדוגמה,
my-worker-pool-s5sxn=10,my-worker-pool-cp9kw=90.
YAML
אם אתם יוצרים מאגר חדש של עובדים, דלגו על השלב הזה. אם אתם מעדכנים מאגר עובדים קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
בדוגמה הבאה מופיעה הגדרת ה-YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/scalingMode: manual spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - revisionName: REVISION1 percent: PERCENTAGE1 - revisionName: REVISION2 percent: PERCENTAGE2מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים.
- REGION: האזור Google Cloud . לדוגמה:
us-central1. - INSTANCE_COUNT: מספר המופעים.
- IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל
us-docker.pkg.dev/cloudrun/container/worker-pool:latest - REVISION1 ו-REVISION2: השם של הגרסאות.
- PERCENTAGE1 ו-PERCENTAGE2: אחוז המקרים להקצאה לכל אחת מהגרסאות האלה. הסכום של האחוזים האלה צריך להיות 100.
יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:
gcloud run worker-pools replace workerpool.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
import {
id = "projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL"
to = google_cloud_run_v2_worker_pool.default
}
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION1"
percent = PERCENTAGE1
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION"
revision = "REVISION2"
percent = PERCENTAGE2
}
}
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- REGION: האזור Google Cloud . לדוגמה:
us-central1. - WORKER_POOL: השם של מאגר העובדים.
- IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל
us-docker.pkg.dev/cloudrun/container/worker-pool:latest - REVISION1 ו-REVISION2: השם של הגרסאות.
- PERCENTAGE1 ו-PERCENTAGE2: אחוז המקרים להקצאה לכל אחת מהגרסאות האלה. הסכום של האחוזים האלה צריך להיות 100.
הקצאת מופעים לגרסה האחרונה
כשפורסים גרסה חדשה, אפשר להקצות 100% מהמופעים לגרסה הזו ולכל הגרסאות העתידיות, וכך לבטל את חלוקת המופעים הקיימת.
gcloud
כדי להקצות 100% מהמופעים לגרסה האחרונה, מריצים את הפקודות הבאות:
משתמשים בדגל
--to-latestכדי להפנות 100% מהמכונות לגרסה האחרונה, ולהקצות באופן אוטומטי את כל המכונות לכל גרסה חדשה שתפעילו:gcloud run worker-pools update-instance-split WORKER_POOL --to-latestאופציונלי: משתמשים בדגל
--to-revisionsעם מילת המפתחLATESTכדי להקצות תמיד אחוז משתנה של מופעים לגרסה העדכנית ביותר כשמפעילים אותה. כדי להגדיר אחוז של מופעים שתמיד יצופו לגרסה האחרונה, מריצים את הפקודה הבאה:gcloud run worker-pools update-instance-split WORKER_POOL --to-revisions=LATEST=PERCENTAGEמחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים.
- PERCENTAGE: אחוז המקרים להקצאה לגרסאות העדכניות ביותר ולגרסאות עתידיות.
YAML
אם אתם יוצרים מאגר חדש של עובדים, דלגו על השלב הזה. אם אתם מעדכנים מאגר עובדים קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
בדוגמה הבאה מופיעה הגדרת ה-YAML:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL labels: cloud.googleapis.com/location: REGION spec: template: spec: containers: - image: IMAGE_URL instanceSplits: - latestRevision: true percent: 100מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים.
- REGION: האזור Google Cloud . לדוגמה:
us-central1. - IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל
us-docker.pkg.dev/cloudrun/container/worker-pool:latest
יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:
gcloud run worker-pools replace workerpool.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
name = "WORKER_POOL"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
instance_splits {
type = "INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST"
percent = 100
}
}
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים.
- REGION: האזור Google Cloud . לדוגמה:
us-central1. - IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל
us-docker.pkg.dev/cloudrun/container/worker-pool:latest