הגדרת מאגרי תגים למופעים

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

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

שימו לב: אפשר להגדיר עד 1,000 ארגומנטים לכל מאגר לכל מופע.

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

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

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

הגדרת נקודת הכניסה והארגומנטים

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

gcloud

כדי לעדכן את פקודת ההתחלה והארגומנטים של מופע קיים:

gcloud beta run instances update INSTANCE --command COMMAND --args ARG1,ARG-N

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

  • INSTANCE: השם של המכונה.
  • COMMAND: הפקודה שהקונטיינר מתחיל איתה, אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
  • ARG1: הארגומנט שאתם שולחים לפקודת הקונטיינר. אם יש יותר מארגומנט אחד, צריך להשתמש ברשימה מופרדת בפסיקים.

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

gcloud beta run instances deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, כמו us-docker.pkg.dev/cloudrun/container/hello:latest.

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

gcloud beta run instances --image IMAGE_URL --command "" --args ""

YAML

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. בדוגמה הבאה מופיעה הגדרת ה-YAML:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - name: CONTAINER_NAME
        image: IMAGE_URL
        command:
        - COMMAND
        args:
        - ARG1
        - ARG-N

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

    • INSTANCE: השם של מופע Cloud Run.
    • CONTAINER_NAME: השם של הקונטיינר.
    • IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, כמו us-docker.pkg.dev/cloudrun/container/hello:latest.
    • COMMAND: הפקודה שמאגר התגים יופעל איתה אם לא משתמשים בפקודה שמוגדרת כברירת מחדל.
    • ARG1: הארגומנט שאתם שולחים לפקודת הקונטיינר. אם משתמשים בכמה ארגומנטים, צריך לציין כל אחד מהם בשורה נפרדת – לדוגמה, כמו שמוצג כאן, ARG-N.
  3. יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:

    gcloud beta run instances replace instance.yaml

הגדרת סדר הפעלת קונטיינרים לפריסות של קונטיינרים צדדיים

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

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

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

כדי לציין את סדר ההפעלה, משתמשים ב-Google Cloud CLI או ב-YAML:

gcloud

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

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

    הפעלת Cloud Shell

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

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

gcloud beta run instances deploy INSTANCE \
         --container CONTAINER_1_NAME --image='INSTANCE_IMAGE'
     --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
     --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME

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

  • INSTANCE: השם של המכונה.
  • IMAGE_URL: הפניה לתמונת המאגר, כמו us-docker.pkg.dev/cloudrun/container/hello:latest.
  • SIDECAR_IMAGE: הפניה לקובץ אימג' של קונטיינר sidecar.

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

YAML

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. בדוגמה הבאה מופיעה הגדרת ה-YAML:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'

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

    • INSTANCE: השם של מופע Cloud Run.
    • CONTAINER1: השם של הקונטיינר הראשון שתלוי בקונטיינר אחד או יותר. אפשר להגדיר את שם הקונטיינר ב-YAML. אם לא מציינים שם, Cloud Run יוצר שם באופן אוטומטי.
    • CONTAINER2: השם של הקונטיינר שצריך להתחיל לפני CONTAINER1.
    • CONTAINER3: השם של הקונטיינר השני שתלוי בקונטיינר אחד או יותר.

    בדוגמה שמוצגת בקטע ה-YAML, הפעולה CONTAINER2 מתחילה ראשונה, הפעולה CONTAINER1 מתחילה שנייה והפעולה CONTAINER3 מתחילה אחרונה.

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

    gcloud beta run instances replace instance.yaml