בדף הזה מוסבר איך לפרוס קובצי אימג' של קונטיינרים למאגר חדש של עובדים ב-Cloud Run או לגרסה חדשה של מאגר קיים של עובדים ב-Cloud Run.
מאגרי עובדים הם משאב ב-Cloud Run שנועד במיוחד לביצוע עבודה רציפה ברקע. בניגוד לשירותי Cloud Run, למאגרי עובדים אין נקודת קצה או כתובת URL עם איזון עומסים, והם לא תומכים בהתאמה אוטומטית לעומס.
כדי לראות דוגמה להדרכה מפורטת על פריסת מאגר עובדים חדש, אפשר לעיין במאמר פריסה של מאגר עובדים לדוגמה – מדריך מהיר.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לפריסת מאגרי Worker ב-Cloud Run, אתם צריכים לבקש מהאדמין לתת לכם את התפקידים הבאים ב-IAM:
- מפתח ב-Cloud Run (
roles/run.developer) במאגר ה-workers של Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות שמאגרי העובדים משתמשים בה כדי ליצור אינטראקציה עם שירותים אחרים של Google Cloud - Artifact Registry Reader (
roles/artifactregistry.reader) במאגר Artifact Registry של קובץ האימג' של הקונטיינר שנפרס
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר העובדים של Cloud Run מתקשר עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
מאגרי Container Registry וקובצי אימג' נתמכים
אתם יכולים להשתמש ישירות בקובצי אימג' של קונטיינרים שמאוחסנים ב-Artifact Registry, או בקובצי אימג' ציבוריים מ-Docker Hub או מ-GitHub Container Registry. Google ממליצה להשתמש ב-Artifact Registry. תמונות ציבוריות מ-GitHub Container Registry ותמונות מ-Docker Hub נשמרות במטמון למשך עד שעה.
אפשר להשתמש בקובצי אימג' של קונטיינרים ממאגרי מידע ציבוריים או פרטיים אחרים (כמו JFrog Artifactory או Nexus), או בקובצי אימג' של קונטיינרים פרטיים מ-GitHub Container Registry, על ידי הגדרה של מאגר מרוחק של Artifact Registry.
כדאי להשתמש ב-Docker Hub רק לפריסת קובצי אימג' פופולריים של קונטיינרים, כמו קובצי אימג' רשמיים של Docker או קובצי אימג' של תוכנת קוד פתוח (OSS) בחסות Docker. כדי לשפר את הזמינות, Google ממליצה לפרוס את קובצי האימג' האלה של Docker Hub או GitHub Container Registry באמצעות מאגר מרוחק של Artifact Registry.
ב-Cloud Run אין תמיכה בשכבות של קובצי אימג' של קונטיינרים שגדולות מ-9.9GB כשפורסים מ-Docker Hub או ממאגר מרוחק של Artifact Registry עם מאגר חיצוני.
פריסת מאגרי עובדים
אפשר לפרוס מאגרי עובדים בדרכים הבאות:
- פריסת מאגר חדש של עובדים
- עדכון של מאגר עובדים קיים
- פריסת קובצי אימג' מ Google Cloud פרויקטים אחרים
- פריסת כמה קונטיינרים (sidecars) למאגר עובדים
פריסת מאגר עובדים חדש
אפשר לציין קובץ אימג' של קונטיינר באמצעות תג (לדוגמה, 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:
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט, בוחרים באפשרות Worker pools ולוחצים על Deploy container כדי להציג את הטופס Create worker pool.
בטופס, מציינים את קובץ אימג' של קונטיינר.
מזינים את שם מאגר ה-workers. שמות של מאגרי עובדים צריכים להיות באורך של 49 תווים לכל היותר, והם צריכים להיות ייחודיים לכל אזור ופרויקט. אי אפשר לשתף את אותו שם כמו שם שירות קיים מהפרויקט. אי אפשר לשנות את שם מאגר העובדים בשלב מאוחר יותר, והוא גלוי לכולם.
בוחרים את האזור שבו רוצים למקם את ה-worker. בורר האזורים מציין את רמת המחיר ומדגיש אזורים עם ההשפעה הכי נמוכה על פליטת הפחמן.
בקטע Scaling, מציינים את מספר המופעים של מאגר העובדים.
לוחצים על Containers, Networking, Security כדי להגדיר הגדרות אופציונליות אחרות בכרטיסיות המתאימות:
- הגדרת מאגר התגים
- מגבלות על יחידת העיבוד המרכזית (CPU)
- מגבלות זיכרון
- משתני סביבה
- חשבונות שירות
- התחברות לרשת VPC לצורך תעבורת נתונים יוצאת ונכנסת.
כשמסיימים להגדיר את מאגר ה-Workers, לוחצים על Create כדי לפרוס את האימג' ב-Cloud Run וממתינים לסיום הפריסה.
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי לפרוס קובץ אימג' של קונטיינר של מאגר Worker:
מריצים את הפקודה הבאה:
gcloud run worker-pools deploy WORKER_POOL --image IMAGE_URL
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: שם מאגר ה-workers שרוצים לפרוס אליו. אם מאגר העובדים עדיין לא קיים, הפקודה הזו יוצרת את מאגר העובדים במהלך הפריסה. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו תתבקשו להזין את שם מאגר ה-Workers. שמות של מאגרי עובדים צריכים להיות באורך של עד 49 תווים, להיות ייחודיים לכל אזור ופרויקט, ולא להיות זהים לשם שירות קיים מהפרויקט.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-Workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest. שימו לב: אם לא מציינים את האפשרות--image, הפקודה deploy מנסה לפרוס מקוד המקור.
מחכים שהפריסה תסתיים. אחרי השלמת הפריסה, תוצג ב-Cloud Run הודעת הצלחה יחד עם פרטי הגרסה של מאגר העובדים שנפרס.
כדי לפרוס למיקום אחר מזה שהגדרתם באמצעות המאפיינים
run/regiongcloud, משתמשים בפקודה:gcloud run worker-pools deploy WORKER_POOL --region REGION
YAML
אתם יכולים לאחסן את המפרט של מאגר העובדים בקובץ YAML ולפרוס אותו באמצעות ה-CLI של gcloud.
יוצרים קובץ
worker-pool.yamlחדש עם התוכן הבא:apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: spec: containers: - image: IMAGE
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר ה-workers ב-Cloud Run.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמוus-docker.pkg.dev/cloudrun/container/worker-pool:latest.
אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.
מפעילים את מאגר העובדים החדש באמצעות הפקודה הבאה:
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 לנקודת הקצה של מאגרי העובדים ב-Cloud Run Admin API create.
לדוגמה, שימוש ב-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: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-Workers, למשל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
asia-east1(טייוואן)-
asia-northeast1(טוקיו) -
asia-northeast2(אוסקה) -
asia-south1(מומבאי, הודו) -
asia-southeast3(בנגקוק) -
europe-north1(פינלנד)רמה נמוכה של CO2
europe-north2(שטוקהולם)רמה נמוכה של CO2
europe-southwest1(מדריד)רמה נמוכה של CO2
-
europe-west1(בלגיה)רמה נמוכה של CO2
europe-west4(הולנד)רמה נמוכה של CO2
-
europe-west8(מילאנו)רמה נמוכה של CO2
europe-west9(פריז)רמה נמוכה של CO2
me-west1(תל אביב)northamerica-south1(מקסיקו)us-central1(אייווה)רמה נמוכה של CO2
us-east1(קרוליינה הדרומית)-
us-east4(צפון וירג'יניה) us-east5(Columbus)us-south1(דאלאס)רמה נמוכה של CO2
us-west1(אורגון)רמה נמוכה של CO2
בכפוף לתמחור ברמה 2
africa-south1(יוהנסבורג)asia-east2(הונג קונג)asia-northeast3(סיאול, קוריאה הדרומית)asia-southeast1(סינגפור)asia-southeast2(ג'קרטה)-
asia-south2(דלהי, הודו) -
australia-southeast1(סידני) -
australia-southeast2(מלבורן) europe-central2(ורשה, פולין)רמה נמוכה של CO2
-
europe-west10(ברלין) europe-west12(טורינו)רמה נמוכה של CO2
-
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 מסוף.
פריסת גרסה חדשה של מאגר עובדים קיים
שימו לב: שינוי הגדרות של מאגר Worker גורם ליצירת גרסה חדשה, גם אם לא משנים את קובץ האימג' של הקונטיינר. כל גרסה שנוצרת היא קבועה.
קובץ האימג' של הקונטיינר מיובא על ידי Cloud Run בזמן הפריסה. Cloud Run שומר את העותק הזה של קובץ האימג' של הקונטיינר כל עוד הוא בשימוש בגרסה.
פועלים לפי ההוראות הבאות באמצעות מסוף Google Cloud , Google Cloud CLI, Terraform או API בארכיטקטורת REST:
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט, בוחרים באפשרות Worker pools (מאגרי עובדים), בוחרים את מאגר העובדים שרוצים לעדכן ולוחצים על Edit and deploy new revision (עריכה ופריסה של גרסה חדשה) כדי להציג את הטופס Deploy worker pool revision (פריסת גרסה של מאגר עובדים).
אם צריך, מציינים את כתובת ה-URL של תמונת הקונטיינר החדשה שרוצים לפרוס.
מגדירים את מאגר התגים לפי הצורך.
אם צריך, מעדכנים את מספר המופעים של מאגר העובדים.
אם צריך, לוחצים על Containers, Networking, Security כדי לקבוע הגדרות אופציונליות אחרות בכרטיסיות המתאימות:
- הגדרת מאגר התגים
- מגבלות על יחידת העיבוד המרכזית (CPU)
- מגבלות זיכרון
- משתני סביבה
- חשבונות שירות
- התחברות לרשת VPC לצורך תעבורת נתונים יוצאת ונכנסת.
כשמסיימים לעדכן את מאגר העובדים, לוחצים על Deploy (פריסה).
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי לפרוס קובץ אימג' של קונטיינר:
מריצים את הפקודה:
gcloud run worker-pools deploy WORKER_POOL --image IMAGE_URL
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: שם מאגר ה-workers שרוצים לפרוס אליו. אם מאגר העובדים עדיין לא קיים, הפקודה הזו יוצרת את מאגר העובדים במהלך הפריסה. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו תתבקשו להזין את שם מאגר ה-Workers. שמות של מאגרי עובדים צריכים להיות באורך של עד 49 תווים, להיות ייחודיים לכל אזור ופרויקט, ולא להיות זהים לשם שירות קיים מהפרויקט.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, כמוus-docker.pkg.dev/cloudrun/container/worker-pool:latest. שימו לב: אם לא מציינים את האפשרות--image, הפקודה deploy מנסה לפרוס מקוד המקור.
סיומת הגרסה מוקצית באופן אוטומטי לגרסאות חדשות. אם רוצים לספק סיומת משלכם לגרסה, משתמשים בפרמטר
--revision-suffixשל ה-CLI של gcloud.מחכים שהפריסה תסתיים. בסיום, ב-Cloud Run תוצג הודעת הצלחה עם פרטי הגרסה של מאגר ה-workers שנפרס.
YAML
מורידים את הגדרות ה-YAML של מאגר העובדים:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
עורכים שינוי בקובץ התצורה.
מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:
gcloud run worker-pools replace worker-pool.yaml
אם קיים קובץ
worker-pool.yaml, הפקודהgcloud run worker-pools replaceמשתמשת בו כברירת מחדל.
Terraform
מוודאים שהגדרתם את Terraform כמו שמתואר בדוגמה פריסת מאגר עובדים חדש.
עורכים שינוי בקובץ התצורה.
מחילים את ההגדרות של 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: השם של מאגר העובדים שבו אתם פורסים.
אימות ההגדרה באמצעות הרצה יבשה
כדי לאמת את ההגדרות של מאגר ה-Workers בלי לפרוס אותו או לשמור את השינויים, אפשר להשתמש בדגל --dry-run.
כשמציינים את הדגל --dry-run, הפקודה מבצעת את הפעולות הבאות:
- מאמת את ההגדרה.
- עוקף את תהליך ה-build אם אתם פורסים מקוד המקור.
- הודעה על אימות מוצלח.
כדי לאמת פריסה של מאגר עובדים:
gcloud beta run worker-pools deploy WORKER_POOL \ --image IMAGE_URL \ --dry-run
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים שבו אתם פורסים.
-
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.
פריסת תמונות מפרויקטים אחרים Google Cloud
כדי לפרוס תמונות מפרויקטים אחרים ב- Google Cloud , אתם או האדמין שלכם צריכים להקצות את תפקידי ה-IAM הנדרשים לחשבון הפריסה ולסוכן השירות של Cloud Run.
התפקידים הנדרשים לחשבון הפריסה
כדי להקצות לסוכן השירות של Cloud Run את התפקידים הנדרשים, פועלים לפי ההוראות הבאות:
במסוף Google Cloud , פותחים את הפרויקט של מאגר ה-workers ב-Cloud Run.
בוחרים באפשרות Include Google-provided role grants.
מעתיקים את כתובת האימייל של סוכן השירות של Cloud Run. היא כוללת את הסיומת @serverless-robot-prod.
פותחים את הפרויקט שכולל את Container Registry שרוצים להשתמש בו.
לוחצים על Add (הוספה) כדי להוסיף חשבון משתמש חדש.
בשדה New principals, מדביקים את כתובת האימייל של חשבון השירות שהעתקתם קודם.
בתפריט הנפתח Select a role, אם אתם משתמשים ב-Container Registry, בוחרים בתפקיד Storage -> Storage Object Viewer. אם אתם משתמשים ב-Artifact Registry, בוחרים בתפקיד Artifact Registry -> Artifact Registry Reader.
פורסים את קובץ האימג' של הקונטיינר בפרויקט שמכיל את מאגר העובדים של Cloud Run.
פריסת קובצי אימג' ממאגרים אחרים
כדי לפרוס קובצי אימג' של קונטיינרים ציבוריים או פרטיים שלא מאוחסנים ב-Artifact Registry או ב-Docker Hub, או שהם לא קובצי אימג' של קונטיינרים ציבוריים ב-GitHub Container Registry, צריך להגדיר מאגר מרוחק של Artifact Registry.
מאגרי Artifact Registry מרחוק מאפשרים לכם:
- פריסת קובץ אימג' של קונטיינר ציבורי.
- פריסת קובצי אימג' של קונטיינרים ממאגרים פרטיים שדורשים אימות, למשל JFrog Artifactory או Nexus.
אם אי אפשר להשתמש במאגר מרוחק של Artifact Registry, אפשר לפרוס קובצי אימג' של קונטיינרים ב-Cloud Run באמצעות docker push כדי למשוך אותם ל-Artifact Registry ולהעביר אותם אליו בדחיפה באופן זמני. במהלך הפריסה, Cloud Run מייבא את קובץ האימג' של הקונטיינר, ואחר כך אפשר למחוק את קובץ האימג' מ-Artifact Registry.
פריסת כמה קונטיינרים (sidecar) למאגר עובדים
בפריסה של Cloud Run עם קונטיינרים משניים, יש קונטיינר אחד של מאגר עובדים ראשי וקונטיינר משני אחד או יותר. ה-sidecars יכולים לתקשר זה עם זה ועם מאגר ה-worker pool באמצעות יציאת localhost. היציאה של localhost משתנה בהתאם למאגרים שבהם אתם משתמשים.
אפשר לפרוס עד 10 קונטיינרים לכל מופע, כולל קונטיינר של מאגר העובדים. כל המאגדים במופע חולקים את אותו מרחב שמות ברשת, ויכולים גם לשתף קבצים באמצעות נפח משותף בזיכרון.
אתם יכולים לדרוש שכל הפריסות ישתמשו ב-sidecar ספציפי על ידי יצירת מדיניות ארגונית בהתאמה אישית.
פריסת מאגר worker-ים עם קונטיינרים משניים (sidecar)
כדי לפרוס כמה קונטיינרים במאגר של Cloud Run worker, צריך לפעול לפי ההוראות הבאות באמצעות Google Cloud CLI, YAML או Terraform:
gcloud
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי לפרוס כמה קונטיינרים למאגר עובדים, מריצים את הפקודה הבאה:
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: שם מאגר ה-workers שאתם פורסים אליו. אם לא תציינו את הפרמטר הזה, תתבקשו להזין את שם מאגר ה-workers.
- WORKER_POOL_CONTAINER_NAME: שם למאגר העובדים container.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-Workers, למשל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
מחכים שהפריסה תסתיים. אחרי שהתהליך יסתיים בהצלחה, תוצג הודעת הצלחה ב-Cloud Run.
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 spec: template: spec: containers: - name: CONTAINER_NAME image: IMAGE_URL containers: - name: SIDECAR_CONTAINER_NAME image: SIDECAR_IMAGE_URL
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר ה-workers ב-Cloud Run.
- CONTAINER_NAME: שם למאגר העובדים.
-
IMAGE_URL: הפניה לקובץ אימג' של קונטיינר שמכיל את מאגר ה-worker, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest - SIDECAR_CONTAINER_NAME: שם לקונטיינר המשני (sidecar), לדוגמה
sidecar. - SIDECAR_CONTAINER_IMAGE: הפניה לקובץ האימג' של הקונטיינר המשני.
יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:
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).
תכונות חשובות שזמינות לפריסות עם קבצים נלווים
אם יש לכם יחסי תלות שמחייבים הפעלה של קונטיינרים מסוימים לפני קונטיינרים אחרים בפריסה, אתם יכולים לציין את סדר ההפעלה של הקונטיינרים בפריסה עם כמה קונטיינרים.
אם יש לכם קונטיינרים שתלויים בקונטיינרים אחרים, אתם צריכים להשתמש ב-healthchecks בפריסה. כשמשתמשים בבדיקות תקינות, Cloud Run פועל לפי סדר ההפעלה של הקונטיינרים, ומוודא את התקינות של כל קונטיינר לפני הפעלת הקונטיינר הבא. בלי בדיקות תקינות, Cloud Run מנסה להפעיל את כל הקונטיינרים, גם אם הקונטיינרים שהם תלויים בהם עדיין לא פועלים או שההפעלה שלהם נכשלה.
כמה קונטיינרים בתוך מופע יחיד יכולים לגשת לנפח משותף בזיכרון, שנגיש לכל קונטיינר באמצעות נקודות טעינה שאתם יוצרים.
המאמרים הבאים
אחרי שפורסים מאגר חדש של עובדים, אפשר: