VPC ישיר עם רשת VPC

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

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

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

מגבלות

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

  • יכול להיות שתיתקלו בעיכובים של דקה או יותר בהקמת החיבור בהפעלה של מופע כשמשתמשים בתעבורת נתונים יוצאת ישירה מ-VPC. מומלץ להגדיר בקשה לבדיקת תקינות (probe) של HTTP שבודקת חיבור ליעד תעבורת נתונים יוצאת (egress) שבו האפליקציה משתמשת לפני שהאפליקציה מקבלת בקשות. בבדיקה הזו של קישוריות יציאה צריך להטמיע ניסיונות חוזרים, או להגדיר את בדיקת המוכנות להפעלה עם הגדרות מתאימות של תקופה וסף שיפעלו כניסיון חוזר.
  • ‫Cloud Run תומך ברוחב פס של עד ‎1 Gbps לכל מופע. חריגה מהסכום הזה תגרום להגבלת הביצועים.
  • מכסת השימוש ב-Cloud Run מגבילה את המספר המקסימלי של מופעים שאפשר להגדיר לשימוש ביציאה ישירה מ-VPC. המספר המקסימלי מוגדר לכל עדכון (revision) של Cloud Run או לכל הפעלה של משימה. כדי להגדיל את המכסות שמוגדרות כברירת מחדל, אפשר לעיין במאמר בנושא הגדלת מכסות.

  • שירותים ומשימות ב-Cloud Run שירותים, משימות ומאגרי עובדים עלולים לחוות ניתוקים במהלך אירועי תחזוקה של תשתית הרשת. מומלץ להשתמש בספריות לקוח שיכולות לטפל באיפוסים מדי פעם של החיבור.
  • ‫Network Intelligence Center תומך רק בבדיקות קישוריות ובFlow Analyzer לטווחים של רשתות משנה IPv4 ו-IPv6.
  • שירותים ומשימות ב-Cloud Run שירותים ומשימות ב-Cloud Run לא תומכים בתעבורת נתונים נכנסת (ingress) ישירה מ-VPC. מאגרי עובדים תומכים גם ביציאה ישירה מ-VPC וגם בכניסה ישירה ל-VPC.
  • גם אם מאגרי העובדים תומכים בתעבורת נתונים נכנסת (ingress) ישירה של VPC, אי אפשר להשתמש בתגי רשת כדי להגדיר את היעד של כלל חומת אש לתעבורת נתונים נכנסת.

אין תמיכה בפריטים הבאים ביציאה ישירה של VPC:

  • ב-VPC Flow Logs לא מופיע השם של הגרסה ב-Cloud Run.
  • ניהול כללי חומת אש
  • רפליקציה של חבילות נתונים
  • Network tags או service identity בכללי חומת האש לתעבורת נתונים נכנסת.
  • כללי חומת אש לא יכולים להשתמש בתגי מנהל המשאבים שמצורפים לעומסי עבודה של Cloud Run.
  • יכול להיות שיהיו ניתוקים בחיבור למשימות ב-Cloud Run שפועלות יותר משעה. הן יכולות להתרחש במהלך אירועי תחזוקה שמעבירים את העבודה ממכונה אחת למכונה אחרת. מאגר התגים מקבל אות SIGTSTP‏ 10 שניות לפני האירוע ואות SIGCONT אחרי האירוע. אחרי שהמאגר מקבל את האות SIGCONT, מנסים שוב להתחבר.

הקצאת כתובות IP

כדי למקם את שירות Cloud Run ברשת VPC, צריך לציין רשת VPC או רשת משנה, או את שניהם. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. ‫Cloud Run מקצה כתובות IP מתת-הרשת שלכם.

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

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

הגדלה והקטנה של נפח הפעילות

כדי להגדיל את הקיבולת מהר יותר בזמן עלייה חדה בתנועת הגולשים, Cloud Run שומר כתובות IP בחסימות של 16 (מסכה של רשת משנה 28) בכל פעם. אילו כתובות IP הוקצו ל-Cloud Run כדי לוודא שיש לכם מספיק כתובות IPv4 לשימוש ב-Cloud Run, טווח כתובות ה-IPv4 של רשת המשנה צריך להיות /26 או גדול יותר.

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

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

צריכת כתובות IP בשירותים ובמאגרי עובדים

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

לדוגמה, אם משדרגים את הגרסאות כך שמספר המופעים של revision 1 יירד מ-100 לאפס, ומספר המופעים של revision 2 יעלה מאפס ל-100, מערכת Cloud Run תשמור את כתובות ה-IP של revision 1 למשך עד 20 דקות אחרי ההקטנה. במהלך חלון השמירה של 20 דקות, אתם צריכים להזמין לפחות 400 כתובות IP‏ ((100 + 100) * 2).

