מאגרי ה-workers ב-Cloud Run מאפשרים לחלק עומסי עבודה שלא קשורים לבקשות בין כמה גרסאות, באמצעות פיצול מכונות. אתם יכולים להקצות אחוזים ספציפיים של מכונות לכל גרסה, לחזור לגרסה קודמת או להעביר את כל המכונות לגרסה האחרונה כשאתם פורסים עדכונים.
מחזור החיים של פיצול מופעים
אם מפצלים מכונות בין כמה גרסאות או מקצים מכונות לגרסה קודמת, כל הפריסות הבאות ישתמשו בתבנית הפיצול הזו של המכונות. כדי לחזור לשימוש רק בגרסה האחרונה בלי לפצל את המופעים, שולחים את כל המופעים לגרסה האחרונה.
ההתאמות בהקצאת המופעים לא מתבצעות באופן מיידי. כשמשנים את הקצאת המופעים לגרסאות, המשימות בתהליך ממשיכות עד להשלמה, ו-Cloud Run מעביר את עומסי העבודה בין הגרסאות הקודמות לגרסאות החדשות בהתאם לפיצול המעודכן.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לניהול מאגרי Worker וגרסאות של מאגרי Worker ב-Cloud Run, בקשו מהאדמין להקצות לכם את התפקיד מפתח ב-Cloud Run (roles/run.developer) ב-IAM במאגר ה-Worker של Cloud Run.
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר העובדים של Cloud Run מתקשר עםCloud de Confiance ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
חזרה לגרסה קודמת
כדי לחזור לגרסה קודמת, אפשר להשתמש במסוף Cloud de Confiance או ב-Google Cloud CLI:
המסוף
במסוף Cloud de Confiance by S3NS , עוברים אל 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
אם אתם יוצרים מאגר עובדים חדש, דלגו על השלב הזה. אם אתם מעדכנים מאגר קיים של Worker, הורידו את הגדרת ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.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: השם של מאגר ה-Workers.
- REGION: האזור ב- Cloud de Confiance . לדוגמה:
us-central1. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest - REVISION: שם הגרסה שרוצים לחזור אליה.
יוצרים או מעדכנים את מאגר ה-Workers באמצעות הפקודה הבאה:
gcloud run worker-pools replace worker-pool.yaml
כברירת מחדל, הפקודה
gcloud run worker-pools replaceמשתמשת בקובץworker-pool.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: מזהה הפרויקט ב- Cloud de Confiance .
- REGION: האזור ב- Cloud de Confiance . לדוגמה:
us-central1. - WORKER_POOL: השם של מאגר ה-Workers.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest - REVISION: שם הגרסה שאליה חוזרים.
פיצול מופעים בין כמה גרסאות
כדי לפצל את המופעים בין שתי גרסאות או יותר, משתמשים במסוף Cloud de Confiance או ב-Google Cloud CLI:
כשמפצלים מכונות בין כמה גרסאות, צריך לוודא שהאחוז הכולל בכל הגרסאות שווה ל-100%, ושמספר המכונות הידניות גדול ממספר פיצולי המכונות שמשרתים את עומס העבודה.
המסוף
במסוף Cloud de Confiance by S3NS , נכנסים לדף Cloud Run worker pools:
מאתרים את מאגר העובדים ברשימה ולוחצים עליו.
לוחצים על הכרטיסייה Revisions כדי להציג את רשימת הגרסאות הנוכחיות של מאגר ה-workers הזה.
לוחצים על Manage instance splits כדי להציג את הטופס לניהול המופעים. ב-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
אם אתם יוצרים מאגר עובדים חדש, דלגו על השלב הזה. אם אתם מעדכנים מאגר קיים של Worker, הורידו את הגדרת ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.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: השם של מאגר ה-Workers.
- REGION: האזור ב- Cloud de Confiance . לדוגמה:
us-central1. - INSTANCE_COUNT: מספר המכונות.
-
IMAGE_URL: הפניה לקובץ אימג' של קונטיינר שמכיל את מאגר ה-worker, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest - REVISION1 ו-REVISION2: השם של הגרסאות.
- PERCENTAGE1 ו-PERCENTAGE2: אחוז המופעים שיוקצו לכל אחת מהגרסאות האלה. הסכום של כל האחוזים צריך להיות 100.
יוצרים או מעדכנים את מאגר ה-workers באמצעות הפקודה הבאה:
gcloud run worker-pools replace worker-pool.yaml
כברירת מחדל, הפקודה
gcloud run worker-pools replaceמשתמשת בקובץworker-pool.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: מזהה הפרויקט ב- Cloud de Confiance .
- REGION: האזור ב- Cloud de Confiance . לדוגמה:
us-central1. - WORKER_POOL: השם של מאגר העובדים.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-workers, למשל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: השם של מאגר ה-Workers.
- PERCENTAGE: אחוז המכונות שיוקצו לגרסאות העדכניות ביותר ולגרסאות העדכניות העתידיות.
YAML
אם אתם יוצרים מאגר חדש של מכונות, דלגו על השלב הזה. אם אתם מעדכנים מאגר עובדים קיים, מורידים את הגדרת ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.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: השם של מאגר ה-Workers.
- REGION: ה Cloud de Confiance אזור, לדוגמה
us-central1. -
IMAGE_URL: הפניה לקובץ אימג' של קונטיינר שמכיל את מאגר ה-worker, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest
יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:
gcloud run worker-pools replace worker-pool.yaml
כברירת מחדל, הפקודה
gcloud run worker-pools replaceמשתמשת בקובץworker-pool.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: השם של מאגר ה-Workers.
- REGION: ה Cloud de Confiance אזור, לדוגמה
us-central1. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest