הגדרת מאגרי תגים

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

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

הגדרת יציאת הקונטיינר

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

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

המסוף

  1. נכנסים אל Knative serving במסוף Google Cloud :

    מעבר אל Knative serving

  2. אם אתם מגדירים שירות חדש שאתם פורסים, לוחצים על יצירת שירות. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על Edit & Deploy New Revision (עריכה ופריסה של עדכון חדש).

  3. בקטע הגדרות מתקדמות, לוחצים על מאגר תגים.

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

  5. לוחצים על הבא כדי להמשיך לקטע הבא.

  6. בקטע Configure how this service is triggered (הגדרה של אופן הפעלת השירות), בוחרים את סוג הקישוריות שרוצים להשתמש בו כדי להפעיל את השירות.

  7. לוחצים על יצירה כדי לפרוס את התמונה ב-Knative serving ומחכים עד שהפריסה תסתיים.

שורת הפקודה

  • בשירותים קיימים, כדי לעדכן את הגדרת היציאה מריצים את הפקודה gcloud run services update עם הפרמטרים הבאים:

    gcloud run services update SERVICE --port PORT

    מחליפים את:

    • SERVICE בשם של השירות.
    • PORT עם היציאה שאליה רוצים לשלוח בקשות. הערה: יציאת ברירת המחדל היא 8080.
  • בשירותים חדשים, מגדירים את הניוד על ידי הפעלת הפקודה gcloud run deploy עם הפרמטר --port:

    gcloud run deploy SERVICE --image=IMAGE_URL --port PORT

    מחליפים את:

    • SERVICE בשם של השירות.
    • IMAGE_URL עם הפניה לקובץ אימג' של קונטיינר, לדוגמה, gcr.io/cloudrun/hello.
    • PORT עם היציאה שאליה רוצים לשלוח בקשות. יציאת ברירת המחדל היא 8080.

YAML

אפשר להוריד את ההגדרה של שירות קיים לקובץ YAML באמצעות הפקודה gcloud run services describe והדגל --format=export. אחר כך תוכלו לשנות את קובץ ה-YAML ולפרוס את השינויים האלה באמצעות הפקודה gcloud run services replace. חשוב לוודא שמשנים רק את המאפיינים שצוינו.

  1. מורידים את ההגדרה של השירות לקובץ בשם service.yaml בסביבת העבודה המקומית:

    gcloud run services describe SERVICE --format export > service.yaml

    מחליפים את SERVICE בשם של שירות Knative serving.

  2. מעדכנים את המאפיין containerPort: בקובץ המקומי:

    apiVersion: serving.knative.dev/v1
    kind: Service
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            ports:
            - containerPort: PORT
    

    החלפה

    • IMAGE_URL עם הפניה לקובץ אימג' של קונטיינר, לדוגמה, gcr.io/cloudrun/hello.
    • PORT עם היציאה שאליה רוצים לשלוח בקשות.
  3. מחליפים את השירות בהגדרה החדשה שלו באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

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

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

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

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

ב-Knative serving, אפשר להגדיר פקודות וארגומנטים של נקודת כניסה באמצעות Google Cloud המסוף, Google Cloud CLI או קובץ YAML כשמבצעים פריסה של שירות חדש, מעדכנים שירות קיים או פורסים עדכון:

המסוף

  1. נכנסים אל Knative serving במסוף Google Cloud :

    מעבר אל Knative serving

  2. אם אתם מגדירים שירות חדש שאתם פורסים, לוחצים על יצירת שירות. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על Edit & Deploy New Revision (עריכה ופריסה של עדכון חדש).

  3. בקטע הגדרות מתקדמות, לוחצים על מאגר תגים.

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

  5. לוחצים על הבא כדי להמשיך לקטע הבא.

  6. בקטע Configure how this service is triggered (הגדרה של אופן הפעלת השירות), בוחרים את סוג הקישוריות שרוצים להשתמש בו כדי להפעיל את השירות.

  7. לוחצים על יצירה כדי לפרוס את התמונה ב-Knative serving ומחכים עד שהפריסה תסתיים.

