בדף הזה מוסבר איך להגדיר את יציאת הקונטיינר, את פקודת נקודת הכניסה ואת הארגומנטים של שירות Cloud Run.
כש-Cloud Run מפעיל קונטיינר, הוא מריץ את פקודת נקודת הכניסה שמוגדרת כברירת מחדל של קובץ האימג' ואת הארגומנטים של פקודת ברירת המחדל. אם רוצים לשנות את נקודת הכניסה וארגומנטי הפקודה שמוגדרים כברירת מחדל בקובץ האימג', אפשר להשתמש בשדות command ו-args בהגדרות הקונטיינר. בשדה command מציינים את הפקודה בפועל שהקונטיינר מריץ. השדה args מציין את הארגומנטים שמועברים לפקודה הזו.
שימו לב שאפשר להגדיר עד 1,000 ארגומנטים לכל קונטיינר בכל שירות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרה ולפריסה של שירותי Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- מפתח ב-Cloud Run (
roles/run.developer) בשירות Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
אם אתם פורסים שירות או פונקציה מקוד מקור, אתם צריכים גם לקבל תפקידים נוספים בפרויקט ובחשבון השירות של Cloud Build.
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם שירות Cloud Run שלכם מתקשר עםCloud de Confiance ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת יציאת הקונטיינר לשירות
כל שינוי בהגדרות מוביל ליצירה של גרסה חדשה. גם גרסאות עתידיות יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
בשירותי Cloud Run, המערכת של Cloud Run מזריקה את משתנה הסביבה PORT לקונטיינר. אם פורסים כמה מאגרי תגים בשירות, זהו מאגר התגים של הכניסה. הקונטיינר מאזין ליציאה שמוגדרת על ידי משתנה הסביבה PORT, ולא ליציאה ספציפית שמוגדרת בקוד. אם זה לא אפשרי, צריך להגדיר את ההאזנה כך שתתבצע ביציאה ששולחת בקשות למאגר. שימו לב שהגדרות היציאות לא חלות על משימות ב-Cloud Run.
המסוף
נכנסים ל-Cloud Run במסוף Cloud de Confiance by S3NS :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים):
אם מגדירים שירות חדש, לוחצים על Deploy container (פריסת מאגר) וממלאים את הדף של הגדרות השירות הראשוניות. אחר כך לוחצים על Containers, Networking, Security (מאגדים, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
אם אתם מגדירים שירות קיים, לוחצים על השירות.
לוחצים על הכרטיסייה מאגרי תגים.
מציינים את היציאה שאליה רוצים לשלוח את הבקשות, אם לא רוצים להשתמש בערך ברירת המחדל
8080. הפעולה הזו גם מגדירה את משתנה הסביבהPORT.כדי ליצור שירות חדש, לוחצים על יצירה. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.
gcloud
אפשר לעדכן את הגדרות היציאה של שירות באמצעות הפקודה הבאה:
gcloud run services update SERVICE --port PORT
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: שם השירות.
- PORT: היציאה שאליה נשלחות הבקשות. שימו לב שיציאת ברירת המחדל היא
8080.
אפשר גם להגדיר יציאות במהלך הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --port PORT
מחליפים את 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.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את מאפיין
containerPort::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE_URL ports: - containerPort: PORTמחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
-
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. - PORT: היציאה שאליה נשלחות הבקשות.
-
REVISION: שם גרסה חדש או מחיקה של השם (אם הוא קיים). אם אתם מספקים שם חדש לגרסה, הוא חייב לעמוד בקריטריונים הבאים:- מתחיל ב-
SERVICE- - מכיל רק אותיות קטנות, מספרים ו-
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
מחליפים את השירות בהגדרה החדשה שלו באמצעות הפקודה הבאה:
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"
template {
containers {
name = "hello-1"
ports {
container_port = PORT
}
image = "IMAGE_URL"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
REGION: Cloud de Confiance האזור. לדוגמה:
europe-west1.
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.PORT: היציאה שאליה נשלחות הבקשות.
פיתוח נייטיב
כדי לציין את יציאת הקונטיינר בקובץ compose.yaml, מוסיפים את המאפיין ports להגדרת השירות.
services: web: image: IMAGE ports: - "PORT:PORT"
מחליפים את מה שכתוב בשדות הבאים:
- IMAGE: כתובת ה-URL של קובץ אימג' של קונטיינר.
- PORT: היציאה שאליה נשלחות הבקשות.
פריסת השירותים
כדי לפרוס את השירותים, מריצים את הפקודה
gcloud run compose up:gcloud run compose up compose.yamlמגיבים
yלכל בקשה להתקנת רכיבים נדרשים או להפעלת ממשקי API.אופציונלי: הפיכת השירות לציבורי אם רוצים לאפשר גישה לשירות ללא אימות.
אחרי הפריסה, כתובת ה-URL של שירות Cloud Run מוצגת. מעתיקים את כתובת ה-URL הזו ומדביקים אותה בדפדפן כדי לראות את הקונטיינר שפועל. אפשר להשבית את אימות ברירת המחדל במסוף Cloud de Confiance .
הגדרת נקודת כניסה וארגומנטים
כל שינוי בהגדרות מוביל ליצירה של גרסה חדשה. גם גרסאות עתידיות יקבלו באופן אוטומטי את הגדרת התצורה הזו, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
הפקודה והארגומנטים שצוינו בקונטיינר מבטלים את ברירת המחדל של קובץ האימג' ENTRYPOINT ו-CMD.
אפשר להגדיר את פקודת נקודת הכניסה והארגומנטים באמצעות Cloud de Confiance מסוף Google Cloud, באמצעות Google Cloud CLI או באמצעות קובץ YAML כשיוצרים שירות חדש או פורסים עדכון חדש:
המסוף
נכנסים ל-Cloud Run במסוף Cloud de Confiance by S3NS :
בתפריט הניווט של Cloud Run, לוחצים על Services:
אם מגדירים שירות חדש, לוחצים על Deploy container (פריסת מאגר) וממלאים את הדף של הגדרות השירות הראשוניות. אחר כך לוחצים על Containers, Networking, Security (מאגדים, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
אם אתם מגדירים שירות קיים, לוחצים על השירות.
לוחצים על הכרטיסייה Containers (מאגרי תגים).
מציינים את הפקודה שרוצים שהקונטיינר יריץ, אם היא לא הפקודה שמוגדרת בקונטיינר, ואם רוצים, מציינים את הארגומנטים של פקודת נקודת הכניסה.
לוחצים על יצירה כדי ליצור שירות חדש. לוחצים על הצגת ההשוואה ופריסה מחדש ואז על פריסת שינויים בשירות קיים.
gcloud
כדי לעדכן את פקודת ההפעלה והארגומנטים של שירות קיים:
gcloud run services update SERVICE --command COMMAND --args ARG1,ARG-N
מחליפים את מה שכתוב בשדות הבאים:
- COMMAND: הפקודה שהקונטיינר יופעל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
- ARG1: הארגומנט ששולחים לפקודת הקונטיינר. אם יש יותר מארגומנט אחד, צריך להשתמש ברשימה מופרדת בפסיקים.
כדי לציין את נקודת הכניסה והארגומנטים במהלך הפריסה של שירות חדש או קיים:
gcloud run deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
מחליפים את 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
.
כדי למחוק את כל הפקודות והארגומנטים של נקודות הכניסה שהגדרתם (לשחזור ברירת המחדל של הקונטיינר), מספקים מחרוזות ריקות באופן הבא:
gcloud run deploy --image IMAGE_URL --command "" --args ""
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיינים
commandו-args:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE_URL command: - COMMAND args: - ARG1 - ARG-N
מחליפים את מה שכתוב בשדות הבאים:
-
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. - COMMAND: הפקודה שהקונטיינר יופעל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
- ARG1: הארגומנט שאתם שולחים לפקודת הקונטיינר. אם משתמשים בכמה ארגומנטים, צריך לציין כל אחד מהם בשורה נפרדת – לדוגמה, כמו שמוצג כאן, ARG-N.
-
מחליפים את השירות בהגדרה החדשה שלו באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בתצורת Terraform:בדוגמה של משאב google_cloud_run_v2_service שלמעלה, מצוינים פקודה וארגומנטים. מחליפים את /server בפקודה שמשמשת להפעלת הקונטיינר, ומוסיפים את כל הארגומנטים הנדרשים למערך args.
פיתוח נייטיב
כדי לציין את נקודת הכניסה והארגומנטים בקובץ compose.yaml, מוסיפים את המאפיין entrypoint או command להגדרת השירות.
services: web: image: IMAGE entrypoint: ["COMMAND"] command: ["ARG1", "ARG-N"]
מחליפים את מה שכתוב בשדות הבאים:
- IMAGE: כתובת ה-URL של קובץ אימג' של קונטיינר.
- COMMAND: הפקודה שהקונטיינר צריך להפעיל.
- ARG1: הארגומנט שאתם שולחים לפקודת הקונטיינר.
פריסת השירותים
כדי לפרוס את השירותים, מריצים את הפקודה
gcloud run compose up:gcloud run compose up compose.yamlמגיבים
yלכל ההנחיות להתקנת הרכיבים הנדרשים או להפעלת ממשקי API.אופציונלי: הפיכת השירות לציבורי אם רוצים לאפשר גישה לשירות ללא אימות.
אחרי הפריסה, כתובת ה-URL של שירות Cloud Run מוצגת. מעתיקים את כתובת ה-URL הזו ומדביקים אותה בדפדפן כדי לראות את הקונטיינר שפועל. אפשר להשבית את אימות ברירת המחדל במסוף Cloud de Confiance .
שימוש בסימני שוויון או בפסיקים בארגומנטים
אם משתמשים בסימני שוויון בארגומנטים, צריך לספק אותם בפורמט הבא:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
אם הארגומנטים כוללים פסיקים, קראו את המאמר הגדרת משתני סביבה כדי לדעת איך להוסיף להם תווי בריחה (escape).
הגדרת ספריית עבודה
ספריית העבודה היא המקום שבו הקונטיינר מבצע את הפקודות והארגומנטים שלו. אפשר לציין ספריית עבודה מותאמת אישית לתהליך של הקונטיינר במהלך פריסה של שירות חדש או קיים. אם לא מציינים ספריית עבודה, המערכת משתמשת בספריית העבודה שמוגדרת כברירת מחדל בקובץ האימג' של הקונטיינר. כדי לאפס את השדה הזה לברירת המחדל, צריך להעביר מחרוזת ריקה או להסיר את השדה.
לדוגמה:
gcloud
כדי לעדכן את ספריית העבודה של שירות קיים:
gcloud run services update SERVICE --workdir WORKING_DIR
מחליפים את מה שכתוב בשדות הבאים:
- WORKING_DIR: ספריית העבודה של הקונטיינר. אם לא מציינים פקודה, המערכת משתמשת בפקודת ברירת המחדל של קובץ האימג' של הקונטיינר. כדי לאפס את השדה הזה לערך ברירת המחדל שלו, מעבירים מחרוזת ריקה
"".
כדי לציין את ספריית העבודה במהלך פריסה של שירות חדש או קיים:
gcloud run deploy --image IMAGE_URL --workdir WORKING_DIR
מחליפים את מה שכתוב בשדות הבאים:
-
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. - WORKING_DIR: הספרייה הפעילה של הקונטיינר.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את מאפיין
workingDir::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE_URL workingDir: WORKING_DIR ports: - containerPort: PORTמחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
-
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. - WORKING_DIR: (אופציונלי) ספריית העבודה של הקונטיינר. אם לא מציינים את המשתמש, המערכת משתמשת בברירת המחדל של סביבת זמן הריצה של הקונטיינר, שאולי מוגדרת בקובץ האימג' של הקונטיינר.
- PORT: היציאה שאליה נשלחות הבקשות.
-
REVISION: שם גרסה חדש או מחיקה של השם (אם הוא קיים). אם אתם מספקים שם חדש לגרסה, הוא חייב לעמוד בקריטריונים הבאים:- מתחיל ב-
SERVICE- - מכיל רק אותיות קטנות, מספרים ו-
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
מחליפים את השירות בהגדרה החדשה שלו באמצעות הפקודה הבאה:
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"
template {
containers {
name = "hello-1"
working_dir = WORKING_DIR
ports {
container_port = PORT
}
image = "IMAGE_URL"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- REGION: Cloud de Confiance האזור. לדוגמה:
europe-west1. - WORKING_DIR: (אופציונלי) הספרייה הפעילה של הקונטיינר. אם לא מציינים ערך, המערכת תשתמש בערך שמוגדר כברירת מחדל בזמן הריצה של הקונטיינר, שיכול להיות שמוגדר בקובץ אימג' של קונטיינר.
-
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. - PORT: היציאה שאליה נשלחות הבקשות. הערה: יציאת ברירת המחדל היא
8080.
הגדרת סדר הפעלת הקונטיינרים לפריסות של קונטיינרים מסוג sidecar
כדי לציין את סדר ההפעלה של הקונטיינרים בפריסת sidecar, משתמשים בתכונה container dependencies (תלות בין קונטיינרים). מציינים את כל מאגרי התגים שיש להם תלות במאגרי תגים אחרים, ומפרטים את מאגרי התגים שהם תלויים בהם: מאגרי התגים האלה מופעלים קודם. הקונטיינרים שאין להם תלות בקונטיינרים אחרים תמיד מופעלים ראשונים ובמקביל.
כדי להשתמש בתכונה הזו, צריך להשתמש בבדיקות תקינות של ההפעלה. בדיקת ההפעלה מאפשרת ל-Cloud Run לבדוק את תקינות הקונטיינר התלוי, ולוודא שהוא עובר בהצלחה לפני הפעלת הקונטיינר הבא. אם לא משתמשים בבדיקות תקינות, הקונטיינרים מופעלים בסדר שצוין גם אם הקונטיינרים שהם תלויים בהם לא מופעלים.
שימו לב: לקונטיינרים של Ingress יש בדיקת תקינות (healthcheck) שמוגדרת כברירת מחדל בזמן ההפעלה.
אפשר להשתמש במסוף Cloud de Confiance , ב-Google Cloud CLI או ב-YAML כדי לציין את סדר ההפעלה:
המסוף
נכנסים לדף Services של Cloud Run במסוף Cloud de Confiance :
- בשירות קיים, לוחצים על השירות ואז על Containers.
- בשירות חדש, לוחצים על Deploy container כדי להציג את הטופס Create service.
בשירות חדש, מציינים את שם השירות, כתובת ה-URL של מאגר התגים של השרת, הקצאת המעבד (CPU), השליטה בתעבורת נתונים נכנסת (ingress) והאימות. בכרטיסייה Containers, Networking, Security (מאגרי נתונים, רשתות, אבטחה):
- מגדירים את קונטיינר הכניסה.
- כדי להוסיף כל אחד מהמאגרים האחרים שאתם פורסים, לוחצים על הוספת מאגר.
- לכל המאגדים חוץ ממאגד הכניסה, מגדירים בדיקת תקינות של הפעלה. למכלים של Ingress יש בדיקת תקינות שמוגדרת כברירת מחדל בזמן ההפעלה.
- אם מאגר תגים מסוים צריך שמאגרי תגים אחרים יופעלו לפני שהוא יופעל, משתמשים בתפריט סדר הפעלת מאגרי תגים כדי לבחור את מאגרי התגים שצריכים להיות מופעלים קודם.
כדי להוסיף שירות קיים:
- לכל המאגדים חוץ ממאגד הכניסה, מגדירים בדיקת תקינות של הפעלה. למאגרי Ingress יש בדיקת תקינות להפעלה כברירת מחדל.
- כל קונטיינר מוצג עם תפריט Container startup order משלו. אם קונטיינר מסוים צריך שקונטיינרים אחרים יופעלו לפני שהוא יופעל, משתמשים בתפריט Container startup order כדי לבחור את הקונטיינרים שצריכים להיות מופעלים קודם.
מסיימים את כל ההגדרות הנדרשות האחרות. לוחצים על יצירה כדי ליצור שירות חדש. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים. מחכים שהפריסה תסתיים.
gcloud
לפני שמשתמשים ב-Google Cloud CLI כדי לציין את סדר ההפעלה, צריך להגדיר בדיקת תקינות של הפעלה לכל הקונטיינרים, חוץ מקונטיינר הכניסה. למאגרי Ingress יש בדיקת תקינות של הפעלה כברירת מחדל. אי אפשר להגדיר בדיקות תקינות באמצעות Google Cloud CLI.
-
מפעילים את Cloud Shell במסוף Cloud de Confiance .
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
כדי לפרוס כמה קונטיינרים בשירות עם סדר הפעלה מסוים, מריצים את הפקודה:
gcloud run deploy SERVICE \ --container CONTAINER_1_NAME --image='INGRESS_IMAGE' --port='CONTAINER_PORT' \ --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של השירות שאתם פורסים. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו, תתבקשו להזין את שם השירות.
- CONTAINER_PORT: היציאה שבה מאזין קונטיינר הכניסה לבקשות נכנסות. בניגוד לשירות עם קונטיינר יחיד, בשירות שמכיל קונטיינרים מסוג sidecar, אין יציאה שמוגדרת כברירת מחדל לקונטיינר של הכניסה. צריך להגדיר במפורש את יציאת הקונטיינר עבור קונטיינר הכניסה, ורק לקונטיינר אחד יכולה להיות יציאה חשופה.
-
INGRESS_IMAGE: הפניה לקובץ האימג' בקונטיינר שאליו צריך להפנות את הבקשות, לדוגמהus-docker.pkg.dev/cloudrun/container/hello:latest.
SIDECAR_IMAGE: הפניה לקובץ אימג' של קונטיינר sidecar.כדי להגדיר כל קונטיינר בפקודת הפריסה, צריך לספק את ההגדרות של כל קונטיינר אחרי הפרמטרים של
container.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את מאפיין
container-dependencies:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'מחליפים את מה שכתוב בשדות הבאים:
- CONTAINER1: השם של הקונטיינר הראשון שתלוי בקונטיינר אחד או יותר. שימו לב שאפשר להגדיר את שם המאגר ב-YAML: Cloud Run ייצור שם באופן אוטומטי אם לא צוין שם.
- CONTAINER2: השם של מאגר התגים שצריך להפעיל לפני CONTAINER1.
- CONTAINER3: השם של הקונטיינר השני שתלוי בקונטיינר אחד או יותר.
בדוגמה שמוצגת בקטע ה-YAML, הפעולה CONTAINER2 מתחילה ראשונה, הפעולה CONTAINER1 מתחילה שנייה והפעולה CONTAINER3 מתחילה אחרונה.
מחליפים את השירות בהגדרה החדשה שלו באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
פיתוח נייטיב
כדי לציין את סדר ההפעלה של הקונטיינרים בקובץ compose.yaml, מגדירים את הקונטיינרים כשירותים נפרדים ומשתמשים במאפיין depends_on עבור הקונטיינר התלוי.
services: web: image: IMAGE ports: - "8080:8080" container_name: web sidecar: image: SIDECAR_IMAGE container_name: sidecar depends_on: - web
מחליפים את מה שכתוב בשדות הבאים:
- IMAGE: כתובת ה-URL של קובץ אימג' של קונטיינר הראשי, לדוגמה,
us-docker.pkg.dev/my-project/my-repo/hello. - SIDECAR_IMAGE: כתובת ה-URL של קובץ אימג' של קונטיינר משני (sidecar).
פריסת השירותים
כדי לפרוס את השירותים, מריצים את הפקודה
gcloud run compose up:gcloud run compose up compose.yamlמגיבים
yלכל ההנחיות להתקנת הרכיבים הנדרשים או להפעלת ממשקי API.אופציונלי: הפיכת השירות לציבורי אם רוצים לאפשר גישה לשירות ללא אימות.
אחרי הפריסה, מוצגת כתובת ה-URL של שירות Cloud Run. מעתיקים את כתובת ה-URL הזו ומדביקים אותה בדפדפן כדי לראות את הקונטיינר שפועל. אפשר להשבית את אימות ברירת המחדל במסוף Cloud de Confiance .
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בתצורת Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
template {
containers {
name = "CONTAINER1"
ports {
container_port = 8080
}
image = "us-docker.pkg.dev/cloudrun/container/hello"
depends_on = ["CONTAINER2"]
}
containers {
name = "CONTAINER2"
image = "us-docker.pkg.dev/cloudrun/container/hello"
env {
name = "PORT"
value = "8081"
}
startup_probe {
http_get {
port = 8081
}
}
}
containers {
name = "CONTAINER3"
image = "us-docker.pkg.dev/cloudrun/container/hello"
depends_on = ["CONTAINER1", "CONTAINER2"]
env {
name = "PORT"
value = "8080"
}
startup_probe {
http_get {
port = 8080
}
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- REGION: Cloud de Confiance האזור. לדוגמה:
europe-west1. - CONTAINER1: השם של הקונטיינר הראשון שתלוי בקונטיינר אחד או יותר.
- CONTAINER2: השם של מאגר התגים שצריך להפעיל לפני CONTAINER1.
- CONTAINER3: השם של הקונטיינר שתלוי ב-CONTAINER1 וב-CONTAINER2.
הצגת הגדרות כלי הקיבול
כדי לראות את הגדרות הקונטיינר הנוכחיות של שירות Cloud Run:
המסוף
נכנסים לדף Services של Cloud Run במסוף Cloud de Confiance by S3NS :
לוחצים על השירות הרצוי כדי לפתוח את הדף Service details.
לוחצים על הכרטיסייה מאגרי תגים כדי לראות את ההגדרות.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מאתרים את הגדרת מאגר התגים בתצורה שמוחזרת.