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

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

תרחישים לדוגמה

אפשר להגדיר את הסוגים הבאים של בדיקות תקינות:

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

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

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

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

הגדרת בדיקות מוכנות להפעלה

אפשר להגדיר בדיקות HTTP,‏ TCP ו-gRPC באמצעות Google Cloud CLI או YAML:

gcloud

הפעלה של TCP

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

  gcloud beta run instances create INSTANCE \
      --image=IMAGE_URL \
      --startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

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

  • ‫INSTANCE: השם של מופע 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.
  • ‫CONTAINER_PORT (אופציונלי): יציאת הקונטיינר שמשמשת את המופע.
  • ‫DELAY: מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבדיקה הראשונה. מציינים ערך בין 0 שניות ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
  • ‫TIMEOUT (אופציונלי): מספר השניות לחכות עד שהבדיקה תסתיים. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-600 (או 1800 ל-GPU). ערך ברירת המחדל הוא 1.
  • ‫THRESHOLD: מספר הפעמים לניסיון חוזר של הבדיקה לפני כיבוי הקונטיינר. ערך ברירת המחדל הוא 3.
  • ‫PERIOD: תקופה (בשניות) שבה תתבצע הבדיקה. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 10 שניות.

הפעלה של HTTP

מוסיפים נקודת קצה של HTTP/1 (ברירת המחדל של Cloud Run, לא HTTP/2) בקוד של המכונה כדי להגיב לבקשה לבדיקת תקינות (probe). שם נקודת הקצה (לדוגמה, /startup,‏ /health או /are_you_ready) צריך להיות זהה ל-path בהגדרת הבדיקה. נקודות קצה (endpoints) של בדיקות תקינות של HTTP נגישות מבחוץ ומבוססות על אותם עקרונות כמו נקודות קצה אחרות של מופעי HTTP שחשופות מבחוץ.

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

  gcloud beta run instances create INSTANCE \
      --image=IMAGE_URL \
      --startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

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

  • ‫INSTANCE: השם של מופע 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.
  • ‫PATH: נתיב יחסי לנקודת הקצה ב-HTTP, לדוגמה, /health.
  • ‫CONTAINER_PORT (אופציונלי): מגדירים את יציאת מאגר התגים שמשמשת את המופע.
  • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
  • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני סגירת ה-container. ערך ברירת המחדל הוא 3.
  • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין ב-periodSeconds. מציינים ערך בין 1 ל-600 (1800 ל-GPU). ערך ברירת המחדל הוא 1.
  • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע הניסיון. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 10 שניות.

הפעלת gRPC

מוודאים שקובץ אימג' של קונטיינר מטמיע את פרוטוקול בדיקת התקינות של gRPC.

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

  gcloud beta run instances create INSTANCE \
      --image=IMAGE_URL \
      --startup-probe grpc.port=CONTAINER_PORT,grpc.instance=GRPC_INSTANCE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

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

  • ‫INSTANCE: השם של מופע 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.
  • ‫GRPC_INSTANCE (אופציונלי): אם המאפיין הזה מוגדר, הוא משמש בשדה instance של grpc.health.v1.HealthCheckRequest כשמתבצעת קריאה ל-grpc.health.v1.Health.Check rpc.
  • ‫CONTAINER_PORT (אופציונלי): יציאת הקונטיינר שמשמשת את המופע.
  • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
  • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני סגירת ה-container. ערך ברירת המחדל הוא 3.
  • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין ב-periodSeconds. מציינים ערך בין 1 ל-600 (1800 ל-GPU). ערך ברירת המחדל הוא 1.
  • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע הניסיון. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 10 שניות.

YAML

