הגדרת ארגזי חול למאגרי עובדים

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

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

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. מתקינים ומפעילים את ה-CLI של gcloud.
  7. פריסה של מאגר עובדים ב-Cloud Run.

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

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

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

הפעלת ארגזי חול

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

כדי להפעיל ארגזי חול במאגרי עובדים של Cloud Run, משתמשים ב-Google Cloud CLI או בהגדרת YAML:

gcloud

כדי לפרוס או לעדכן את מאגר העובדים, מציינים את הדגל --sandbox-launcher:

  • כדי לפרוס מאגר עובדים חדש, מריצים את הפקודה הבאה:

    gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --sandbox-launcher

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

    • WORKER_POOL: השם של מאגר העובדים של Cloud Run.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • כדי לעדכן מאגר עובדים קיים, מריצים את הפקודה הבאה:

    gcloud beta run worker-pools update WORKER_POOL --sandbox-launcher

YAML

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

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. מעדכנים את קובץ ה-YAML כך שיכלול את מאפיין sandboxLauncher עם הערך true בתוך הגדרות הקונטיינר:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
            sandboxLauncher: true
    

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

    • WORKER_POOL: השם של מאגר העובדים של Cloud Run.
    • CONTAINER: השם של הקונטיינר.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:

    gcloud run worker-pools replace worker-pool.yaml

    אם קיים קובץ worker-pool.yaml, הפקודה gcloud run worker-pools replace משתמשת בו כברירת מחדל.

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

השבתת ארגזי חול

כדי להשבית את האפשרות להפעיל ארגז חול במאגר העובדים, משתמשים ב-Google Cloud CLI או בהגדרת YAML:

gcloud

כדי לעדכן את מאגר העובדים באמצעות הדגל --no-sandbox-launcher, מריצים את הפקודה הבאה:

gcloud beta run worker-pools update WORKER_POOL --no-sandbox-launcher

מחליפים את WORKER_POOL בשם של מאגר העובדים.

YAML

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

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. מעדכנים את קובץ ה-YAML כדי להסיר את המאפיין sandboxLauncher בהגדרות של מאגר התגים:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER
            image: IMAGE_URL
    

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

    • WORKER_POOL: השם של מאגר העובדים של Cloud Run.
    • CONTAINER: השם של הקונטיינר.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  3. יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:

    gcloud run worker-pools replace worker-pool.yaml

    אם קיים קובץ worker-pool.yaml, הפקודה gcloud run worker-pools replace משתמשת בו כברירת מחדל.

צפייה בהגדרות ארגז החול

כדי לראות את הגדרות הסביבה המבודדת הנוכחיות של מאגר העובדים ב-Cloud Run:

המסוף

  1. במסוף Google Cloud , נכנסים לדף Worker pools של Cloud Run:

    כניסה לדף Cloud Run worker pools

  2. לוחצים על מאגר העובדים כדי לפתוח את הדף פרטי מאגרי עובדים.

  3. לוחצים על הכרטיסייה עדכונים.

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

gcloud

  1. משתמשים בפקודה הבאה:

    gcloud run worker-pools describe WORKER_POOL

    מחליפים את WORKER_POOL בשם של מאגר העובדים.

  2. כדי לוודא שהפעלתם את הארגזים המבודדים, מאתרים את המאפיין sandboxLauncher: true בהגדרות שמוחזרות.

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