אתם יכולים להפעיל את שירות Cloud Run שירות, פונקציה, משימה או מאגר עובדים כדי לשלוח תנועה לרשת VPC באמצעות תעבורת נתונים יוצאת (egress) ישירה של VPC, בלי שנדרש מחבר של Serverless VPC Access.
שירותים ומשימות ב-Cloud Run לא תומכים בתעבורת נתונים נכנסת (ingress) ישירה של VPC. כדי להגדיר Direct VPC ingress רק למאגרי עובדים, אפשר לעיין במאמר תעבורת נתונים נכנסת (ingress) של מאגרי עובדים ב-Cloud Run.
לפני שמתחילים
אם עדיין אין לכם רשת VPC בפרויקט, צרו אחת.
אם אתם משתמשים ב-VPC משותף עם שירותים או משימות של Cloud Run, כדאי לעיין במאמר בנושא חיבור לרשת VPC משותפת.
בודקים את הקטעים הבאים בנושא הגדרת כתובות IP:
הקצאת כתובות IP כדי לקבל הנחיות להקצאת כתובות IP מתת-הרשת.
אסטרטגיות למיצוי כתובות IP לשימוש בטווחי כתובות IP חלופיים.
מגבלות
המגבלות הבאות חלות על שירותים ומשימות ב-Cloud Run שירותים, פונקציות, משימות ומאגרי עובדים:
- יכול להיות שתיתקלו בעיכובים של דקה או יותר בהקמת החיבור בהפעלה של מופע כשמשתמשים ב-Direct VPC egress. מומלץ להגדיר בקשה לבדיקת תקינות (probe) של הפעלת HTTP שבודקת חיבור ליעד תעבורת נתונים יוצאת (egress) שבו האפליקציה משתמשת לפני שהאפליקציה מקבלת בקשות. בבדיקה הזו של קישוריות יציאה צריך להטמיע ניסיונות חוזרים, או להגדיר את בדיקת ההפעלה עם הגדרות מתאימות של תקופה וסף שיפעלו כניסיון חוזר.
- יכול להיות שיהיו ניתוקים במשימות של Cloud Run שפועלות יותר משעה. הן יכולות להתרחש במהלך אירועי תחזוקה שמעבירים את העבודה ממכונה אחת למכונה אחרת. מאגר התגים מקבל אות
SIGTSTP10 שניות לפני האירוע ואותSIGCONTאחרי האירוע. אחרי שהמאגר מקבל את האותSIGCONT, מנסים שוב להתחבר. - כשמשתמשים ב-Direct VPC egress, יכול להיות שיהיו עיכובים בהפעלה במצב התחלתי (cold start) של 30 שניות או יותר בהפעלת מכונה ב-Cloud NAT. כדי לשפר את ביצועי ההפעלה, מומלץ להשתמש במחברי חיבור לרשת (VPC) מאפליקציית serverless עם Cloud NAT.
- Cloud Run תומך ברוחב פס של עד 1 Gbps לכל מופע בודד. חריגה מהסכום הזה תגרום להגבלת הביצועים.
מכסת השימוש ב-Cloud Run מגבילה את המספר המקסימלי של מופעים שאפשר להגדיר לשימוש בתעבורת נתונים יוצאת (egress) ישירה של VPC. המספר המקסימלי מוגדר לכל עדכון של Cloud Run או לכל הפעלה של משימה. כדי להגדיל את המכסות שמוגדרות כברירת מחדל, אפשר לעיין במאמר בנושא הגדלת מכסות.
- יכול להיות שיהיו ניתוקים בחיבורים של שירותים ומשימות ב-Cloud Run שירותים, משימות ומאגרי עובדים במהלך אירועי תחזוקה של תשתית הרשת. מומלץ להשתמש בספריות לקוח שיכולות לטפל באיפוסים מדי פעם של החיבור.
- Network Intelligence Center תומך רק בבדיקות קישוריות ובFlow Analyzer עבור טווחי רשתות משנה של IPv4 ו-IPv6.
- שירותים ומשימות ב-Cloud Run שירותים ומשימות ב-Cloud Run לא תומכים בתעבורת נתונים נכנסת (ingress) ישירה של VPC. מאגרי עובדים תומכים גם ב-Direct VPC egress וגם ב-Direct VPC ingress.
- למרות שמאגרי עובדים תומכים ב-Direct VPC ingress, אי אפשר להשתמש בתגי רשת כדי להגדיר את היעד של כלל חומת אש לתעבורת נתונים נכנסת.
- תעבורת נתונים נכנסת (ingress) למאגרי עובדים נתמכת רק באמצעות Direct VPC, ולא באמצעות מחברים של חיבור לרשת (VPC) מאפליקציית serverless. מחברים לא תומכים בכניסה.
אין תמיכה בפריטים הבאים ביציאה ישירה מ-VPC:
- ב-VPC Flow Logs לא מופיע השם של הגרסה ב-Cloud Run.
- ניהול כללי חומת אש
- רפליקציה של חבילות נתונים
- Network tags או service identity בכללי חומת האש לתעבורת נתונים נכנסת.
- כללי חומת אש לא יכולים להשתמש בתגי מנהל המשאבים שמצורפים לעומסי עבודה של Cloud Run.
הקצאת כתובות 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 ממספר המופעים. כשמצמצמים את קנה המידה של גרסה, Cloud Run שומר על כתובות ה-IP שלה למשך עד 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 עבור רשת המשנה:
הגדרת הרשאות IAM
כדי לוודא של-Cloud Run יש גישה לרשת ה-VPC, משתמשים באחת מהשיטות הבאות:
התפקיד Cloud Run Service Agent: כברירת מחדל, לסוכן השירות של Cloud Run יש את התפקיד Cloud Run Service Agent (
roles/run.serviceAgent) שמכיל את ההרשאות הנדרשות.הרשאות בהתאמה אישית: כדי לקבל שליטה מדויקת יותר, צריך לתת לסוכן השירות של Cloud Run את ההרשאות הנוספות הבאות בפרויקט:
compute.networks.getcompute.subnetworks.get-
compute.subnetworks.useבפרויקט או ברשת המשנה הספציפית compute.addresses.getcompute.addresses.list-
compute.addresses.create(נדרש רק עבור רשתות משנה עם תמיכה כפולה ב-IPv4 וב-IPv6 עם IPv6 חיצוני) -
compute.addresses.delete(נדרש רק לרשתות משנה עם מחסנית כפולה עם IPv6 חיצוני) compute.addresses.createInternalcompute.addresses.deleteInternalcompute.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
תעבורת נתונים יוצאת (egress) ישירה של VPC מאפשרת לשירות Cloud Run לשלוח תעבורה לרשת VPC בלי מחבר של Serverless VPC Access. עלויות הרשת מתרחבות לאפס בדיוק כמו השירות עצמו. אפשר גם להוסיף תגים לרשת ישירות לגרסאות של שירות Cloud Run כדי להגביר את רמת האבטחה של הרשת, למשל כדי להחיל כללי חומת אש של VPC.
אפשר להגדיר Direct VPC egress עם שירות באמצעותGoogle Cloud המסוף, Google Cloud CLI, YAML או Terraform.
המסוף
אם אתם מגדירים שירות חדש שאתם פורסים, לוחצים על יצירת שירות. אם אתם מגדירים ומפעילים שירות קיים, לוחצים על השירות ואז על עריכה והפעלה של גרסה חדשה.
אם אתם מגדירים שירות חדש, ממלאים את הדף של הגדרות השירות הראשוניות לפי הצורך, ואז לוחצים על Containers, Networking, Security כדי להרחיב את דף הגדרות השירות.
נכנסים לכרטיסייה Networking.
לוחצים על Connect to a VPC for outbound traffic (חיבור ל-VPC לתעבורה יוצאת).
לוחצים על שליחת תנועה ישירות ל-VPC.
בשדה Network (רשת), בוחרים את רשת ה-VPC שאליה רוצים להפנות את התנועה.
בשדה רשת משנה, בוחרים את רשת המשנה שדרכה השירות מקבל כתובות IP. אפשר לפרוס כמה שירותים באותה רשת משנה.
אופציונלי: מזינים את השמות של תגי הרשת שרוצים לשייך לשירות או לשירותים. תגי רשת מצוינים ברמת הגרסה. לכל גרסה של שירות יכולים להיות תגי רשת שונים, כמו
network-tag-2.בקטע Traffic routing (ניתוב תנועה), בוחרים באחת מהאפשרויות הבאות:
- הפניית בקשות רק לכתובות IP פרטיות אל ה-VPC כדי לשלוח תעבורה רק לכתובות פנימיות דרך רשת ה-VPC.
- העברת כל התעבורה ל-VPC כדי לשלוח את כל התעבורה היוצאת דרך רשת ה-VPC.
לוחצים על יצירה או על פריסה.
כדי לוודא שהשירות נמצא ברשת ה-VPC, לוחצים על השירות ואז על הכרטיסייה Networking (רשת). הרשת ותת-הרשת מופיעות בכרטיס VPC.
עכשיו אפשר לשלוח בקשות מהשירות שלכם ב-Cloud Run לכל משאב ברשת ה-VPC, בהתאם למה שמוגדר בכללי חומת האש.
gcloud
שירות
כדי לפרוס שירות Cloud Run בלי מחבר מ-Google Cloud CLI:
מעדכנים את הרכיבים של
gcloudלגרסה האחרונה:gcloud components update
מוודאים ש-Compute Engine API מופעל בפרויקט:
gcloud services enable compute.googleapis.com
פורסים את שירות 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 עם אזור לשירות שלכם.
כדי לוודא שהשירות שלכם נמצא ברשת ה-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, בהתאם למה שמוגדר בכללי חומת האש.
תפקיד
כדי לפרוס פונקציית Cloud Run בלי מחבר מ-Google Cloud CLI:
מעדכנים את הרכיבים של
gcloudלגרסה האחרונה:gcloud components update
מוודאים ש-Compute Engine API מופעל בפרויקט:
gcloud services enable compute.googleapis.com
פורסים את פונקציית Cloud Run באמצעות הפקודה הבאה:
gcloud run deploy FUNCTION_NAME \ --image=IMAGE_URL \ --network=NETWORK \ --subnet=SUBNET \ --network-tags=NETWORK_TAG_NAMES \ --vpc-egress=EGRESS_SETTING \ --region=REGION \ --function=FUNCTION_ENTRYPOINT
מחליפים את:
- FUNCTION_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 עם אזור לפונקציה.
- אופציונלי: FUNCTION_ENTRYPOINT עם נקודת הכניסה לפונקציה בקוד המקור. זה הקוד ש-Cloud Run מריץ כשהפונקציה פועלת. הערך של הדגל הזה צריך להיות שם של פונקציה או שם מחלקה שמוגדר במלואו וקיים בקוד המקור.
כדי לוודא שהפונקציה נמצאת ברשת ה-VPC, מריצים את הפקודה הבאה:
gcloud run services describe FUNCTION_NAME \ --region=REGION
מחליפים את:
FUNCTION_NAMEבשם של הפונקציה.-
REGIONבאזור של הפונקציה שציינתם בשלב הקודם.
הפלט צריך להכיל את השם של הרשת, רשת המשנה והגדרת היציאה, לדוגמה:
VPC access: Network: default Subnet: subnet Egress: private-ranges-only
עכשיו אפשר לשלוח בקשות מהפונקציה של Cloud Run לכל משאב ברשת ה-VPC, בהתאם לכללי חומת האש.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. כדי לעדכן שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיינים הבאים:
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 של קובץ אימג' של קונטיינר השירות.
אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים לקובץ
main.tfאת הנתונים הבאים:
אם רוצים לאפשר גישה לשירות ללא אימות, אפשר להגדיר את השירות כציבורי.
חיבור של משימה לרשת VPC
תעבורת נתונים יוצאת (egress) ישירה של VPC מאפשרת למשימת Cloud Run לשלוח תעבורה לרשת VPC בלי מחבר של Serverless VPC Access. אפשר גם להוסיף תגי רשת ישירות למשימות של Cloud Run כדי להגדיר אבטחת רשת ברמת גרנולריות גבוהה יותר, למשל להחיל כללי חומת אש של VPC.
אפשר להגדיר Direct VPC egress באמצעות משימה באמצעותGoogle Cloud מסוף Google Cloud, Google Cloud CLI או YAML.
המסוף
אם אתם מגדירים משימה חדשה, לוחצים על הכרטיסייה משימות וממלאים את הדף של הגדרות המשימה הראשוניות לפי הצורך. אם מגדירים משימה קיימת, לוחצים על המשימה ואז על עריכה.
לוחצים על Container, Variables & Secrets, Connections, Security (מאגר, משתנים וסודות, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה Connections (קישורים).
לוחצים על Connect to a VPC for outbound traffic (חיבור ל-VPC לתעבורה יוצאת).
לוחצים על שליחת תנועה ישירות ל-VPC.
בשדה Network (רשת), בוחרים את רשת ה-VPC שאליה רוצים לשלוח את התנועה.
בשדה Subnet (רשת משנה), בוחרים את רשת המשנה שממנה המשימה מקבלת כתובות IP. אפשר להריץ כמה משימות באותה רשת משנה.
בקטע Traffic routing (ניתוב תנועה), בוחרים באחת מהאפשרויות הבאות:
- הפניית בקשות רק לכתובות IP פרטיות אל ה-VPC כדי לשלוח תעבורה רק לכתובות פנימיות דרך רשת ה-VPC.
- העברת כל התעבורה ל-VPC כדי לשלוח את כל התעבורה היוצאת דרך רשת ה-VPC.
אופציונלי: מזינים את השמות של תגי הרשת שרוצים לשייך לשירות או לשירותים. תגי רשת מצוינים ברמת הגרסה. לכל גרסה של שירות יכולים להיות תגי רשת שונים, כמו
network-tag-2.אופציונלי: מזינים את השמות של תגי הרשת שרוצים לשייך למשרה או למשרות. לגבי משימות, תגי הרשת מוגדרים ברמת הביצוע. לכל הפעלה של עבודה יכולים להיות תגים שונים של רשתות, כמו
network-tag-2.לוחצים על יצירה או על עדכון.
כדי לוודא שהעבודה נמצאת ברשת ה-VPC, לוחצים על העבודה ואז על הכרטיסייה הגדרות. הרשת ותת-הרשת מופיעות בכרטיס VPC.
עכשיו אפשר להריץ את משימת Cloud Run ולשלוח בקשות מהמשימה לכל משאב ברשת ה-VPC, בהתאם לכללי חומת האש.
gcloud
כדי ליצור משימת Cloud Run בלי מחבר מ-Google Cloud CLI:
מעדכנים את הרכיבים של
gcloudלגרסה האחרונה:gcloud components update
מוודאים ש-Compute Engine API מופעל בפרויקט:
gcloud services enable compute.googleapis.com
יוצרים משימת 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 עם אזור לחיפוש משרות.
כדי לוודא שהעבודה נמצאת ברשת ה-VPC, מריצים את הפקודה הבאה:
gcloud run jobs describe JOB_NAME \ --region=REGION
מחליפים את:
-
JOB_NAMEבשם של המשימה. -
REGIONבאזור של המשרה שציינתם בשלב הקודם.
הפלט צריך להכיל את השם של הרשת ושל רשת המשנה, לדוגמה:
VPC network: Network: default Subnet: default-
עכשיו אפשר להריץ את משימת Cloud Run ולשלוח בקשות מהמשימה לכל משאב ברשת ה-VPC, בהתאם לכללי חומת האש.
YAML
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
מעדכנים את המאפיינים הבאים:
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 של קובץ האימג' בקונטיינר של העבודה.
יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
חיבור מאגר עובדים לרשת VPC
תכונת ה-Direct VPC מאפשרת למאגר העובדים של Cloud Run לשלוח או לקבל תעבורת נתונים אל או מרשת VPC. כל מופע של מאגר עובדים מקבל כתובת IP פרטית ברשת ובתת-הרשת שהוגדרו.
בניגוד לשירותים או לעבודות, קישוריות Direct VPC למאגרי worker מאפשרת תעבורת נתונים יוצאת (egress) ונכנסת (ingress). המשמעות היא שמכונות במאגר העובדים יכולות לגשת למשאבים ברשת ה-VPC, וגם משאבים ברשת ה-VPC יכולים לגשת למכונה במאגר העובדים באמצעות כתובת ה-IP שלה. כאן מוסבר איך מופע יכול לאחזר את כתובות ה-IP הפרטיות שלו באמצעות שרת המטא-נתונים.
אפשר גם להוסיף תגי רשת ישירות לגרסאות של מאגר העובדים ב-Cloud Run עם Direct VPC egress כדי להגביר את האבטחה ברשת, למשל על ידי החלת כללי חומת אש של VPC.
אפשר להגדיר Direct VPC egress באמצעות מסוף Google Cloud , Google Cloud CLI או YAML.
המסוף
בתפריט, בוחרים באפשרות מאגרי עובדים ולוחצים על פריסת קונטיינר כדי להגדיר מאגר עובדים חדש. אם אתם מגדירים מאגר עובדים קיים, לוחצים על מאגר העובדים ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים מאגר עובדים חדש, ממלאים את הדף הראשוני של מאגר העובדים ואז לוחצים על Container(s), Volumes, Networking, Security כדי להרחיב את דף ההגדרות של מאגר העובדים.
נכנסים לכרטיסייה Networking.
בוחרים באפשרות Connect to a VPC (קישור ל-VPC).
לוחצים על יצירה או על פריסה.
עכשיו אפשר לשלוח בקשות ממאגר העובדים של Cloud Run לכל משאב ברשת ה-VPC, בהתאם לכללי חומת האש.
gcloud
כדי לפרוס מאגר עובדים של Cloud Run בלי מחבר מ-Google Cloud CLI:
מעדכנים את הרכיבים של
gcloudלגרסה האחרונה:gcloud components update
מוודאים ש-Compute Engine API מופעל בפרויקט:
gcloud services enable compute.googleapis.com
מריצים את הפקודה הבאה כדי לפרוס את מאגר העובדים של Cloud Run:
gcloud 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 או רשת משנה, או את שתיהן. אם מציינים רק רשת, שם רשת המשנה יהיה זהה לשם הרשת. אתם יכולים לפרוס או להריץ כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
- אופציונלי (רק ליציאה ישירה מ-VPC): NETWORK_TAG_NAMES עם השמות המופרדים בפסיקים של תגי הרשת שרוצים לשייך למאגר עובדים. בשירותים, תגי הרשת מצוינים ברמת הגרסה. לכל עדכון של מאגר עובדים יכולים להיות תגי רשת שונים, כמו
network-tag-2. - EGRESS_SETTING עם ערך של הגדרת יציאה:
-
all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC. -
private-ranges-only: שולח תעבורה רק לכתובות פנימיות דרך רשת ה-VPC.
-
- REGION מחליפים באזור של מאגר העובדים.
כדי לוודא שמאגר העובדים נמצא ברשת ה-VPC, מריצים את הפקודה הבאה:
gcloud 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
אם אתם יוצרים מאגר חדש של עובדים, דלגו על השלב הזה. אם אתם מעדכנים מאגר עובדים קיים, מורידים את הגדרת ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
מעדכנים את המאפיינים הבאים:
apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL 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_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.
אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.
יוצרים או מעדכנים את מאגר העובדים באמצעות הפקודה הבאה:
gcloud run worker-pools replace worker-pool.yaml
אם קיים קובץ
worker-pool.yaml, הפקודהgcloud run worker-pools replaceמשתמשת בו כברירת מחדל.
אדמינים יכולים להגביל את הגדרות תעבורת הנתונים היוצאת (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) עם תמיכה כפולה במצבי פרוטוקול ושולחים בקשה לשרת המטא-נתונים בנקודת הקצה
/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)
אפשר להוסיף עוד שכבת אבטחת רשת באמצעות תגי רשת בכללי חומת אש של תעבורת נתונים יוצאת (egress).
המסוף
כדי לשייך תגי רשת לשירות או לעבודה:
נכנסים לדף Cloud Run במסוף Google Cloud .
לוחצים על השירות או על המשימה שרוצים לשייך להם תגי רשת, ואז לוחצים על עריכה ופריסה של עדכון חדש בשביל שירותים או על עריכה בשביל משימות.
לוחצים על הכרטיסייה Networking (רשת) בשביל שירותים, או על הכרטיסייה Connections (חיבורים) בשביל משרות.
מוודאים שסימנתם את האפשרויות Connect to a VPC for outbound traffic (התחברות ל-VPC לתעבורה יוצאת) ו-Send traffic directly to a VPC (שליחת תעבורה ישירות ל-VPC).
בשדה Subnet (תת-רשת), בוחרים את תת-הרשת שממנה השירות מקבל כתובות IP. אפשר לפרוס או להפעיל כמה שירותים או משימות באותה רשת משנה.
בשדה Network tags, מזינים את השמות של תגי הרשת שרוצים לשייך לשירות או לעבודה.
לוחצים על פריסה או על עדכון.
במקרה של שירותים, לכל עדכון של שירות יכול להיות סט שונה של תגי רשת, כי תגי רשת מצוינים ברמת העדכון. לגבי משימות, לביצוע של משימה יש את אותם תגי רשת שהיו למשימה כשנוצר הביצוע של המשימה.
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:
לוחצים על השירות שרוצים להסיר ואז על עריכה ופריסה של גרסה חדשה.
נכנסים לכרטיסייה Networking.
מבטלים את הסימון של Connect to a VPC for outbound traffic (חיבור ל-VPC לתעבורה יוצאת).
לוחצים על פריסה.
כדי לוודא שהשירות כבר לא נמצא ברשת ה-VPC, לוחצים על הכרטיסייה Networking. הרשת ותת-הרשת לא מופיעות יותר בכרטיס VPC.
כדי להסיר רק את תגי הרשת ולהשאיר את השירות מחובר לרשת ה-VPC:
לוחצים על השירות שמכיל את תגי הרשת שרוצים להסיר, ואז לוחצים על עריכה ופריסה של עדכון חדש.
נכנסים לכרטיסייה Networking.
מוחקים את השמות של תגי הרשת שרוצים לבטל את השיוך שלהם לשירות.
לוחצים על פריסה.
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:
מורידים את הגדרות ה-YAML של השירות:
gcloud run services describe SERVICE_NAME --format export > service.yaml
צריך להסיר את התוכן הבא מהקובץ
service.yaml:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
כאשר:
- NETWORK: השם של רשת ה-VPC
- SUBNET: השם של רשת המשנה.
- אופציונלי: NETWORK_TAG_NAMES: השמות של תגי הרשת אם שייכתם אותם לשירות.
מריצים את הפקודה הבאה כדי לפרוס את עדכון השירות:
gcloud run services replace service.yaml
כדי להסיר רק את תגי הרשת ולהשאיר את השירות מחובר לרשת ה-VPC:
מורידים את הגדרות ה-YAML של השירות:
gcloud run services describe SERVICE_NAME --format export > service.yaml
מסירים את המשתנה
tagsמהתוכן בקובץservice.yaml, ומשאירים את המשתניםnetworkו-subnetworkבמקומם, כמו בדוגמה הבאה:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'
כאשר:
- NETWORK: השם של רשת ה-VPC
- SUBNET: השם של רשת המשנה.
מריצים את הפקודה הבאה כדי לפרוס את עדכון השירות:
gcloud run services replace service.yaml
ניתוק של משרה
המסוף
כדי להסיר את העבודה מרשת ה-VPC:
לוחצים על המשימה שרוצים להסיר ואז על עריכה ופריסה של גרסה חדשה.
לוחצים על הכרטיסייה Connections (קישורים).
מבטלים את הסימון של Connect to a VPC for outbound traffic (חיבור ל-VPC לתעבורה יוצאת).
לוחצים על עדכון.
כדי לוודא שהעבודה כבר לא ברשת ה-VPC, לוחצים על הכרטיסייה Configuration. הרשת ותת-הרשת לא מופיעות יותר בכרטיס VPC.
כדי להסיר רק את תגי הרשת ולהשאיר את המשימה מחוברת לרשת ה-VPC:
לוחצים על המשימה שמכילה את תגי הרשת שרוצים להסיר, ואז לוחצים על Edit and deploy new revision (עריכה ופריסה של גרסה חדשה).
לוחצים על הכרטיסייה Connections (קישורים).
מוחקים את השמות של תגי הרשת שלא רוצים יותר לשייך למשרה.
לוחצים על עדכון.
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:
מורידים את הגדרות ה-YAML של המשימה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
צריך להסיר את התוכן הבא מהקובץ
job.yaml:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
מחליפים את מה שכתוב בשדות הבאים:
- NETWORK: השם של רשת ה-VPC
- SUBNET: השם של רשת המשנה.
- אופציונלי: NETWORK_TAG_NAMES עם השמות של תגי הרשת אם שייכתם אותם למשרה.
מעדכנים את העבודה על ידי הרצת הפקודה הבאה:
gcloud run jobs replace job.yaml
כדי להסיר רק את תגי הרשת ולהשאיר את המשימה מחוברת לרשת ה-VPC:
מורידים את הגדרות ה-YAML של המשימה:
gcloud run jobs describe JOB_NAME --format export > job.yaml
מסירים את המשתנה
tagsמהתוכן בקובץjob.yaml, ומשאירים את המשתניםnetworkו-subnetworkבמקומם, כמו בדוגמה הבאה:run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'
מחליפים את מה שכתוב בשדות הבאים:
- NETWORK: השם של רשת ה-VPC
- SUBNET: השם של רשת המשנה.
מעדכנים את העבודה על ידי הרצת הפקודה הבאה:
gcloud run jobs replace job.yaml
ניתוק של מאגר עובדים
gcloud
כדי להסיר את מאגר העובדים מרשת ה-VPC, מריצים את הפקודה הבאה:
gcloud run worker-pools update WORKER_POOL --region=REGION \ --clear-network
כדי להסיר רק את תגי הרשת ולהשאיר את מאגר העובדים מחובר לרשת ה-VPC, מריצים את הפקודה הבאה:
gcloud run worker-pools update WORKER_POOL --region=REGION \ --clear-network-tags
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר העובדים ב-Cloud Run.
- REGION: האזור של מאגר העובדים של Cloud Run.
פתרון בעיות
אי אפשר למחוק רשת משנה
כדי למחוק רשת משנה, קודם צריך למחוק או לפרוס מחדש את כל המשאבים שמשתמשים בה. אם Cloud Run משתמש ברשת משנה, צריך לנתק את השירות או את הג'וב של Cloud Run מרשת ה-VPC או להעביר אותו לרשת משנה אחרת לפני שמוחקים את רשת המשנה.
נגמרות כתובות ה-IPv4 בתת-הרשת של יציאה ישירה מ-VPC
השגיאה הבאה מתרחשת כשמנסים לפרוס:
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:
The address resource 'ADDRESS_NAME' is already being used by '//serverless.googleapis.com/projects/PROJECT_ID/locations/REGION/addressReservations/ADDRESS_NAME'
כדי לראות אילו כתובות IP הוקצו ל-Cloud Run, נכנסים לדף כתובות ה-IP במסוףGoogle Cloud ומחפשים כתובות שבהן הערך בעמודה בשימוש על ידי הוא Serverless.
לחלופין, אפשר להריץ את הפקודה הבאה מ-Google Cloud CLI:
gcloud compute addresses list --filter="purpose=SERVERLESS"
בעיות עם MTU מותאם אישית
אם נתקלתם בבעיות עם MTU בהתאמה אישית, ודאו שאתם משתמשים בהגדרת ברירת המחדל של MTU ל-Cloud Run.