הפעלה של TCP

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. מגדירים את המאפיין startupProbe כמו שמוצג:

    apiVersion: serving.knative.dev/v1
    kind: Instance
    metadata:
     name: INSTANCE
     annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - image: IMAGE_URL
        startupProbe:
          tcpSocket:
            port: CONTAINER_PORT
          initialDelaySeconds: DELAY
          timeoutSeconds: TIMEOUT
          failureThreshold: THRESHOLD
          periodSeconds: PERIOD

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

    • ‫INSTANCE: השם של מופע 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.
    • ‫CONTAINER_PORT (אופציונלי): יציאת הקונטיינר שמשמשת את המופע.
    • ‫DELAY: מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבדיקה הראשונה. מציינים ערך בין 0 שניות ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
    • ‫TIMEOUT (אופציונלי): מספר השניות לחכות עד שהבדיקה תסתיים. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-600 (או 1800 ל-GPU). ערך ברירת המחדל הוא 1.
    • ‫THRESHOLD: מספר הפעמים לניסיון חוזר של הבדיקה לפני כיבוי הקונטיינר. ערך ברירת המחדל הוא 3.
    • ‫PERIOD: תקופה (בשניות) שבה תתבצע הבדיקה. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 10 שניות.
  3. יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:
    gcloud beta run instances replace instance.yaml

הפעלה של HTTP

מוסיפים נקודת קצה של HTTP/1 (ברירת המחדל של Cloud Run, לא HTTP/2) בקוד של המכונה כדי להגיב לבקשה לבדיקת תקינות (probe). שם נקודת הקצה (לדוגמה, /startup,‏ /health או /are_you_ready) צריך להיות זהה ל-path בהגדרת הבדיקה. נקודות קצה (endpoints) של בדיקות תקינות של HTTP נגישות מבחוץ ומבוססות על אותם עקרונות כמו נקודות קצה אחרות של מופעי HTTP שחשופות מבחוץ.

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. מגדירים את המאפיין startupProbe כמו שמוצג:

    apiVersion: serving.knative.dev/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - image: IMAGE_URL
        startupProbe:
          httpGet:
            path: PATH
            port: CONTAINER_PORT
            httpHeaders:
              - name: HEADER_NAME
                value: HEADER_VALUE
          initialDelaySeconds: DELAY
          timeoutSeconds: TIMEOUT
          failureThreshold: THRESHOLD
          periodSeconds: PERIOD

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

    • ‫INSTANCE: השם של מופע 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.
    • ‫PATH: נתיב יחסי לנקודת הקצה ב-HTTP, לדוגמה, /health.
    • ‫CONTAINER_PORT (אופציונלי): מגדירים את יציאת מאגר התגים שמשמשת את המופע.
    • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
    • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני השבתת ה-container. ערך ברירת המחדל הוא 3.
    • אופציונלי: אפשר להשתמש ב-httpHeaders כדי לספק כמה כותרות מותאמות אישית או כותרות חוזרות באמצעות השדות HEADER_NAME ו-HEADER_VALUE כמו שמוצג.
    • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין ב-periodSeconds. מציינים ערך בין 1 ל-600 (1800 ל-GPU). ערך ברירת המחדל הוא 1.
    • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע הניסיון. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 10 שניות.
    1. אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם אתם מעדכנים מכונה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

      gcloud beta run instances describe INSTANCE --format export > instance.yaml

הפעלת gRPC

מוודאים שקובץ אימג' של קונטיינר מטמיע את פרוטוקול בדיקת התקינות של gRPC.

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. מגדירים את המאפיין startupProbe כמו שמוצג:

    apiVersion: serving.knative.dev/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - image: IMAGE_URL
        startupProbe:
          grpc:
            instance: GRPC_INSTANCE
            port: CONTAINER_PORT
          initialDelaySeconds: DELAY
          timeoutSeconds: TIMEOUT
          failureThreshold: THRESHOLD
          periodSeconds: PERIOD

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

    • ‫INSTANCE: השם של מופע 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.
    • ‫GRPC_INSTANCE (אופציונלי): אם המאפיין הזה מוגדר, הוא משמש בשדה instance של grpc.health.v1.HealthCheckRequest כשמתבצעת קריאה ל-grpc.health.v1.Health.Check rpc.
    • ‫CONTAINER_PORT (אופציונלי): יציאת הקונטיינר שמשמשת את המופע.
    • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
    • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני סגירת ה-container. ערך ברירת המחדל הוא 3.
    • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין ב-periodSeconds. מציינים ערך בין 1 ל-600 (1800 ל-GPU). ערך ברירת המחדל הוא 1.
    • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע הניסיון. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 10 שניות.
  3. אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם אתם מעדכנים מכונה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml

בדיקת התקינות של TCP שמוגדרת כברירת מחדל בזמן ההפעלה

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

startupProbe:
          timeoutSeconds: 240
          periodSeconds: 240
          failureThreshold: 1

אפשר לשנות את ערכי ברירת המחדל האלה לפי ההוראות שבקטע הגדרת בקשה לבדיקת תקינות (probe) בדף הזה.

דרישות ופעולות של בדיקת מוכנות להפעלה

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

אם בדיקת ההפעלה לא מצליחה בתוך הזמן שצוין (failureThreshold * periodSeconds), שלא יכול להיות יותר מ-600 שניות (1,800 שניות ל-GPU), הקונטיינר מושבת. אפשר לעיין גם במאמר בנושא ברירות מחדל של TCP.
הפעלה של HTTP יצירת נקודת קצה (endpoint) לבדיקת תקינות ב-HTTP
שימוש ב-HTTP/1
אחרי הגדרת בדיקת המוכנות, Cloud Run שולח בקשת HTTP GET לנקודת הקצה של בדיקת תקינות (לדוגמה, /health). כל תגובה מסוג 2XX או 3XX מציינת שהבדיקה הצליחה, וכל תגובה אחרת מציינת שהיא נכשלה.

אם בדיקת ההפעלה לא מצליחה בתוך הזמן שצוין (failureThreshold * periodSeconds), שלא יכול לעלות על 600 שניות (1,800 שניות ל-GPU), הקונטיינר מושבת.
הפעלת gRPC הטמעה של פרוטוקול בדיקת התקינות של gRPC במופע Cloud Run אם בדיקת ההפעלה לא מצליחה בתוך הזמן שצוין (failureThreshold * periodSeconds), שלא יכול להיות יותר מ-600 שניות (1,800 עבור GPU), הקונטיינר מושבת.

הגדרת בדיקות תקינות (liveness probes)

אפשר להגדיר בדיקות HTTP ו-gRPC באמצעות Google Cloud SDK או YAML:

gcloud

בדיקת פעילות של HTTP

מוסיפים נקודת קצה של HTTP/1 (ברירת המחדל של Cloud Run, לא HTTP/2) בקוד של המכונה כדי להגיב לבקשה לבדיקת תקינות (probe). שם נקודת הקצה (לדוגמה, /startup,‏ /health או /are_you_ready) צריך להיות זהה ל-path בהגדרת הבדיקה. נקודות קצה (endpoints) של בדיקות תקינות של HTTP נגישות מבחוץ ומבוססות על אותם עקרונות כמו נקודות קצה אחרות של מופעי HTTP שחשופות מבחוץ.

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

  gcloud beta run instances deploy INSTANCE \
      --image=IMAGE_URL \
      --liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

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

  • ‫INSTANCE: השם של מופע 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.
  • ‫PATH: נתיב יחסי לנקודת הקצה ב-HTTP, לדוגמה, /health.
  • ‫CONTAINER_PORT (אופציונלי): מגדירים את יציאת מאגר התגים שמשמשת את המופע.
  • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
  • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני השבתת ה-container. ערך ברירת המחדל הוא 3.
  • זה שינוי אופציונלי. ‫TIMEOUT: מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-3,600.ערך ברירת המחדל הוא 1.
  • זה שינוי אופציונלי. ‫PERIOD: התקופה (בשניות) שבה תתבצע הבדיקה. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-3,600 שניות. ערך ברירת המחדל הוא 10 שניות.

gRPC liveness

מוודאים שקובץ אימג' של קונטיינר מטמיע את פרוטוקול בדיקת התקינות של gRPC.

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

  gcloud beta run instances deploy INSTANCE \
      --image=IMAGE_URL \
      --liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

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

  • ‫INSTANCE: השם של מופע 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.
  • ‫GRPC_INSTANCE (אופציונלי): אם המאפיין הזה מוגדר, הוא משמש בשדה instance של grpc.health.v1.HealthCheckRequest כשמתבצעת קריאה ל-grpc.health.v1.Health.Check rpc.
  • ‫CONTAINER_PORT (אופציונלי): יציאת הקונטיינר שמשמשת את המופע.
  • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
  • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני השבתת ה-container. ערך ברירת המחדל הוא 3.
  • זה שינוי אופציונלי. ‫TIMEOUT: מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-3,600.ערך ברירת המחדל הוא 1.
  • זה שינוי אופציונלי. ‫PERIOD: התקופה (בשניות) שבה תתבצע הבדיקה. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-3,600 שניות. ערך ברירת המחדל הוא 10 שניות.

YAML

בדיקת פעילות של HTTP

מוסיפים נקודת קצה של HTTP/1 (ברירת המחדל של Cloud Run, לא HTTP/2) בקוד של המכונה כדי להגיב לבקשה לבדיקת תקינות (probe). שם נקודת הקצה (לדוגמה, /startup,‏ /health או /are_you_ready) צריך להיות זהה ל-path בהגדרת הבדיקה. נקודות קצה (endpoints) לבדיקת תקינות של HTTP נגישות מבחוץ, והן פועלות לפי אותם עקרונות כמו נקודות קצה אחרות של מופע HTTP שחשופות מבחוץ.

  1. אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם אתם מעדכנים מופע קיים, צריך להוריד את הגדרות ה-YAML שלו:
    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. מגדירים את המאפיין livenessProbe כמו שמוצג:

    apiVersion: serving.knative.dev/v1
    apiVersion: serving.knative.dev/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - image: IMAGE_URL
        livenessProbe:
          httpGet:
            path: PATH
            port: CONTAINER_PORT
            httpHeaders:
              - name: HEADER_NAME
                value: HEADER_VALUE
          initialDelaySeconds: DELAY
          timeoutSeconds: TIMEOUT
          failureThreshold: THRESHOLD
          periodSeconds: PERIOD

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

    • ‫INSTANCE: השם של מופע 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.
    • ‫PATH: נתיב יחסי לנקודת הקצה ב-HTTP, לדוגמה, /health.
    • ‫CONTAINER_PORT (אופציונלי): מגדירים את יציאת מאגר התגים שמשמשת את המופע.
    • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
    • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני השבתת ה-container. ערך ברירת המחדל הוא 3.
    • אופציונלי: אפשר להשתמש ב-httpHeaders כדי לספק כמה כותרות מותאמות אישית או כותרות חוזרות באמצעות השדות HEADER_NAME ו-HEADER_VALUE כמו שמוצג.
    • זה שינוי אופציונלי. ‫TIMEOUT: מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-3,600.ערך ברירת המחדל הוא 1.
    • זה שינוי אופציונלי. ‫PERIOD: התקופה (בשניות) שבה תתבצע הבדיקה. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-3,600 שניות. ערך ברירת המחדל הוא 10 שניות.
  3. יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:
    gcloud beta run instances replace instance.yaml

gRPC liveness

מוודאים שקובץ אימג' של קונטיינר מטמיע את פרוטוקול בדיקת התקינות של gRPC.

  1. אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם אתם מעדכנים מופע קיים, צריך להוריד את הגדרות ה-YAML שלו:
    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. מגדירים את המאפיין livenessProbe כמו שמוצג:

    apiVersion: serving.knative.dev/v1
    apiVersion: serving.knative.dev/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - image: IMAGE_URL
        livenessProbe:
          grpc:
            port: CONTAINER_PORT
            service: GRPC_SERVICE
            initialDelaySeconds: DELAY
            timeoutSeconds: TIMEOUT
            failureThreshold: THRESHOLD
            periodSeconds: PERIOD

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

    • ‫INSTANCE: השם של מופע 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.
    • ‫GRPC_INSTANCE (אופציונלי): אם המאפיין הזה מוגדר, הוא משמש בשדה instance של grpc.health.v1.HealthCheckRequest כשמתבצעת קריאה ל-grpc.health.v1.Health.Check rpc.
    • ‫CONTAINER_PORT (אופציונלי): יציאת הקונטיינר שמשמשת את המופע.
    • DELAY (אופציונלי): מספר השניות להמתנה אחרי שהקונטיינר התחיל לפעול לפני שמבצעים את הבקשה לבדיקת תקינות (probe) הראשונה. מציינים ערך מ-0 שניות עד 600 שניות (1,800 ל-GPU). ערך ברירת המחדל הוא 0 שניות.
    • ‫THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבדיקה לפני השבתת ה-container. ערך ברירת המחדל הוא 3.
    • זה שינוי אופציונלי. ‫TIMEOUT: מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-3,600.ערך ברירת המחדל הוא 1.
    • זה שינוי אופציונלי. ‫PERIOD: התקופה (בשניות) שבה תתבצע הבדיקה. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין שנייה אחת ל-3,600 שניות. ערך ברירת המחדל הוא 10 שניות.

  3. יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:
    gcloud beta run instances replace instance.yaml

הדרישות לגבי בדיקת פעילות וההתנהגות שלה

סוג הבדיקה דרישות התנהגות
בדיקת פעילות של HTTP יצירת נקודת קצה (endpoint) לבדיקת תקינות ב-HTTP
שימוש ב-HTTP/1
בדיקת החיות מתחילה רק אחרי שבדיקת ההפעלה מסתיימת בהצלחה. אחרי הגדרת הבקשה לבדיקת תקינות (probe), ואחרי שכל בקשה לבדיקת תקינות (probe) של אתחול מסתיימת בהצלחה, Cloud Run שולח בקשת GET לנקודת הקצה של בדיקת תקינות (לדוגמה, /health). כל תגובה מסוג 2XX או 3XX נחשבת להצלחה, וכל תגובה אחרת מצביעה על כשל.

אם בקשה לבדיקת תקינות (probe) של מצב פעילות (liveness) לא מסתיימת בהצלחה בתוך הזמן שצוין (failureThreshold * periodSeconds), הקונטיינר מושבת באמצעות אות SIGKILL. כל הבקשות שנותרו שעדיין מוגשות על ידי הקונטיינר מסתיימות עם קוד סטטוס של HTTP‏ 503. אחרי שהקונטיינר מושבת, שינוי הגודל האוטומטי ב-Cloud Run מפעיל מופע קונטיינר חדש.
gRPC liveness הטמעה של פרוטוקול בדיקת התקינות של gRPC במופע Cloud Run אם מגדירים בדיקת מוכנות להפעלה של gRPC, בדיקת הפעילות מתחילה רק אחרי שבדיקת המוכנות להפעלה מסתיימת בהצלחה.

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

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

הגדרת בדיקות מוכנות

המגבלות הבאות חלות על בדיקות מוכנות:

  • אם מפעילים את התכונה 'זיקה לסשן (session affinity)',‏ Cloud Run ממשיך לשלוח בקשות לאותו מופע, גם אם בדיקת המוכנות שלו נכשלת.

אפשר להגדיר בדיקת מוכנות באמצעות Google Cloud CLI או YAML:

gcloud

מוכנות ל-HTTP

מוסיפים נקודת קצה של HTTP/1 (ברירת המחדל של Cloud Run, לא HTTP/2) בקוד של המכונה כדי להגיב לבקשה לבדיקת תקינות (probe). שם נקודת הקצה (לדוגמה, /startup,‏ /health או /are_you_ready) צריך להיות זהה ל-path בהגדרת הבדיקה. נקודות קצה (endpoints) לבדיקת תקינות של HTTP נגישות מבחוץ, והן פועלות לפי אותם עקרונות כמו נקודות קצה אחרות של מופע HTTP שחשופות מבחוץ.

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