שורת הפקודה

אפשרויות של פרמטרים של פקודות

  • כדי לציין ארגומנט שמכיל פסיק (,), צריך להשתמש בתו בריחה לכל ARG עם תו מפריד שונה. לדוגמה, אם משתמשים ב-@:
    --args "^@^arg,with,commas@anotherarg@ARG3..."
  • כדי לציין כמה קבוצות של צמדי מפתח/ערך, אפשר לציין כמה פרמטרים כדי שהקוד יהיה קריא. דוגמה:
    [...]
    --args "ARG1" \
    --args "ARG2" \
    --args "ARG3"
  • כדי להשתמש בסימני שוויון (=) בארגומנטים, צריך לציין כל ארגומנט בפורמט הבא:
    gcloud run services ...  \
      --args "--repo-allowlist=github.com/example/example_demo" \
      --args "--gh-webhook-secret=XX"

  • בשירותים קיימים, מעדכנים את פקודת נקודת הכניסה על ידי הרצת הפקודה gcloud run services update עם הפרמטרים הבאים:

    gcloud run services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N

    מחליפים את:

    • SERVICE בשם של השירות.
    • אופציונלי: COMMAND עם הפקודה שרוצים שהקונטיינר יפעיל במהלך ההפעלה.
    • אופציונלי: ARG1 עם ארגומנט אחד או יותר לפקודה שמופעלת במהלך ההפעלה. אם יש כמה ארגומנטים, צריך להשתמש ברשימה מופרדת בפסיקים. איך מעצבים את הארגומנטים
  • בשירותים חדשים, מגדירים את פקודת נקודת הכניסה על ידי הפעלת הפקודה gcloud run deploy עם הפרמטר --command:

    gcloud run deploy SERVICE --image=IMAGE_URL --command COMMAND --args ARG1,ARG2,ARG-N

    מחליפים את:

    • SERVICE בשם של השירות.
    • IMAGE_URL עם הפניה לקובץ אימג' של קונטיינר, לדוגמה, gcr.io/cloudrun/hello.
    • אופציונלי: COMMAND עם הפקודה שרוצים שהקונטיינר יפעיל במהלך ההפעלה.
    • אופציונלי: ARG1 עם ארגומנט אחד או יותר לפקודה שמופעלת במהלך ההפעלה. אם יש כמה ארגומנטים, צריך להשתמש ברשימה מופרדת בפסיקים. איך מעצבים את הארגומנטים

YAML

אפשר להוריד את ההגדרה של שירות קיים לקובץ YAML באמצעות הפקודה gcloud run services describe והדגל --format=export. אחר כך תוכלו לשנות את קובץ ה-YAML ולפרוס את השינויים האלה באמצעות הפקודה gcloud run services replace. חשוב לוודא שמשנים רק את המאפיינים שצוינו.

  1. מורידים את ההגדרה של השירות לקובץ בשם service.yaml בסביבת העבודה המקומית:

    gcloud run services describe SERVICE --format export > service.yaml

    מחליפים את SERVICE בשם של שירות Knative serving.

  2. בקובץ המקומי, מעדכנים את המאפיינים command ו-args:

    apiVersion: serving.knative.dev/v1
    kind: Service
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            command:
            - COMMAND
            args:
            - "ARG1"
            - "ARG-N"
    

    מחליפים את:

    • IMAGE_URL עם הפניה לקובץ אימג' של קונטיינר, לדוגמה, gcr.io/cloudrun/hello.
    • אופציונלי: COMMAND עם הפקודה שרוצים שהקונטיינר יפעיל במהלך ההפעלה.
    • אופציונלי: ARG1 עם ארגומנט אחד או יותר לפקודה שמופעלת במהלך ההפעלה. אם יש יותר מארגומנט אחד, צריך להשתמש ברשימה מופרדת בפסיקים.
  3. מחליפים את השירות בהגדרה החדשה שלו באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml