מחברי גישה ל-VPC ללא שרת מאפשרים לעומסי עבודה ב-Cloud Run להתחבר למשאבים פנימיים ברשת של ענן וירטואלי פרטי (VPC). יצירת מחבר בפרויקט המארח של ה-VPC המשותף מאפשרת לרכז את ניהול הרשת, וכך כמה פרויקטים של שירות יכולים להשתמש באותו מחבר.
כדי ליצור מחבר בפרויקט שירות, קראו את המאמר הגדרת מחברים בפרויקטים של שירות. כדי להשוות בין שתי הגישות, קראו את המאמר התחברות לרשת VPC משותפת.
לפני שמתחילים
בודקים את התפקידים בניהול הזהויות והרשאות הגישה (IAM) בחשבון שבו אתם משתמשים כרגע. לחשבון הפעיל צריכים להיות התפקידים הבאים בפרויקט המארח:
בוחרים את הפרויקט המארח בסביבה הרצויה.
המסוף
פותחים את מרכז הבקרה במסוף Google Cloud .
בסרגל התפריטים שבחלק העליון של לוח הבקרה, לוחצים על התפריט הנפתח של הפרויקט ובוחרים את הפרויקט המארח.
gcloud
מגדירים את פרויקט ברירת המחדל ב-CLI של gcloud לפרויקט המארח, על ידי הפעלת הפקודה הבאה במסוף:
gcloud config set project HOST_PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: המזהה של הפרויקט המארח של ה-VPC המשותף
יצירת חיבור לרשת VPC ללא שרת
כדי לשלוח בקשות לרשת ה-VPC ולקבל את התשובות המתאימות, צריך ליצור מחבר של גישה ל-VPC ללא שרת (Serverless). אפשר ליצור מחבר באמצעות מסוף Google Cloud , Google Cloud CLI או Terraform:
המסוף
מפעילים בפרויקט את Serverless VPC Access API.
נכנסים לדף הסקירה הכללית של Serverless VPC Access.
לוחצים על Create connector.
בשדה שם, מזינים שם למחבר. השם צריך להיות באורך של פחות מ-21 תווים, בהתאם למוסכמות מתן השמות של Compute Engine. מקפים (
-) נספרים כשני תווים.בשדה Region, בוחרים אזור למחבר. האזור צריך להיות זהה לאזור של השירות ללא שרת (serverless).
אם השירות נמצא באזור
us-centralאוeurope-west, צריך להשתמש ב-us-central1או ב-europe-west1.בשדה Network, בוחרים את רשת ה-VPC שאליה רוצים לצרף את המחבר.
לוחצים על התפריט הנפתח Subnetwork:
בוחרים רשת משנה של
/28שלא בשימוש.- רשתות המשנה צריכות לשמש אך ורק את המחבר. אי אפשר להשתמש בהם במשאבים אחרים, כמו מכונות וירטואליות, Private Service Connect או מאזני עומסים.
- כדי לוודא שרשת המשנה לא משמשת ל-Private Service Connect או ל-Cloud Load Balancing, בודקים ש
purposeשל רשת המשנה הואPRIVATE. לשם כך, מריצים את הפקודה הבאה ב-CLI של gcloud: מחליפים אתgcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAMEבשם של רשת המשנה.
(אופציונלי) כדי להגדיר אפשרויות התאמה לעומס לשליטה נוספת במחבר, לוחצים על Show Scaling Settings כדי להציג את טופס ההתאמה לעומס.
- מגדירים את מספר המכונות המינימלי והמקסימלי של המחבר, או משתמשים בערכי ברירת המחדל: 2 (מינימום) ו-10 (מקסימום). ככל שהתנועה גדלה, המחבר מתרחב אופקית בהתאם לעומס (scale out) עד למקסימום שצוין, אבל המחבר לא מצטמצם אופקית (scale in) כשהתנועה פוחתת. צריך להשתמש בערכים בין
2ל-10, והערך שלMINצריך להיות קטן מהערך שלMAX. - בתפריט הנפתח Instance Type, בוחרים את סוג המכונה שבה רוצים להשתמש למחבר, או משתמשים בברירת המחדל
e2-micro. כשבוחרים את סוג המכונה, שימו לב לסרגל הצד של העלות שמופיע משמאל, שבו מוצגות הערכות של רוחב הפס והעלות.
- מגדירים את מספר המכונות המינימלי והמקסימלי של המחבר, או משתמשים בערכי ברירת המחדל: 2 (מינימום) ו-10 (מקסימום). ככל שהתנועה גדלה, המחבר מתרחב אופקית בהתאם לעומס (scale out) עד למקסימום שצוין, אבל המחבר לא מצטמצם אופקית (scale in) כשהתנועה פוחתת. צריך להשתמש בערכים בין
לוחצים על יצירה.
כשהמחבר יהיה מוכן לשימוש, יופיע סימן וי ירוק ליד השם שלו.
gcloud
מעדכנים את הרכיבים של
gcloudלגרסה האחרונה:gcloud components update
מפעילים בפרויקט את Serverless VPC Access API:
gcloud services enable vpcaccess.googleapis.com
יוצרים חיבור לרשת VPC ללא שרת:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet=SUBNET \ --subnet-project=HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances=MIN \ --max-instances=MAX \ # Optional: specify machine type, default is e2-micro --machine-type=MACHINE_TYPE
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTOR_NAME: שם למחבר. השם צריך לעמוד במוסכמות למתן שמות של Compute Engine, ולהיות באורך של פחות מ-21 תווים. מקפים (-) נספרים כשני תווים. -
REGION: אזור למחבר, שצריך להתאים לאזור של השירות ללא שרת (serverless). אם השירות נמצא באזורus-centralאוeurope-west, צריך להשתמש ב-us-central1או ב-europe-west1. -
SUBNET: השם של רשת משנה שלא בשימוש ב-/28.- רשתות המשנה צריכות לשמש אך ורק את המחבר. אי אפשר להשתמש בהם במשאבים אחרים, כמו מכונות וירטואליות, Private Service Connect או מאזני עומסים.
- כדי לוודא שרשת המשנה לא משמשת ל-Private Service Connect או ל-Cloud Load Balancing, בודקים שרשת המשנה
purposeהיאPRIVATE. לשם כך, מריצים את הפקודה הבאה ב-CLI של gcloud: מחליפים את הערכים הבאים:gcloud compute networks subnets describe SUBNET_NAME
-
SUBNET_NAME: השם של רשת המשנה
-
-
HOST_PROJECT_ID: המזהה של הפרויקט המארח -
MIN: המספר המינימלי של המכונות שבהן ישתמש המחבר. צריך להשתמש במספר שלם בין2ל-9. ברירת המחדל היא2. במאמר תפוקה ושינוי קנה מידה מוסבר איך לשנות את קנה המידה של המחבר. -
MAX: המספר המקסימלי של המכונות שבהן אפשר להשתמש במחבר. צריך להשתמש במספר שלם בין3ל-10. ברירת המחדל היא10. אם נפח התנועה דורש זאת, המחבר מתרחב אופקית ל-[MAX]מכונות, אבל לא מצטמצם בחזרה. למידע נוסף על התאמה לעומס (scaling) של מחברים, ראו תפוקה והתאמה לעומס. MACHINE_TYPE:f1-micro,e2-microאוe2-standard-4. במאמר תפוקה ושינוי קנה מידה מוסבר על תפוקת המחבר, כולל סוג המכונה ושינוי קנה המידה.
לפרטים נוספים ולארגומנטים אופציונליים, עיינו במקור המידע של
gcloud.-
לפני שמשתמשים במחבר, מוודאים שהוא במצב
READY:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
CONNECTOR_NAME: שם המחבר שציינתם בשלב הקודם -
REGION: האזור של המחבר, שציינתם בשלב הקודם
הפלט אמור לכלול את השורה
state: READY.-
Terraform
אתם יכולים להשתמש במשאב של Terraform כדי להפעיל את ה-API של vpcaccess.googleapis.com.
אתם יכולים להשתמש במודולים של Terraform כדי ליצור רשת VPC ותת-רשת, ואז ליצור את המחבר.
הפעלת Cloud Run בפרויקט השירות
מפעילים את Cloud Run API בפרויקט השירות. הפעולה הזו נדרשת כדי להוסיף תפקידי IAM בשלבים הבאים, וכדי להשתמש ב-Cloud Run בפרויקט השירות.
המסוף
פותחים את הדף של Cloud Run API.
בסרגל התפריטים שבחלק העליון של מרכז הבקרה, לוחצים על התפריט הנפתח של הפרויקט ובוחרים את הפרויקט לשירות.
לוחצים על Enable.
gcloud
מריצים את הפקודה הבאה בטרמינל:
gcloud services enable run.googleapis.com --project=SERVICE_PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_PROJECT_ID: המזהה של פרויקט השירות
מתן גישה למחבר
כדי לתת גישה למחבר, מקצים לסוכן השירות של Cloud Run בפרויקט השירות את תפקיד ה-IAM משתמש בגישה ל-VPC ללא שרת (Serverless) בפרויקט המארח.
המסוף
פותחים את הדף IAM.
לוחצים על התפריט הנפתח של הפרויקט ובוחרים את הפרויקט המארח.
לוחצים על הוספה.
בשדה New principals, מזינים את כתובת האימייל של סוכן השירות של Cloud Run בשביל שירות Cloud Run:
service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_PROJECT_NUMBER: מספר הפרויקט שמשויך לפרויקט השירות. זה שונה ממזהה הפרויקט. מספר הפרויקט מופיע בדף הגדרות הפרויקט של פרויקט השירות במסוףGoogle Cloud .
-
בשדה Role, בוחרים באפשרות Serverless VPC Access User.
לוחצים על Save.
gcloud
מריצים את הפקודה הבאה בטרמינל:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@serverless-robot-prod. \ --role=roles/vpcaccess.user
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: המזהה של הפרויקט המארח של ה-VPC המשותף
SERVICE_PROJECT_NUMBER: מספר הפרויקט שמשויך לחשבון השירות. זה שונה ממזהה הפרויקט. כדי למצוא את מספר הפרויקט, מריצים את הפקודה הבאה:gcloud projects describe SERVICE_PROJECT_ID
הגדרת המחבר כגלוי
במדיניות ה-IAM של הפרויקט המארח, צריך להקצות את שני התפקידים המוגדרים מראש הבאים לחשבונות המשתמשים שפורסים את שירותי Cloud Run:
- צפייה בחיבור לרשת (VPC) מאפליקציית serverless (
vpcaccess.viewer): חובה. - צפייה ברשת Compute (
compute.networkViewer): אופציונלי, אבל מומלץ. מאפשרת לחשבון המשתמש ב-IAM למנות את רשתות המשנה ברשת ה-VPC המשותפת.
לחלופין, אתם יכולים להשתמש בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש אחרים שכוללים את כל ההרשאות של התפקיד "צפייה בחיבור לרשת (VPC) מאפליקציית serverless" (vpcaccess.viewer).
המסוף
פותחים את הדף IAM.
לוחצים על התפריט הנפתח של הפרויקט ובוחרים את הפרויקט המארח.
לוחצים על הוספה.
בשדה New principals, מזינים את כתובת האימייל של חשבון המשתמש שצריך להיות מסוגל לראות את המחבר מפרויקט השירות. אפשר להזין כמה כתובות אימייל בשדה הזה.
בשדה Role, בוחרים את שני התפקידים הבאים:
- צפייה בחיבור לרשת (VPC) מאפליקציית serverless
- צפייה ברשת Compute
לוחצים על Save.
gcloud
מריצים את הפקודות הבאות בטרמינל:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: המזהה של הפרויקט המארח של ה-VPC המשותף -
PRINCIPAL: חשבון המשתמש שפורס את השירותים של Cloud Run. מידע נוסף על הדגל--member
הגדרת השירות לשימוש במחבר
לכל שירות Cloud Run שצריך גישה ל-VPC המשותף, צריך לציין את המחבר של השירות. כשפורסים שירות חדש או מעדכנים שירות קיים, אפשר לציין את המחבר באמצעות מסוף Google Cloud , Google Cloud CLI, קובץ YAML או Terraform.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Services:
אם אתם מגדירים שירות חדש, לוחצים על Deploy container וממלאים את דף הגדרות השירות הראשוני. לוחצים על Containers, Networking, Security כדי להרחיב את דף הגדרת השירות.
אם אתם מגדירים שירות קיים, לוחצים על השירות.
נכנסים לכרטיסייה Networking.
בתפריט Network, בוחרים את המחבר שבו רוצים להשתמש.
לוחצים על יצירה כדי ליצור שירות חדש. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.
gcloud
מגדירים את ה-CLI של gcloud כך שישתמש בפרויקט שמכיל את המשאב של Cloud Run:
מחליפים את הערכים בשדות הבאים:gcloud config set project PROJECT_ID
-
PROJECT_ID: מזהה הפרויקט שמכיל את המשאב של Cloud Run שצריך גישה ל-VPC המשותף. אם המשאב של Cloud Run נמצא בפרויקט המארח, זהו מזהה הפרויקט המארח. אם המשאב של Cloud Run נמצא בפרויקט שירות, זהו מזהה פרויקט השירות.
-
משתמשים בדגל
--vpc-connector.
- בשירותים קיימים:
gcloud run services update SERVICE --vpc-connector=CONNECTOR_NAME
- לשירותים חדשים:
מחליפים את הערכים הבאים:gcloud run deploy SERVICE --image=IMAGE_URL --vpc-connector=CONNECTOR_NAME
-
SERVICE: שם השירות -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/hello:latest -
CONNECTOR_NAME: שם המחבר. כשפורסים מפרויקט שירות של VPC משותף (בניגוד לפרויקט המארח), צריך להשתמש בשם המלא, לדוגמה: כאשרprojects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
HOST_PROJECT_IDהוא המזהה של הפרויקט המארח,CONNECTOR_REGIONהוא האזור של המחבר ו-CONNECTOR_NAMEהוא השם שנתתם למחבר.
-
YAML
מגדירים את ה-CLI של gcloud כך שישתמש בפרויקט שמכיל את המשאב של Cloud Run:
gcloud config set project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המשאב של Cloud Run שצריך גישה ל-VPC המשותף. אם המשאב של Cloud Run נמצא בפרויקט המארח, זהו מזהה הפרויקט המארח. אם המשאב של Cloud Run נמצא בפרויקט שירות, זהו מזהה פרויקט השירות.
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מוסיפים או מעדכנים את המאפיין
run.googleapis.com/vpc-access-connectorבמאפייןannotations, שנמצא במאפיין ברמה העליונהspec:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME name: REVISION
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של השירות ב-Cloud Run.
- CONNECTOR_NAME: שם המחבר. כשפורסים מפרויקט שירות של VPC משותף (בניגוד לפרויקט המארח), צריך להשתמש בשם המלא, לדוגמה:
כאשרprojects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
HOST_PROJECT_IDהוא המזהה של הפרויקט המארח,CONNECTOR_REGIONהוא האזור של המחבר ו-CONNECTOR_NAMEהוא השם שנתתם למחבר. -
REVISION: שם גרסה חדש או מחיקה של השם (אם הוא קיים). אם אתם נותנים שם חדש לגרסה, הוא חייב לעמוד בקריטריונים הבאים:- מתחיל ב-
SERVICE- - מכיל רק אותיות קטנות, מספרים ו-
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
מחליפים את השירות בהגדרות החדשות שלו באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
אתם יכולים להשתמש במשאב של Terraform כדי ליצור שירות ולהגדיר אותו כך שישתמש במחבר שלכם.
השלבים הבאים
- מעקב אחרי פעילויות אדמין באמצעות רישום ביומן הביקורת של Serverless VPC Access.
- כדי להגן על המשאבים והנתונים, אפשר ליצור גבולות גזרה לשירות באמצעות VPC Service Controls.
- משתמשים בתגי רשת כדי להגביל את הגישה של ה-VM של המחבר למשאבי VPC.
- מידע על התפקידים בניהול הזהויות והרשאות הגישה (IAM) שמשויכים לחיבור לרשת VPC מאפליקציית Serverless. במאמר תפקידים של חיבור לרשת (VPC) מאפליקציית serverless שבמסמכי התיעוד של IAM, תוכלו לראות רשימה של ההרשאות שמשויכות לכל תפקיד.
- איך מתחברים ל-Memorystore