פריסת מאגרי עובדים ב-Cloud Run

בדף הזה מוסבר איך לפרוס תמונות של מאגרי תגים למאגר חדש של עובדים ב-Cloud Run או לגרסה חדשה של מאגר קיים של עובדים ב-Cloud Run.

מאגרי עובדים הם משאב של Cloud Run שנועד במיוחד לביצוע עבודה רציפה ברקע. בניגוד לשירותי Cloud Run, למאגרי עובדים אין נקודת קצה או כתובת URL עם איזון עומסים, והם לא תומכים בהתאמה אוטומטית של נפח הפעילות (autoscaling).

כדי לראות דוגמה להדרכה מפורטת על פריסת מאגר עובדים חדש, אפשר לעיין במאמר פריסה של מאגר עובדים לדוגמה – מדריך מהיר.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לפריסת מאגרי עובדים של Cloud Run, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

  • Cloud Run Developer (roles/run.developer) במאגר העובדים של Cloud Run
  • משתמש בחשבון שירות (roles/iam.serviceAccountUser) בזהות שמאגרי העובדים משתמשים בה כדי ליצור אינטראקציה עם שירותים אחרים של Google Cloud
  • קורא של Artifact Registry (roles/artifactregistry.reader) במאגר Artifact Registry של קובץ האימג' של הקונטיינר שנפרס

רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר העובדים של Cloud Run מתקשר עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.

מאגרי תמונות וקובצי אימג' נתמכים של קונטיינרים

אתם יכולים להשתמש ישירות בקובצי אימג' של קונטיינרים שמאוחסנים ב-Artifact Registry או ב-Docker Hub. ‫Google ממליצה להשתמש ב-Artifact Registry. תמונות Docker Hub נשמרות במטמון למשך שעה אחת לכל היותר.

אפשר להשתמש בתמונות של מאגרי תגים ממאגרי תגים ציבוריים או פרטיים אחרים (כמו JFrog Artifactory,‏ Nexus או GitHub Container Registry) על ידי הגדרה של מאגר תגים מרוחק של Artifact Registry.

מומלץ להשתמש ב-Docker Hub רק לפריסת קובצי אימג' פופולריים של קונטיינרים, כמו קובצי אימג' רשמיים של Docker או קובצי אימג' של תוכנות קוד פתוח (OSS) בחסות Docker. כדי להגדיל את הזמינות, Google ממליצה לפרוס את התמונות האלה מ-Docker Hub באמצעות מאגר מרוחק של Artifact Registry.

ב-Cloud Run אין תמיכה בשכבות של קובצי אימג' של קונטיינרים בגודל של יותר מ-9.9GB כשמבצעים פריסה מ-Docker Hub או ממאגר מרוחק של Artifact Registry עם רישום חיצוני.

פריסת מאגרי עובדים

אפשר לפרוס מאגרי עובדים בדרכים הבאות:

פריסת מאגר עובדים חדש

אפשר לציין קובץ אימג' של קונטיינר עם תג (לדוגמה, us-docker.pkg.dev/my-project/container/my-image:latest) או עם תקציר מדויק (לדוגמה, us-docker.pkg.dev/my-project/container/my-image@sha256:41f34ab970ee...).

כשפורסים מאגר עובדים בפעם הראשונה, נוצרת הגרסה הראשונה שלו. חשוב לזכור שאי אפשר לשנות את הגרסאות. אם מבצעים פריסה מתג של תמונת קונטיינר, התג יומר לערך גיבוב והעדכון תמיד יציג את ערך הגיבוב הספציפי הזה.

פועלים לפי ההוראות באמצעות מסוף Google Cloud , Google Cloud CLI,‏ Terraform או API בארכיטקטורת REST:

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות Worker pools (מאגרי עובדים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להציג את הטופס Create worker pool (יצירת מאגר עובדים).

    1. בטופס, מציינים את קובץ האימג' של הקונטיינר.

    2. מזינים את השם של מאגר העובדים. שמות של מאגרי עובדים צריכים להיות באורך של 49 תווים או פחות, והם צריכים להיות ייחודיים לכל אזור ופרויקט. אי אפשר להשתמש באותו שם של שירות קיים מהפרויקט. אי אפשר לשנות את שם מאגר העובדים בשלב מאוחר יותר, והוא גלוי לכולם.

    3. בוחרים את האזור שבו רוצים שהעובד יהיה ממוקם. בורר האזורים מציין את רמת המחיר ומדגיש אזורים עם ההשפעה הכי נמוכה על פליטת הפחמן.

    4. בקטע Scaling, מציינים את מספר המופעים של מאגר העובדים.

  3. לוחצים על Containers, Networking, Security כדי להגדיר הגדרות אופציונליות אחרות בכרטיסיות המתאימות:

  4. כשמסיימים להגדיר את מאגר העובדים, לוחצים על Create כדי לפרוס את האימג' ב-Cloud Run ומחכים עד שהפריסה תסתיים.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי לפרוס קובץ אימג' של קונטיינר של מאגר עובדים:

    1. מריצים את הפקודה הבאה:

      gcloud run worker-pools deploy WORKER_POOL --image IMAGE_URL 

      מחליפים את מה שכתוב בשדות הבאים:

      • WORKER_POOL: שם מאגר העובדים שרוצים לפרוס בו. אם מאגר העובדים עדיין לא קיים, הפקודה הזו יוצרת את מאגר העובדים במהלך הפריסה. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו, תתבקשו לציין את שם מאגר העובדים. שמות של מאגרי עובדים צריכים לכלול עד 49 תווים, להיות ייחודיים לכל אזור ופרויקט, ולא להיות זהים לשם שירות קיים מהפרויקט.
      • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest. שימו לב: אם לא מציינים את האפשרות --image, פקודת הפריסה מנסה לפרוס מקוד המקור.
    2. מחכים שהפריסה תסתיים. אחרי שהפריסה תושלם בהצלחה, תוצג ב-Cloud Run הודעה על כך, יחד עם פרטי הגרסה של מאגר העובדים שנפרס.

      כדי לפרוס למיקום אחר מזה שהגדרתם באמצעות המאפיינים run/region gcloud, משתמשים בפקודה:

      gcloud run worker-pools deploy WORKER_POOL --region REGION

YAML

אפשר לשמור את המפרט של מאגר העובדים בקובץ YAML ולפרוס אותו באמצעות ה-CLI של gcloud.

  1. יוצרים קובץ worker-pool.yaml חדש עם התוכן הבא:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    מחליפים את מה שכתוב בשדות הבאים:

    • WORKER_POOL: השם של מאגר העובדים של Cloud Run.
    • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

    אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.

  2. מפעילים את הפקודה הבאה כדי לפרוס את מאגר העובדים החדש:

    gcloud run worker-pools replace worker-pool.yaml

    אם קיים קובץ worker-pool.yaml, הפקודה gcloud run worker-pools replace משתמשת בו כברירת מחדל.

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • WORKER_POOL: השם של מאגר העובדים.
  • REGION: האזור Google Cloud . לדוגמה, europe-west1.
  • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

‫API בארכיטקטורת REST

כדי לפרוס מאגר חדש של סביבות עבודה, שולחים בקשת HTTP‏ POST לנקודת הקצה create של מאגרי סביבות העבודה של Cloud Run Admin API.

לדוגמה, באמצעות curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/workerPools?workerPoolId=WORKER_POOL

מחליפים את מה שכתוב בשדות הבאים:

  • ACCESS_TOKEN: אסימון גישה תקף לחשבון שיש לו הרשאות IAM לפריסת שירותים. לדוגמה, אם אתם מחוברים ל-gcloud, אתם יכולים לאחזר אסימון גישה באמצעות gcloud auth print-access-token. מתוך מופע קונטיינר של Cloud Run, אפשר לאחזר אסימון גישה באמצעות שרת המטא-נתונים של מופע הקונטיינר.
  • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • REGION: האזור Google Cloud . לדוגמה, europe-west1.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • WORKER_POOL: השם של מאגר העובדים.

מיקומים של Cloud Run

‫Cloud Run הוא שירות אזורי, כלומר התשתית שמריצה את שירותי Cloud Run ממוקמת באזור ספציפי ומנוהלת על ידי Google כך שתהיה זמינה באופן יתירתי בכל התחומים באותו אזור.

הקריטריונים העיקריים לבחירת האזור שבו יפעלו שירותי Cloud Run הם זמן האחזור, הזמינות או העמידות שנדרשים לכם. בדרך כלל אפשר לבחור את האזור הקרוב ביותר למשתמשים, אבל כדאי לקחת בחשבון את המיקום של מוצרים Google Cloud אחרים שבהם נעשה שימוש בשירות Cloud Run. השימוש במוצרים של Google Cloud Google Cloud יחד בכמה מיקומים יכול להשפיע על זמן האחזור ועל העלות של השירות.

‫Cloud Run זמין באזורים הבאים:

בכפוף לתמחור ברמה 1

בכפוף לתמחור ברמה 2

  • africa-south1 (יוהנסבורג)
  • asia-east2 (הונג קונג)
  • asia-northeast3 (סיאול, קוריאה הדרומית)
  • asia-southeast1 (סינגפור)
  • asia-southeast2 (ג'אקארטה)
  • asia-south2 (דלהי, הודו)
  • australia-southeast1 (סידני)
  • australia-southeast2 (מלבורן)
  • europe-central2 (ורשה, פולין)
  • europe-west10 (ברלין)
  • europe-west12 (טורינו)
  • europe-west2 (לונדון, בריטניה) סמל של עלה רמה נמוכה של CO2
  • europe-west3 (פרנקפורט, גרמניה)
  • europe-west6 (ציריך, שווייץ) סמל של עלה רמה נמוכה של CO2
  • me-central1 (דוחה)
  • me-central2 (דמאם)
  • northamerica-northeast1 (מונטריאול) סמל של עלה רמה נמוכה של CO2
  • northamerica-northeast2 (טורונטו) סמל של עלה רמה נמוכה של CO2
  • southamerica-east1 (סאו פאולו, ברזיל) סמל של עלה רמה נמוכה של CO2
  • southamerica-west1 (סנטיאגו, צ'ילה) סמל של עלה רמה נמוכה של CO2
  • us-west2 (לוס אנג'לס)
  • us-west3 (סולט לייק סיטי)
  • us-west4 (לאס וגאס)

אם כבר יצרתם שירות Cloud Run, תוכלו לראות את האזור בלוח הבקרה של Cloud Run בGoogle Cloud מסוף.

פריסת גרסה חדשה של מאגר עובדים קיים

שימו לב: שינוי הגדרות התצורה של מאגר עובדים יוביל ליצירת גרסה חדשה, גם אם לא בוצע שינוי בקובץ אימג' של קונטיינר. כל גרסה שנוצרת היא בלתי ניתנת לשינוי.

קובץ האימג' של הקונטיינר מיובא על ידי Cloud Run בזמן הפריסה. ‫Cloud Run שומר את העותק הזה של קובץ האימג' של הקונטיינר כל עוד הוא בשימוש בגרסה.

פועלים לפי ההוראות האלה באמצעות Google Cloud מסוף Google Cloud,‏ Google Cloud CLI,‏ Terraform או API בארכיטקטורת REST:

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט, בוחרים באפשרות Worker pools (מאגרי עובדים), בוחרים את מאגר העובדים שרוצים לעדכן ולוחצים על Edit and deploy new revision (עריכה ופריסה של עדכון חדש) כדי להציג את הטופס Deploy worker pool revision (פריסת עדכון של מאגר עובדים).

    1. אם צריך, מציינים את כתובת ה-URL של תמונת הקונטיינר החדשה שרוצים לפרוס.

    2. מגדירים את מאגר התגים לפי הצורך.

    3. אם צריך, מעדכנים את מספר המופעים של מאגר העובדים.

  3. אם צריך, לוחצים על Containers, Networking, Security כדי להגדיר הגדרות אופציונליות אחרות בכרטיסיות המתאימות:

  4. כשמסיימים לעדכן את מאגר העובדים, לוחצים על פריסה.

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי לפרוס קובץ אימג' של קונטיינר:

    1. מריצים את הפקודה:

      gcloud run worker-pools deploy WORKER_POOL --image IMAGE_URL 

      מחליפים את מה שכתוב בשדות הבאים:

      • WORKER_POOL: שם מאגר העובדים שרוצים לפרוס בו. אם מאגר העובדים עדיין לא קיים, הפקודה הזו יוצרת את מאגר העובדים במהלך הפריסה. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו, תתבקשו לציין את שם מאגר העובדים. שמות של מאגרי עובדים צריכים לכלול עד 49 תווים, להיות ייחודיים לכל אזור ופרויקט, ולא להיות זהים לשם שירות קיים מהפרויקט.
      • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest. שימו לב: אם לא מציינים את האפשרות --image, פקודת הפריסה מנסה לפרוס מקוד המקור.

      הסיומת של מספר הגרסה מוקצית באופן אוטומטי לגרסאות חדשות. אם רוצים לספק סיומת משלכם לגרסה, משתמשים בפרמטר --revision-suffix של ה-CLI של gcloud.

    2. מחכים שהפריסה תסתיים. אחרי שהפריסה תושלם בהצלחה, תוצג ב-Cloud Run הודעה על כך, יחד עם פרטי הגרסה של מאגר העובדים שנפרס.

YAML

  1. מורידים את הגדרת ה-YAML של מאגר העובדים:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. מבצעים שינוי בקובץ ההגדרות.

  3. מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:

    gcloud run worker-pools replace worker-pool.yaml

    אם קיים קובץ worker-pool.yaml, הפקודה gcloud run worker-pools replace משתמשת בו כברירת מחדל.

Terraform

מוודאים שהגדרתם את Terraform כמו שמתואר בדוגמה פריסת מאגר עובדים חדש.

  1. מבצעים שינוי בקובץ ההגדרות.

  2. מחילים את ההגדרות של Terraform:

    terraform apply

    כדי לאשר שרוצים להחיל את הפעולות שמתוארות, מזינים yes.

‫API בארכיטקטורת REST

כדי לפרוס מאגר חדש של עובדים, שולחים בקשת HTTP‏ PATCH אל נקודת הקצה של מאגרי העובדים ב-Cloud Run Admin API.

כדי ליצור גרסה חדשה מהתבנית גם אם המערכת לא מזהה שינויים מהגרסה הקודמת שהופעלה, צריך להגדיר את פרמטר השאילתה forceNewRevision לערך true.

לדוגמה, באמצעות curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X PATCH \
  -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/workerPools/WORKER_POOL>?forceNewRevision=true

מחליפים את מה שכתוב בשדות הבאים:

  • ACCESS_TOKEN: אסימון גישה תקף לחשבון שיש לו הרשאות IAM לפריסת שירותים. לדוגמה, אם אתם מחוברים ל-gcloud, אתם יכולים לאחזר אסימון גישה באמצעות gcloud auth print-access-token. מתוך מופע קונטיינר של Cloud Run, אפשר לאחזר אסימון גישה באמצעות שרת המטא-נתונים של מופע הקונטיינר.
  • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • REGION: האזור Google Cloud . לדוגמה, europe-west1.
  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • WORKER_POOL: השם של מאגר העובדים שבו אתם פורסים.

פריסת תמונות מפרויקטים אחרים Google Cloud

כדי לפרוס תמונות מפרויקטים אחרים ב- Google Cloud , אתם או האדמין שלכם צריכים להקצות את תפקידי ה-IAM הנדרשים לחשבון הפריסה ולסוכן השירות של Cloud Run.

במאמר התפקידים הנדרשים מפורטים התפקידים הנדרשים לחשבון הפריסה.

כדי להקצות לסוכן השירות של Cloud Run את התפקידים הנדרשים, פועלים לפי ההוראות הבאות:

  1. במסוף Google Cloud , פותחים את הפרויקט של מאגר העובדים ב-Cloud Run.

    כניסה לדף IAM

  2. בוחרים באפשרות Include Google-provided role grants.

  3. מעתיקים את כתובת האימייל של סוכן השירות של Cloud Run. היא כוללת את הסיומת @serverless-robot-prod.iam.gserviceaccount.com

  4. פותחים את הפרויקט שכולל את מאגר התמונות של מאגרי התוכן שרוצים להשתמש בו.

    כניסה לדף IAM

  5. לוחצים על הוספה כדי להוסיף חשבון משתמש חדש.

  6. בשדה New principals, מדביקים את כתובת האימייל של חשבון השירות שהעתקתם קודם.

  7. בתפריט הנפתח Select a role, אם אתם משתמשים ב-Container Registry, בוחרים בתפקיד Storage -> Storage Object Viewer. אם אתם משתמשים ב-Artifact Registry, בוחרים בתפקיד Artifact Registry -> Artifact Registry Reader.

  8. פורסים את קובץ האימג' של הקונטיינר בפרויקט שמכיל את מאגר העובדים של Cloud Run.

פריסת תמונות ממאגרי תמונות אחרים

כדי לפרוס קובצי אימג' ציבוריים או פרטיים של קונטיינרים שלא מאוחסנים ב-Artifact Registry או ב-Docker Hub, צריך להגדיר מאגר מרוחק של Artifact Registry.

מאגרי Artifact Registry מרחוק מאפשרים לכם:

  • פריסת קובץ אימג' של קונטיינר ציבורי, לדוגמה, GitHub Container Registry ‏ (ghcr.io).
  • פריסת קובצי אימג' של קונטיינרים ממאגרים פרטיים שנדרש בהם אימות, למשל JFrog Artifactory או Nexus.

אם אי אפשר להשתמש במאגר מרוחק של Artifact Registry, אפשר למשוך קובצי אימג' של קונטיינרים ולדחוף אותם ל-Artifact Registry באופן זמני על ידי פריסתם ב-Cloud Run באמצעות docker push. מערכת Cloud Run מייבאת את קובץ האימג' של הקונטיינר במהלך הפריסה, ואחרי כן אפשר למחוק את קובץ האימג' מ-Artifact Registry.

פריסת כמה קונטיינרים (sidecar) למאגר עובדים

בפריסה של Cloud Run עם קונטיינרים מסוג sidecar, יש קונטיינר אחד של מאגר עובדים ראשי וקונטיינר אחד או יותר מסוג sidecar. קובצי ה-sidecar יכולים לתקשר זה עם זה ועם קונטיינר מאגר העובדים באמצעות יציאת localhost. היציאה של localhost משתנה בהתאם למאגרי התוכן שבהם אתם משתמשים.

אפשר לפרוס עד 10 קונטיינרים לכל מופע, כולל קונטיינר מאגר העובדים. כל המאגדים בתוך מופע חולקים את אותו מרחב שמות של רשת, ויכולים גם לשתף קבצים באמצעות נפח משותף בזיכרון.

כדי לדרוש שכל הפריסות ישתמשו ב-sidecar ספציפי, אפשר ליצור מדיניות ארגונית בהתאמה אישית.

פריסת מאגר עובדים עם קונטיינרים מסוג sidecar

כדי לפרוס כמה קונטיינרים למאגר עובדים של Cloud Run, פועלים לפי ההוראות האלה באמצעות Google Cloud CLI,‏ YAML או Terraform:

gcloud

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי לפרוס כמה מאגרי תגים למאגר עובדים, מריצים את הפקודה הבאה:

    gcloud run worker-pools deploy WORKER_POOL \
     --container WORKER_POOL_CONTAINER_NAME \
     --image='WORKER_POOL_IMAGE' \
     --container SIDECAR_CONTAINER_NAME \
     --image='SIDECAR_IMAGE'

    מחליפים את מה שכתוב בשדות הבאים:

    • WORKER_POOL: השם של מאגר העובדים שבו אתם פורסים. אם לא תציינו את הפרמטר הזה, תתבקשו לציין את השם של מאגר העובדים.
    • WORKER_POOL_CONTAINER_NAME: שם למאגר העובדים container.
    • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
    • SIDECAR_CONTAINER_NAME: שם של קונטיינר ה-sidecar, לדוגמה sidecar.
    • SIDECAR_IMAGE: הפניה לקובץ אימג' של קונטיינר sidecar.

    כדי להגדיר כל מאגר תגים בפקודת הפריסה, צריך לספק את ההגדרה של כל מאגר אחרי הפרמטרים container, לדוגמה:

    gcloud run worker-pools deploy WORKER_POOL \
      --container CONTAINER_1_NAME \
      --image='WORKER_POOL_IMAGE' \
      --set-env-vars=KEY=VALUE \
      --container SIDECAR_CONTAINER_NAME \
      --image='SIDECAR_IMAGE' \
      --set-env-vars=KEY_N=VALUE_N
  3. מחכים שהפריסה תסתיים. אחרי שהתהליך יסתיים בהצלחה, תוצג הודעה ב-Cloud Run.

YAML

  1. אם אתם יוצרים מאגר חדש של עובדים, דלגו על השלב הזה. אם אתם מעדכנים מאגר עובדים קיים, מורידים את הגדרת ה-YAML שלו:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. בדוגמה הבאה מופיעה הגדרת ה-YAML:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER_NAME
            image: IMAGE_URL
          containers:
          - name: SIDECAR_CONTAINER_NAME
            image: SIDECAR_IMAGE_URL

    מחליפים את מה שכתוב בשדות הבאים:

    • WORKER_POOL: השם של מאגר העובדים של Cloud Run.
    • CONTAINER_NAME: שם למאגר העובדים.
    • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • SIDECAR_CONTAINER_NAME: שם של קונטיינר sidecar, לדוגמה sidecar.
    • SIDECAR_CONTAINER_IMAGE: הפניה לקובץ אימג' של קונטיינר sidecar.
  3. יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:

    gcloud run worker-pools replace worker-pool.yaml

    אם קיים קובץ worker-pool.yaml, הפקודה gcloud run worker-pools replace משתמשת בו כברירת מחדל.

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      name = "CONTAINER_NAME"
      image = "IMAGE_URL"
    }
    containers {
      name = "SIDECAR_CONTAINER_NAME"
      image = "SIDECAR_IMAGE_URL"
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • WORKER_POOL: השם של מאגר העובדים.
  • REGION: האזור Google Cloud . לדוגמה, europe-west1.
  • CONTAINER_NAME: השם של הקונטיינר.
  • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמו us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • SIDECAR_CONTAINER_NAME: השם של קונטיינר ה-sidecar.
  • SIDECAR_IMAGE_URL: הפניה לקובץ אימג' של קונטיינר sidecar.

תכונות חשובות שזמינות לפריסות עם קבצים נלווים

אם יש לכם פריסה עם כמה מאגרי תגים, אתם יכולים לציין את סדר ההפעלה של מאגר התגים בפריסה, אם יש לכם תלויות שמחייבות הפעלה של מאגרי תגים מסוימים לפני מאגרי תגים אחרים בפריסה.

אם יש לכם קונטיינרים שתלויים בקונטיינרים אחרים, אתם צריכים להשתמש בבדיקות תקינות בפריסה. כשמשתמשים בבדיקות תקינות, Cloud Run פועל לפי סדר ההפעלה של הקונטיינר, ומוודא את התקינות של כל קונטיינר לפני הפעלת הקונטיינר הבא. בלי בדיקות תקינות, Cloud Run מנסה להפעיל את כל הקונטיינרים, גם אם הקונטיינרים שהם תלויים בהם עדיין לא פועלים או שההפעלה שלהם נכשלה.

כמה קונטיינרים במופע יחיד יכולים לגשת לנפח משותף בזיכרון, שאפשר לגשת אליו מכל קונטיינר באמצעות נקודות הרכבה שיוצרים.

המאמרים הבאים

אחרי שפורסים מאגר חדש של עובדים, אפשר: