Ambient networking מספקת חוויית רשת משאבים פשוטה שמובנית ב-Cloud Run. הוא מספק למשאבים שלכם מישור נתונים מנוהל באופן מלא, כדי להסיר את הנטל התפעולי של בנייה ותחזוקה של שרתי proxy בהתאמה אישית. הוא גם מספק הפשטה של מושגי Service mesh, כך שאתם מקבלים תכונות מתקדמות של רישות בלי ללמוד או להגדיר Service mesh.
כשמפעילים את Ambient Networking, התנועה עוברת ללא שינוי כברירת מחדל, כדי שתנועת ה-HTTP וה-TCP הקיימת תמשיך לפעול. הפעלת Ambient Networking לבד לא משנה את אופן הפעולה של המשאב. כחלק מהתשתית, Ambient Networking מאפשר לכם להצטרף ליכולות שמתוארות בקטע הבא.
תרחיש לדוגמה
Ambient Networking הוא הבסיס ליכולות מתקדמות של רשתות ב-Cloud Run. אחרי שמפעילים את Ambient Networking, אפשר להצטרף לשימוש ב-Agent Gateway ב-Cloud Run. התכונה הזו מנהלת את תנועת הסוכנים באמצעות מדיניות גישה ואבטחה שהארגון מנהל באופן מרכזי.
ארכיטקטורה
ב-Ambient Networking, קונטיינר משני (sidecar) של Envoy מנוהל באופן מלא פועל בתוך כל מופע קונטיינר של המשאב ב-Cloud Run, לצד קונטיינר האפליקציה. ה-sidecar מיירט את התנועה ברשת של המכונה ומחיל את מדיניות הניתוב והאבטחה ש-Cloud Run מפיץ אליו.
היקפי הרשאות של Ambient Networking
Ambient Networking תומכת בהיקף גלובלי ובהיקף אזורי. ההיקף קובע אם ה-sidecar מתחבר למישור ניתוב גלובלי או אזורי:
- אזורי (ברירת מחדל): Cloud Run מחבר את ה-sidecar למישור ניתוב אזורי, ומגביל את מדיניות הניתוב והאבטחה ליעדים באזור של השירות. ההיקף הזה תומך בדרישות של מיקום אחסון הנתונים (DRZ) לנתונים באחסון, בשימוש ובמעבר. אם לא מציינים היקף, Ambient Networking משתמש בהיקף האזורי.
- גלובלי: שירות Cloud Run מחבר את ה-sidecar למישור ניתוב גלובלי, ומאפשר לו לנתב תנועה ליעדים בכל אזור.
לכל תכונה שמשתמשת ב-Ambient Networking נדרש היקף ספציפי:
| תכונה | היקף גלובלי | היקף אזורי |
|---|---|---|
| Agent Gateway ב-Cloud Run | לא נתמך | נתמך |
מגבלות
המגבלות הבאות חלות על Ambient Networking:
- אין תמיכה בתנועת UDP. רשתות Ambient תומכות רק בתנועת HTTP ו-TCP.
- בקשות נכנסות לא תומכות ב-HTTP/2 מקצה לקצה. פרטים נוספים זמינים בקטע בעיות מוכרות.
- ההיקף האזורי לא תומך ברשתות VPC שמפענחות את
*.googleapis.comלכתובות IP של גישה פרטית ל-Google. פרטים נוספים זמינים בקטע בעיות מוכרות. - אין תמיכה בסביבת ההפעלה מהדור הראשון. אם לא מציינים סביבת זמן ריצה, Cloud Run משתמש בדור השני.
- לוקח יותר זמן להפעיל מכונות של קונטיינרים. פרטים נוספים זמינים בקטע בעיות מוכרות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloudליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
מפעילים את Cloud Run API, את Network Services API ואת Traffic Director API, אם הם עדיין לא מופעלים.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים-
מגדילים את מגבלת המעבד (CPU) של המשאב ב-Cloud Run ב-vCPU אחד, ואת מגבלת הזיכרון ב-GiB אחד. אם מגבלת המעבד החדשה היא לא ערך נתמך, צריך להשתמש בערך הנתמך הבא הגבוה יותר. ה-sidecar של Ambient משתף את המעבד (CPU) והזיכרון של המכונה בקונטיינר, כך שההגדלה הזו מבטיחה שהאפליקציה תשמור על המשאבים שהיא צריכה.
-
בדף התמחור של Cloud Run מוסבר על השימוש ב-sidecar של Ambient Networking. במהלך גרסת טרום-השקה (Preview), לא מתבצע חיוב על תכונות אווירה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה ולפריסה של שירותי Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- מפתח ב-Cloud Run (
roles/run.developer) בשירות Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
אם אתם פורסים שירות או פונקציה מקוד מקור, אתם צריכים גם תפקידים נוספים בפרויקט ובחשבון השירות של Cloud Build.
לזהות השירות של המשאב ב-Cloud Run צריכים להיות גם התפקידים הבאים:
- לקוח של Traffic Director (
roles/trafficdirector.client) - סוכן Cloud Trace (
roles/cloudtrace.agent)
כדי להקצות את התפקידים האלה לזהות השירות, משתמשים ב-gcloud:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/trafficdirector.client" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- RUN_CLIENT_SA: השם של חשבון השירות שמקושר לשירות Cloud Run.
אם לזהות השירות אין את התפקידים האלה, המשאב של Cloud Run עדיין נפרס, אבל תכונות שמשתמשות ב-Ambient Networking לא פועלות.
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם שירות Cloud Run מתממשק עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח ב-Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
הגדרת Ambient Networking
מגדירים את Ambient Networking באמצעות gcloud או קובץ YAML.
gcloud
כדי להפעיל Ambient Networking בשירות חדש, מעבירים את הדגל
--ambient-networkingואת הדגל--ambient-scope(אופציונלי):gcloud beta run deploy SERVICE \ --image=IMAGE_URL \ --ambient-networking \ --ambient-scope=SCOPE \ --region=REGION
כדי להפעיל את Ambient Networking בשירות קיים, מעבירים את אותם דגלים לפקודה
gcloud beta run services update, שפורסת גרסה חדשה עם Ambient Networking מופעל:gcloud beta run services update SERVICE \ --ambient-networking \ --ambient-scope=SCOPE \ --region=REGION
כדי להשבית את Ambient Networking, מעבירים את הדגל
--no-ambient-networking:gcloud beta run services update SERVICE \ --no-ambient-networking \ --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות 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. - SCOPE: ההיקף של Ambient Networking,
globalאוregional. - REGION: האזור של השירות.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מוסיפים את ההערה
run.googleapis.com/ambient-networkingואת ההערהrun.googleapis.com/ambient-scope(אופציונלי):spec: template: metadata: annotations: run.googleapis.com/ambient-networking: 'true' run.googleapis.com/ambient-scope: SCOPE
מחליפים את SCOPE בהיקף של Ambient Networking,
globalאוregional. כדי להשבית את Ambient Networking, מגדירים אתrun.googleapis.com/ambient-networkingל-'false'ומסירים את ההערהrun.googleapis.com/ambient-scope.יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
כברירת מחדל, הפקודה
gcloud run services replaceמשתמשת בקובץservice.yamlאם הוא קיים.
הצגת ההגדרות של Ambient Networking
כדי לראות את הגדרות הרשת הנוכחיות של Ambient Networking בשירות Cloud Run:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות כדי לפתוח את הדף Service details.
נכנסים לכרטיסייה Networking.
בכרטיס Ambient networking, בודקים את ההגדרה Scope.
gcloud
משתמשים בפקודה הבאה:
gcloud beta run services describe SERVICE \ --region=REGION
מאתרים את ההערות
run.googleapis.com/ambient-networkingו-run.googleapis.com/ambient-scopeבהגדרות שהוחזרו.
המאמרים הבאים
- מידע על Agent Gateway ב-Cloud Run
- איך מגדירים את התכונות של Agent Platform ב-Cloud Run
- מידע על אימות בין שירותים ב-Cloud Run
- איך עוקבים אחרי בקשות באמצעות Cloud Trace