gcloud beta run instances deploy INSTANCE \
    --image=IMAGE_URL \
    --readiness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

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

  • ‫INSTANCE: השם של מופע 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.
  • ‫PATH (אופציונלי): הנתיב היחסי לנקודת הקצה (endpoint) של HTTP, לדוגמה, /are_you_ready. נתיב ברירת המחדל הוא /.
  • ‫CONTAINER_PORT (אופציונלי): יציאת ה-container שמשמשת את המופע. יציאת ברירת המחדל היא יציאת הכניסה הראשית.
  • ‫SUCCESS_THRESHOLD (אופציונלי): מספר ההצלחות המינימלי ברצף שנדרש כדי שהבקשה לבדיקת תקינות (probe) תיחשב מוצלחת אחרי כשל. ערך ברירת המחדל הוא 2.
  • FAILURE_THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבקשה לבדיקת תקינות (probe) לפני דיווח על כשל, שגורם להפסקת קבלת תעבורת נתונים במכונה. ערך ברירת המחדל הוא 3.
  • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 1.
  • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע החיפוש. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 10 שניות.

מוכנות ל-gRPC

מוודאים שקובץ אימג' של קונטיינר מטמיע את פרוטוקול בדיקת התקינות של gRPC.

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

gcloud beta run instances deploy INSTANCE \
    --image=IMAGE_URL \
    --readiness-probe grpc.port=CONTAINER_PORT,grpc.instance=GRPC_INSTANCE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

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

  • ‫INSTANCE: השם של מופע 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.
  • ‫CONTAINER_PORT (אופציונלי): יציאת ה-container שמשמשת את המופע. יציאת ברירת המחדל היא יציאת הכניסה הראשית.
  • ‫GRPC_INSTANCE (אופציונלי): אם המאפיין הזה מוגדר, הוא משמש בשדה המופע של grpc.health.v1.HealthCheckRequest כשקוראים ל-grpc.health.v1.Health.Check rpc.
  • ‫SUCCESS_THRESHOLD (אופציונלי): מספר ההצלחות המינימלי ברצף שנדרש כדי שהבקשה לבדיקת תקינות (probe) תיחשב מוצלחת אחרי כשל. ערך ברירת המחדל הוא 2.
  • FAILURE_THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבקשה לבדיקת תקינות (probe) לפני דיווח על כשל, שגורם להפסקת קבלת תעבורת נתונים במכונה. ערך ברירת המחדל הוא 3.
  • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 1.
  • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע הניסיון. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 10 שניות.

YAML

מוכנות ל-HTTP

מוסיפים נקודת קצה של HTTP/1 (ברירת המחדל של Cloud Run, לא HTTP/2) בקוד של המכונה כדי להגיב לבקשה לבדיקת תקינות (probe). שם נקודת הקצה (לדוגמה, /startup,‏ /health או /are_you_ready) צריך להיות זהה ל-path בהגדרת הבדיקה. נקודות קצה (endpoints) של בדיקות תקינות של HTTP נגישות מבחוץ, והן פועלות לפי אותם עקרונות כמו נקודות קצה אחרות של מופעי HTTP שחשופות מבחוץ.

  1. אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם אתם מעדכנים מופע קיים, צריך להוריד את הגדרות ה-YAML שלו:
    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. מגדירים את המאפיין readinessProbe כמו שמוצג:

    apiVersion: serving.knative.dev/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            readinessProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
              successThreshold: SUCCESS_THRESHOLD
              failureThreshold: FAILURE_THRESHOLD
              timeoutSeconds: TIMEOUT
              periodSeconds: PERIOD

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

    • ‫INSTANCE: השם של מופע 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.
    • ‫PATH (אופציונלי): הנתיב היחסי לנקודת הקצה (endpoint) של HTTP, לדוגמה, /are_you_ready. נתיב ברירת המחדל הוא /.
    • ‫CONTAINER_PORT (אופציונלי): יציאת ה-container שמשמשת את המופע. יציאת ברירת המחדל היא יציאת הכניסה הראשית.
    • ‫SUCCESS_THRESHOLD (אופציונלי): מספר ההצלחות המינימלי ברצף שנדרש כדי שהבקשה לבדיקת תקינות (probe) תיחשב מוצלחת אחרי כשל. ערך ברירת המחדל הוא 2.
    • FAILURE_THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבקשה לבדיקת תקינות (probe) לפני דיווח על כשל, שגורם להפסקת קבלת תעבורת נתונים במכונה. ערך ברירת המחדל הוא 3.
    • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 1.
    • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע הניסיון. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 10 שניות.

  3. יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:
    gcloud beta run instances replace instance.yaml