צריכת כתובות IP למשרות

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

לדוגמה:

  • משימה יומית שמופעלת פעם ביום ומושלמת תמיד לפחות 7 דקות לפני ההפעלה הבאה, צורכת כתובת IP אחת לכל היותר ברשת המשנה.
  • עבודה עם 10 משימות שמופעלות כל 10 דקות, כאשר כל משימה פועלת במשך 15 דקות, צורכת כתובת IP אחת למשך 22 דקות לכל משימה (3 הפעלות צורכות כתובות IP בו-זמנית), כמו שמוצג בדוגמה הבאה. לכן, העבודה צורכת 30 כתובות IP במצב יציב.
  • משימה יחידה שפועלת במשך דקה ומורצת 100 פעמים בדקה דורשת בערך 800 כתובות IP, בהתאם לזמן ההרצה המדויק.

טווחים נתמכים של IPv4

‫Cloud Run תומך בטווחים הבאים של כתובות IPv4 עבור רשת המשנה:

  • RFC 1918
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • RFC 6598
    • 100.64.0.0/10
  • Class E
    • 240.0.0.0/4

הגדרת הרשאות IAM

כדי לוודא של-Cloud Run יש גישה לרשת ה-VPC, אפשר להשתמש באחת מהשיטות הבאות:

  • התפקיד Cloud Run Service Agent: כברירת מחדל, לסוכן השירות של Cloud Run מוקצה התפקיד Cloud Run Service Agent ‏ (roles/run.serviceAgent) שמכיל את ההרשאות הנדרשות.

  • הרשאות בהתאמה אישית: כדי לקבל שליטה מפורטת יותר, צריך לתת לסוכן השירות של Cloud Run את ההרשאות הנוספות הבאות בפרויקט:

    • compute.networks.get
    • compute.subnetworks.get
    • compute.subnetworks.use בפרויקט או ברשת המשנה הספציפית
    • compute.addresses.get
    • compute.addresses.list
    • compute.addresses.create (נדרש רק עבור רשתות משנה עם מחסנית כפולה ו-IPv6 חיצוני)
    • compute.addresses.delete (נדרש רק לרשתות משנה עם מחסנית כפולה ו-IPv6 חיצוני)
    • compute.addresses.createInternal
    • compute.addresses.deleteInternal
    • compute.regionOperations.get
  • התפקיד Compute Network User: אם לא משתמשים בתפקיד ברירת המחדל של סוכן השירות של Cloud Run או בהרשאות בהתאמה אישית, צריך להעניק את התפקיד Compute Network User ‏ (roles/compute.networkUser) בחשבון השירות של סוכן השירות של Cloud Run. ברשתות משנה עם IPv6 חיצוני נדרש גם התפקיד 'אדמין של כתובות IP ציבוריות ב-Compute' (roles/compute.publicIpAdmin).

    לדוגמה, כדי להעניק את התפקיד Compute Network User, מריצים את הפקודה הבאה:

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \
    --role "roles/compute.networkUser"

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

    • PROJECT_ID: מזהה הפרויקט.
    • PROJECT_NUMBER: מספר הפרויקט שבו פורס משאב Cloud Run.

חיבור משאבי Cloud Run לרשת VPC

בהתאם למשאב Cloud Run שיש לכם, פועלים לפי ההוראות באחד מהקטעים הבאים:

חיבור שירות לרשת VPC

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

אפשר להגדיר יציאה ישירה מ-VPC עם שירות באמצעותGoogle Cloud המסוף, Google Cloud CLI,‏ YAML או Terraform.

המסוף

  1. כניסה ל-Cloud Run

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

  3. אם אתם מגדירים שירות חדש, ממלאים את הדף של הגדרות השירות הראשוניות לפי הצורך, ואז לוחצים על Container(s), Volumes, Networking, Security (מאגרים, אמצעי אחסון, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.

  4. נכנסים לכרטיסייה Networking.

  5. לוחצים על Connect to a VPC for outbound traffic (קישור ל-VPC לתעבורה יוצאת).

  6. לוחצים על שליחת תנועה ישירות ל-VPC.

  7. בשדה Network (רשת), בוחרים את רשת ה-VPC שאליה רוצים לשלוח תנועה.

  8. בשדה Subnet (רשת משנה), בוחרים את רשת המשנה שבה השירות מקבל כתובות IP. אפשר לפרוס כמה שירותים באותה רשת משנה.

  9. אופציונלי: מזינים את השמות של תגי הרשת שרוצים לשייך לשירות או לשירותים. תגי רשת מצוינים ברמת הגרסה. לכל גרסה של שירות יכולים להיות תגי רשת שונים, כמו network-tag-2.

  10. בקטע Traffic routing (ניתוב תנועה), בוחרים באחת מהאפשרויות הבאות:

    • הפניית בקשות רק לכתובות IP פרטיות אל ה-VPC כדי לשלוח תעבורה רק לכתובות פנימיות דרך רשת ה-VPC.
    • העברת כל התעבורה ל-VPC כדי לשלוח את כל התעבורה היוצאת דרך רשת ה-VPC.
  11. לוחצים על יצירה או על פריסה.

  12. כדי לוודא שהשירות נמצא ברשת ה-VPC, לוחצים על השירות ואז על הכרטיסייה Networking (רשת). הרשת ותת-הרשת מופיעות בכרטיס VPC.

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

gcloud

כדי לפרוס שירות Cloud Run בלי מחבר מ-Google Cloud CLI:

  1. מעדכנים את הרכיבים של gcloud לגרסה האחרונה:

    gcloud components update
  2. מוודאים ש-Compute Engine API מופעל בפרויקט:

    gcloud services enable compute.googleapis.com
    
  3. פורסים את שירות Cloud Run באמצעות הפקודה הבאה:

    gcloud run deploy SERVICE_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION

    מחליפים את:

    • SERVICE_NAME מחליפים בשם של שירות 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
    • NETWORK בשם של רשת ה-VPC. מציינים רשת VPC או רשת משנה, או את שניהם. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת.
    • SUBNET בשם של רשת המשנה. צריך לציין רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. אתם יכולים לפרוס או להפעיל כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
    • אופציונלי: NETWORK_TAG_NAMES עם השמות המופרדים בפסיקים של תגי הרשת שרוצים לשייך לשירות. בשירותים, תגי הרשת מצוינים ברמת השינוי. לכל גרסה של שירות יכולים להיות תגי רשת שונים, כמו network-tag-2.
    • EGRESS_SETTING עם ערך של הגדרת יציאה:
      • all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC.
      • private-ranges-only: שולח תנועה רק לכתובות פנימיות דרך רשת ה-VPC.
    • REGION עם אזור לשירות שלכם.
  4. כדי לוודא שהשירות שלכם נמצא ברשת ה-VPC, מריצים את הפקודה הבאה:

    gcloud run services describe SERVICE_NAME \
    --region=REGION

    מחליפים את:

    • SERVICE_NAME בשם של השירות.
    • REGION באזור השירות שציינתם בשלב הקודם.

    הפלט צריך לכלול את השם של הרשת, רשת המשנה והגדרת תעבורת הנתונים היוצאת (egress), למשל:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

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

YAML

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

    gcloud run services describe SERVICE --format export > service.yaml
  2. מעדכנים את המאפיינים הבאים:

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

    מחליפים את:

    • SERVICE_NAME מחליפים בשם של שירות Cloud Run. שמות של שירותים צריכים להיות באורך של עד 49 תווים, והם צריכים להיות ייחודיים לכל אזור ופרויקט.
    • REGION מחליפים באזור של שירות Cloud Run, שחייב להיות זהה לאזור של רשת המשנה.
    • NETWORK בשם של רשת ה-VPC. מציינים רשת VPC או רשת משנה, או את שניהם. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת.
    • SUBNET בשם של רשת המשנה. צריך לציין רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. אתם יכולים לפרוס או להפעיל כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
    • אופציונלי: NETWORK_TAG_NAMES עם השמות של תגי הרשת שרוצים לשייך לשירות. בשירותים, תגי הרשת מצוינים ברמת השינוי. לכל גרסה של שירות יכולים להיות תגי רשת שונים, כמו network-tag-2.
    • EGRESS_SETTING עם ערך של הגדרת יציאה:
      • all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC.
      • private-ranges-only: שולח תנועה רק לכתובות פנימיות דרך רשת ה-VPC.
    • IMAGE בכתובת ה-URL של קובץ אימג' הקונטיינר של השירות.

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

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

    gcloud run services replace service.yaml

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

  1. מוסיפים לקובץ main.tf את הנתונים הבאים:

    /**
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    # Example configuration of a Cloud Run service with direct VPC
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-service"
      location = "us-central1"
    
      deletion_protection = false # set to "true" in production
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    

אם רוצים לאפשר גישה לשירות ללא אימות, אפשר להגדיר את השירות כציבורי.

חיבור של עבודה לרשת VPC

תעבורת נתונים יוצאת ישירה מרשת VPC מאפשרת למשימה ב-Cloud Run לשלוח תעבורה לרשת VPC בלי מחבר של Serverless VPC Access. אפשר גם להוסיף תגי רשת ישירות למשימות של Cloud Run כדי להגדיר אבטחת רשת ברמה מפורטת יותר, למשל להחיל כללי חומת אש של VPC.

אפשר להגדיר יציאה ישירה מ-VPC באמצעות עבודה באמצעותGoogle Cloud מסוף Google Cloud, Google Cloud CLI או YAML.

המסוף

  1. כניסה ל-Cloud Run

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

  3. לוחצים על Container, Variables & Secrets, Connections, Security (מאגר, משתנים וסודות, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.

  4. לוחצים על הכרטיסייה Connections (קישורים).

  5. לוחצים על Connect to a VPC for outbound traffic (קישור ל-VPC לתעבורה יוצאת).

  6. לוחצים על שליחת תנועה ישירות ל-VPC.

  7. בשדה Network (רשת), בוחרים את רשת ה-VPC שאליה רוצים לשלוח את תנועת הגולשים.

  8. בשדה Subnet (רשת משנה), בוחרים את רשת המשנה שממנה המשימה מקבלת כתובות IP. אפשר להריץ כמה משימות באותה רשת משנה.

  9. בקטע Traffic routing (ניתוב תנועה), בוחרים באחת מהאפשרויות הבאות:

    • הפניית בקשות רק לכתובות IP פרטיות אל ה-VPC כדי לשלוח תעבורה רק לכתובות פנימיות דרך רשת ה-VPC.
    • העברת כל התעבורה ל-VPC כדי לשלוח את כל התעבורה היוצאת דרך רשת ה-VPC.
  10. אופציונלי: מזינים את השמות של תגי הרשת שרוצים לשייך לשירות או לשירותים. תגי רשת מצוינים ברמת הגרסה. לכל גרסה של שירות יכולים להיות תגי רשת שונים, כמו network-tag-2.

  11. אופציונלי: מזינים את השמות של תגי הרשת שרוצים לשייך למשרה או למשרות. לגבי משימות, תגי הרשת מוגדרים ברמת הביצוע. לכל הפעלה של עבודה יכולים להיות תגים שונים של רשתות, כמו network-tag-2.

  12. לוחצים על יצירה או על עדכון.

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

    עכשיו אפשר להריץ את העבודה ב-Cloud Run ולשלוח בקשות מהעבודה לכל משאב ברשת ה-VPC, בהתאם לכללי חומת האש.

gcloud

כדי ליצור משימת Cloud Run בלי מחבר מ-Google Cloud CLI:

  1. מעדכנים את הרכיבים של gcloud לגרסה האחרונה:

    gcloud components update
  2. מוודאים ש-Compute Engine API מופעל בפרויקט:

    gcloud services enable compute.googleapis.com
    
  3. יוצרים משימת Cloud Run באמצעות הפקודה הבאה:

    gcloud run jobs create JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION

    מחליפים את:

    • JOB_NAME מחליפים בשם של משימת Cloud Run.
    • IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/job:latest
    • NETWORK בשם של רשת ה-VPC. מציינים רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת.
    • SUBNET בשם של רשת המשנה. צריך לציין רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. אתם יכולים לפרוס או להפעיל כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
    • אופציונלי: NETWORK_TAG_NAMES עם השמות של תגי הרשת שרוצים לשייך למשרה. במקרה של עבודות, תגי הרשת מצוינים ברמת הביצוע. לכל הפעלה של עבודה יכולים להיות תגים שונים של רשת, כמו network-tag-2.
    • EGRESS_SETTING עם ערך של הגדרת יציאה:
      • all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC.
      • private-ranges-only: שולח תנועה רק לכתובות פנימיות דרך רשת ה-VPC.
    • REGION עם אזור למשרה.
  4. כדי לוודא שהעבודה נמצאת ברשת ה-VPC, מריצים את הפקודה הבאה:

    gcloud run jobs describe JOB_NAME \
      --region=REGION
      

    מחליפים את:

    • JOB_NAME בשם של המשימה.
    • REGION באזור של המשרה שציינתם בשלב הקודם.

    הפלט צריך לכלול את השם של הרשת ושל רשת המשנה, לדוגמה:

    VPC network:
      Network:       default
      Subnet:        default
    

עכשיו אפשר להריץ את העבודה ב-Cloud Run ולשלוח בקשות מהעבודה לכל משאב ברשת ה-VPC, בהתאם לכללי חומת האש.

YAML

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

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. מעדכנים את המאפיינים הבאים:

    apiVersion: run.googleapis.com/v1
      kind: Job
      metadata:
        name: JOB_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

    מחליפים את:

    • JOB_NAME מחליפים בשם של משימת Cloud Run. שמות המשימות צריכים להיות באורך של עד 49 תווים, והם צריכים להיות ייחודיים לכל אזור ופרויקט.
    • REGION עם האזור של משימת Cloud Run, שחייב להיות זהה לאזור של רשת המשנה.
    • NETWORK בשם של רשת ה-VPC. מציינים רשת VPC או רשת משנה, או את שניהם. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת.
    • SUBNET בשם של רשת המשנה. צריך לציין רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. אתם יכולים לפרוס או להפעיל כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
    • אופציונלי: NETWORK_TAG_NAMES עם השמות של תגי הרשת שרוצים לשייך למשרה. במקרה של עבודות, תגי הרשת מצוינים ברמת הביצוע. לכל הפעלה של עבודה יכולים להיות תגים שונים של רשת, כמו network-tag-2.
    • EGRESS_SETTING עם ערך של הגדרת יציאה:
      • all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC.
      • private-ranges-only: שולח תנועה רק לכתובות פנימיות דרך רשת ה-VPC.
    • IMAGE בכתובת ה-URL של קובץ אימג' של קונטיינר של המשימה.
  3. יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:

    gcloud run jobs replace job.yaml

חיבור מאגר עובדים לרשת VPC

התכונה Direct VPC מאפשרת למאגר העובדים של Cloud Run לשלוח או לקבל תעבורה אל או מרשת VPC. כל מופע של מאגר עובדים מקבל כתובת IP פרטית ברשת ובתת-הרשת שהוגדרו.

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

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

אפשר להגדיר יציאה ישירה של תעבורת נתונים יוצאת (egress) מ-VPC באמצעות מסוף Google Cloud , Google Cloud CLI או YAML.

המסוף

  1. כניסה ל-Cloud Run

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

  3. אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ולוחצים על Container(s), Volumes, Networking, Security כדי להרחיב את דף ההגדרות של מאגר העובדים.

  4. נכנסים לכרטיסייה Networking.

  5. בוחרים באפשרות Connect to a VPC (קישור ל-VPC).

  6. לוחצים על יצירה או על פריסה.

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

gcloud

כדי לפרוס מאגר עובדים של Cloud Run בלי מחבר מ-Google Cloud CLI:

  1. מעדכנים את הרכיבים של gcloud לגרסה האחרונה:

    gcloud components update
  2. מוודאים ש-Compute Engine API מופעל בפרויקט:

    gcloud services enable compute.googleapis.com
    
  3. מריצים את הפקודה הבאה כדי לפרוס את מאגר העובדים של Cloud Run:

    gcloud beta run worker-pools deploy WORKER_POOL \
        --image=IMAGE_URL \
        --network=NETWORK \
        --subnet=SUBNET \
        --network-tags=NETWORK_TAG_NAMES \
        --vpc-egress=EGRESS_SETTING \
        --region=REGION

    מחליפים את:

    • WORKER_POOL מחליפים בשם של מאגר העובדים ב-Cloud Run. שמות של מאגרי עובדים צריכים להיות באורך של עד 49 תווים, להיות ייחודיים לכל אזור ופרויקט, ולא להיות זהים לשם של שירות קיים מהפרויקט. אם מאגר העובדים עדיין לא קיים, הפקודה הזו יוצרת את מאגר העובדים במהלך הפריסה. אפשר להשמיט את הפרמטר הזה לגמרי, אבל אם תשמיטו אותו, תתבקשו לציין את השם של מאגר העובדים.
    • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • NETWORK בשם של רשת ה-VPC. מציינים רשת VPC או רשת משנה, או את שניהם. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת.
    • SUBNET בשם של רשת המשנה. צריך לציין רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. אתם יכולים לפרוס או להפעיל כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
    • אופציונלי (רק לתעבורת נתונים יוצאת (egress) ישירה מ-VPC): NETWORK_TAG_NAMES עם השמות המופרדים בפסיקים של תגי הרשת שרוצים לשייך למאגר עובדים. בשירותים, תגי הרשת מצוינים ברמת השינוי. לכל עדכון של מאגר עובדים יכולים להיות תגי רשת שונים, כמו network-tag-2.
    • EGRESS_SETTING עם ערך של הגדרת יציאה:
      • all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC.
      • private-ranges-only: שולח תנועה רק לכתובות פנימיות דרך רשת ה-VPC.
    • REGION מחליפים באזור של מאגר העובדים.
  4. כדי לוודא שמאגר העובדים נמצא ברשת ה-VPC, מריצים את הפקודה הבאה:

    gcloud beta run worker-pools describe WORKER_POOL \
        --region=REGION

    מחליפים את:

    • WORKER_POOL בשם של מאגר העובדים.
    • REGION באזור של מאגר העובדים שציינתם בשלב הקודם.

    הפלט צריך לכלול את השם של הרשת, רשת המשנה והגדרת תעבורת הנתונים היוצאת (egress), למשל:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

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

YAML

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

    gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. מעדכנים את המאפיינים הבאים:

    apiVersion: run.googleapis.com/v1
      kind: WorkerPool
      metadata:
        name: WORKER_POOL
        labels:
          cloud.googleapis.com/location: REGION
        annotations:
          run.googleapis.com/launch-stage: BETA
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE_URL

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

    • WORKER_POOL: השם של מאגר העובדים ב-Cloud Run.
    • REGION: האזור של מאגר העובדים ב-Cloud Run, שחייב להיות זהה לאזור של רשת המשנה.
    • NETWORK: השם של רשת ה-VPC. מציינים רשת VPC או רשת משנה, או את שניהם. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת.
    • SUBNET בשם של רשת המשנה. צריך לציין רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. אתם יכולים לפרוס או להפעיל כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
    • אופציונלי (רק ליציאת VPC ישירה): NETWORK_TAG_NAMES: השמות של תגי הרשת שרוצים לשייך למאגר העובדים. במאגרי עובדים, תגי הרשת מוגדרים ברמת השינוי. לכל גרסה של מאגר העובדים יכולים להיות תגים שונים ברשת, כמו network-tag-2.
    • EGRESS_SETTING: an egress setting value.
      • all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC.
      • private-ranges-only: שולח תנועה רק לכתובות פנימיות דרך רשת ה-VPC.
    • IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר העובדים, למשל us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

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

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

    gcloud beta run worker-pools replace workerpool.yaml

אדמינים יכולים להגביל את הגדרות תעבורת הנתונים היוצאת (egress) שמפתחים יכולים לבחור על ידי הגדרת מדיניות הארגון run.allowedVPCEgress.

אחזור כתובות ה-IP הפרטיות באמצעות שרת המטא-נתונים

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

  • כדי לקבל את כתובת ה-IPv4, שולחים בקשה לשרת המטא-נתונים בנקודת הקצה /computeMetadata/v1/instance/network-interfaces/0/ip:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip" -H "Metadata-Flavor: Google"
    
  • כדי לקבל את כתובת ה-IPv6, צריך ליצור את המכונה עם רשת משנה (subnet) עם תמיכה כפולה במצבי עבודה (dual-stack), ולשלוח בקשה לשרת המטא-נתונים בנקודת הקצה /computeMetadata/v1/instance/network-interfaces/0/ipv6:

    curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ipv6" -H "Metadata-Flavor: Google"
    
  • כדי לוודא שמופע מאגר העובדים מצורף לרשת VPC, שולחים שאילתה לנתיבי המטא-נתונים הבאים של ממשק הרשת:

    # Verify the existence of the network interface directory
    
    curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/" -H "Metadata-Flavor: Google"
    
    # Verify the existence of the first network interface
    
    curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/" -H "Metadata-Flavor: Google"
    

טיפול בשגיאות בשרת המטא-נתונים

שרת המטא-נתונים מחזיר שגיאת 404: Not Found בתרחישים הבאים:

  • אם מבצעים שאילתה לגבי כתובת IPv6 ברשת משנה עם IPv4 בלבד.
  • אם לא מחברים את מופע מאגר העובדים לרשת VPC. במקרה הזה, שרת המטא-נתונים מחזיר שגיאה עבור הנתיבים הבאים:

    • /computeMetadata/v1/instance/network-interfaces
    • /computeMetadata/v1/instance/network-interfaces/0
    • /computeMetadata/v1/instance/network-interfaces/0/ip
    • /computeMetadata/v1/instance/network-interfaces/0/ipv6

הגדרה של dual-stack ‏ (IPv4 ו-IPv6)

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

הגבלת הגישה באמצעות כללי חומת אש

הגבלת הגישה למשאבים ברשת VPC באמצעות כללי חומת אש של VPC. אפשר להוסיף את ההגבלות האלה באחת מהדרכים הבאות:

  • יוצרים כלל חומת אש לתעבורת נתונים נכנסת שמפנה אל השירות או אל העבודה באמצעות טווח כתובות ה-IP של רשת המשנה.
  • יוצרים כלל לחומת אש ליציאה שמתייחס לשירות או לעבודה.

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

תגי רשת לתעבורת נתונים יוצאת (egress)

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

המסוף

כדי לשייך תגי רשת לשירות או לעבודה:

  1. נכנסים לדף Cloud Run במסוף Google Cloud .

    כניסה ל-Cloud Run

  2. לוחצים על השירות או על העבודה שרוצים לשייך להם תגי רשת, ואז לוחצים על עריכה ופריסה של עדכון חדש בשביל שירותים או על עריכה בשביל עבודות.

  3. לוחצים על הכרטיסייה Networking (רשת) בשביל שירותים, או על הכרטיסייה Connections (חיבורים) בשביל משרות.

  4. מוודאים שסימנתם את האפשרויות Connect to a VPC for outbound traffic (התחברות ל-VPC לתעבורה יוצאת) ו-Send traffic directly to a VPC (שליחת תעבורה ישירות ל-VPC).

  5. בשדה Subnet, בוחרים את תת-הרשת שממנה השירות מקבל כתובות IP. אפשר לפרוס או להפעיל כמה שירותים או משימות באותה רשת משנה.

  6. בשדה Network tags, מזינים את השמות של תגי הרשת שרוצים לשייך לשירות או לעבודה.

  7. לוחצים על פריסה או על עדכון.

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

gcloud

כדי לשייך תגי רשת לשירות או לעבודה, משתמשים בפקודה gcloud run deploy:

gcloud run deploy SERVICE_JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --region=REGION

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

  • SERVICE_JOB_NAME בשם של השירות או המשימה.
  • IMAGE_URL עם כתובת ה-URL של התמונה של השירות או המשרה.
  • NETWORK בשם של רשת ה-VPC.
  • SUBNET בשם של רשת המשנה. צריך לציין רשת VPC או רשת משנה, או את שתיהן. אם מציינים רק רשת, רשת המשנה מקבלת את אותו שם כמו הרשת. אתם יכולים לפרוס או להפעיל כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
  • NETWORK_TAG_NAMES עם השם של תג הרשת או רשימה של תגי רשת שמופרדים בפסיקים.
  • REGION בשם האזור.

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

ניתוק משאב Cloud Run

בהתאם למשאב Cloud Run שיש לכם, פועלים לפי ההוראות באחד מהקטעים הבאים:

ניתוק שירות

המסוף

  • כדי להסיר את השירות מרשת ה-VPC:

    1. כניסה ל-Cloud Run

    2. לוחצים על השירות שרוצים להסיר ואז על עריכה ופריסה של גרסה חדשה.

    3. נכנסים לכרטיסייה Networking.

    4. מבטלים את הסימון של Connect to a VPC for outbound traffic (חיבור ל-VPC לתעבורה יוצאת).

    5. לוחצים על פריסה.

    6. כדי לוודא שהשירות כבר לא נמצא ברשת ה-VPC, לוחצים על הכרטיסייה Networking. הרשת ותת-הרשת לא מופיעות יותר בכרטיס VPC.

  • כדי להסיר רק את תגי הרשת ולהשאיר את השירות מחובר לרשת ה-VPC:

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

    2. נכנסים לכרטיסייה Networking.

    3. מוחקים את השמות של תגי הרשת שרוצים לבטל את השיוך שלהם לשירות.

    4. לוחצים על פריסה.

gcloud

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

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
  • כדי להסיר רק את תגי הרשת ולהשאיר את השירות מחובר לרשת ה-VPC, מריצים את הפקודה הבאה:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network-tags

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

    • SERVICE_NAME: השם של שירות Cloud Run.
    • REGION: האזור של שירות Cloud Run.

YAML

  • כדי להסיר את השירות מרשת ה-VPC:

    1. מורידים את הגדרת ה-YAML של השירות:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. צריך להסיר את התוכן הבא מקובץ service.yaml:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      כאשר:

      • NETWORK: השם של רשת ה-VPC
      • SUBNET: השם של רשת המשנה.
      • אופציונלי: NETWORK_TAG_NAMES: השמות של תגי הרשת אם שייכתם אותם לשירות.
    3. מריצים את הפקודה הבאה כדי לפרוס את עדכון השירות:

      gcloud run services replace service.yaml
  • כדי להסיר רק את תגי הרשת ולהשאיר את השירות מחובר לרשת ה-VPC:

    1. מורידים את הגדרת ה-YAML של השירות:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. מסירים את המשתנה tags מהתוכן בקובץ service.yaml, ומשאירים את המשתנים network ו-subnetwork במקומם, כמו בדוגמה הבאה:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

      כאשר:

      • NETWORK: השם של רשת ה-VPC
      • SUBNET: השם של רשת המשנה.
    3. מריצים את הפקודה הבאה כדי לפרוס את עדכון השירות:

      gcloud run services replace service.yaml

ניתוק של משרה

המסוף

  • כדי להסיר את העבודה מרשת ה-VPC:

    1. כניסה ל-Cloud Run

    2. לוחצים על המשימה שרוצים להסיר ואז על עריכה ופריסה של גרסה חדשה.

    3. לוחצים על הכרטיסייה Connections (קישורים).

    4. מבטלים את הסימון של Connect to a VPC for outbound traffic (חיבור ל-VPC לתעבורה יוצאת).

    5. לוחצים על עדכון.

    6. כדי לוודא שהעבודה כבר לא נמצאת ברשת ה-VPC, לוחצים על הכרטיסייה Configuration. הרשת ותת-הרשת לא מופיעות יותר בכרטיס VPC.

  • כדי להסיר רק את תגי הרשת ולהשאיר את המשימה מחוברת לרשת ה-VPC:

    1. לוחצים על הג'וב שמכיל את תגי הרשת שרוצים להסיר, ואז לוחצים על Edit and deploy new revision (עריכה ופריסה של גרסה חדשה).

    2. לוחצים על הכרטיסייה Connections (קישורים).

    3. מסירים את השמות של תגי הרשת שלא רוצים יותר לשייך למשרה.

    4. לוחצים על עדכון.

gcloud

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

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • כדי להסיר רק את תגי הרשת ולהשאיר את העבודה מחוברת לרשת ה-VPC, מריצים את הפקודה הבאה:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network-tags
      

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

    • JOB_NAME: השם של המשימה ב-Cloud Run.
    • REGION: האזור של המשימה ב-Cloud Run.

YAML

  • כדי להסיר את העבודה מרשת ה-VPC:

    1. מורידים את הגדרות ה-YAML של העבודה:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. צריך להסיר את התוכן הבא מקובץ job.yaml:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

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

      • NETWORK: השם של רשת ה-VPC
      • SUBNET: השם של רשת המשנה.
      • אופציונלי: NETWORK_TAG_NAMES עם השמות של תגי הרשת אם שייכתם אותם למשרה.
    3. מעדכנים את העבודה על ידי הרצת הפקודה הבאה:

      gcloud run jobs replace job.yaml
  • כדי להסיר רק את תגי הרשת ולהשאיר את המשימה מחוברת לרשת ה-VPC:

    1. מורידים את הגדרות ה-YAML של העבודה:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. מסירים את המשתנה tags מהתוכן בקובץ job.yaml, ומשאירים את המשתנים network ו-subnetwork במקומם, כמו בדוגמה הבאה:

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

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

      • NETWORK: השם של רשת ה-VPC
      • SUBNET: השם של רשת המשנה.
    3. מעדכנים את העבודה על ידי הרצת הפקודה הבאה:

      gcloud run jobs replace job.yaml

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

gcloud

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

    gcloud beta run worker-pools update WORKER_POOL --region=REGION \
    --clear-network
  • כדי להסיר רק את תגי הרשת ולהשאיר את מאגר העובדים מחובר לרשת ה-VPC, מריצים את הפקודה הבאה:

    gcloud beta run worker-pools update WORKER_POOL --region=REGION \
    --clear-network-tags

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

    • WORKER_POOL: השם של מאגר העובדים ב-Cloud Run.
    • REGION: האזור של מאגר העובדים של Cloud Run.

פתרון בעיות

לא ניתן למחוק רשת משנה

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

תת-הרשת של יציאת הנתונים הישירה מ-VPC לא מכילה יותר כתובות IPv4

השגיאה הבאה מתרחשת כשמנסים לפרוס:

Instance failed to start because of insufficient free IP addresses in the
subnetwork SUBNET_ID when attempting to create an address in the
subnetwork. Please consider moving to a subnetwork with more available IP
addresses.

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

כדי לפתור את הבעיה, צריך לפעול לפי האסטרטגיות לטיפול במיצוי כתובות IP.

הצגת כתובות IP שהוקצו

כדי לראות אילו כתובות IP הוקצו ל-Cloud Run, עוברים אל הדף 'כתובות IP' במסוף Google Cloud או מריצים את הפקודה הבאה מ-Google Cloud CLI:

gcloud compute addresses list

בעיות עם MTU מותאם אישית

אם נתקלתם בבעיות עם MTU בהתאמה אישית, ודאו שאתם משתמשים בהגדרת ברירת המחדל של MTU ל-Cloud Run.