מוכנות ל-gRPC

מוודאים שקובץ אימג' של קונטיינר מטמיע את פרוטוקול בדיקת התקינות של gRPC.

  1. אם אתם יוצרים מכונה חדשה, דלגו על השלב הזה. אם אתם מעדכנים מופע קיים, צריך להוריד את הגדרות ה-YAML שלו:
    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. מגדירים את המאפיין readinessProbe כמו שמוצג:

    apiVersion: serving.knative.dev/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            readinessProbe:
              grpc:
                port: CONTAINER_PORT
                instance: GRPC_INSTANCE
              successThreshold: SUCCESS_THRESHOLD
              failureThreshold: FAILURE_THRESHOLD
              timeoutSeconds: TIMEOUT
              periodSeconds: PERIOD

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

    • ‫INSTANCE: השם של מופע 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.
    • ‫CONTAINER_PORT (אופציונלי): יציאת ה-container שמשמשת את המופע. יציאת ברירת המחדל היא יציאת הכניסה הראשית.
    • ‫GRPC_INSTANCE (אופציונלי): אם המאפיין הזה מוגדר, הוא משמש בשדה המופע של grpc.health.v1.HealthCheckRequest כשקוראים ל-grpc.health.v1.Health.Check rpc.
    • ‫SUCCESS_THRESHOLD (אופציונלי): מספר ההצלחות המינימלי ברצף שנדרש כדי שהבקשה לבדיקת תקינות (probe) תיחשב מוצלחת אחרי כשל. ערך ברירת המחדל הוא 2.
    • FAILURE_THRESHOLD (אופציונלי): מספר הפעמים שיש לנסות שוב את הבקשה לבדיקת תקינות (probe) לפני דיווח על כשל, שגורם להפסקת קבלת תעבורת נתונים במכונה. ערך ברירת המחדל הוא 3.
    • ‫TIMEOUT (אופציונלי): מספר השניות להמתנה עד שזמן הקצוב לתפוגה של הבדיקה יגיע. הערך הזה לא יכול להיות גבוה מהערך שצוין עבור periodSeconds. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 1.
    • ‫PERIOD (אופציונלי): התקופה (בשניות) שבה יתבצע הניסיון. לדוגמה, 2 כדי לבצע את הבקשה לבדיקת תקינות (probe) כל 2 שניות. מציינים ערך בין 1 ל-300. ערך ברירת המחדל הוא 10 שניות.

  3. יוצרים או מעדכנים את המכונה באמצעות הפקודה הבאה:
    gcloud beta run instances replace instance.yaml

דרישות ודפוסי התנהגות של בדיקת מוכנות

סוג הבדיקה דרישות התנהגות
מוכנות ל-HTTP יצירת נקודת קצה (endpoint) לבדיקת תקינות ב-HTTP
שימוש ב-HTTP/1
בדיקת המוכנות מתחילה רק אחרי שבדיקת ההפעלה מסתיימת בהצלחה. אחרי הגדרת הבדיקה, ואחרי שכל בדיקת הפעלה מסתיימת בהצלחה, Cloud Run שולח בקשת HTTP GET לנקודת הקצה של בדיקת תקינות (לדוגמה, /are_you_ready). כל תגובה מסוג 2XX או 3XX מציינת הצלחה, וכל תגובה אחרת מציינת כשל.

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

אם מופע נכשל בבדיקת המוכנות שלו מעבר לערך failureThreshold שהוגדר, Cloud Run מפסיק להפנות בקשות חדשות למופע בלי לכבות אותו, וממשיך להפנות בקשות אחרי שהמופע עובר את בדיקת המוכנות שלו (successThreshold פעמים רצופות).

הקצאת מעבד (CPU)

  • המעבד תמיד מוקצה כשמריצים בדיקות.
  • כל הבדיקות מחויבות על צריכת משאבי המעבד (CPU) ושימוש בזיכרון, אבל אין חיוב לפי בקשה.

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