הגדרת Ambient Networking

‫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 מפיץ אליו.

קונטיינר משני (sidecar) של Ambient שפועל לצד קונטיינר של אפליקציה בתוך מכונה של קונטיינר של משאב Cloud Run, כשהתנועה זורמת מהקונטיינר המשני למשאבים אחרים של Cloud Run.
הקונטיינר המשני (sidecar) של Ambient מיירט את התנועה בין קונטיינר האפליקציה לבין היעדים שהוא קורא להם (אפשר ללחוץ כדי להגדיל).

היקפי הרשאות של 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 משתמש בדור השני.
  • לוקח יותר זמן להפעיל מכונות של קונטיינרים. פרטים נוספים זמינים בקטע בעיות מוכרות.

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

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

    Roles required to select or create a project

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

    Go to project selector

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

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

    Roles required to select or create a project

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

    Go to project selector

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

  6. מפעילים את Cloud Run API, את Network Services API ואת Traffic Director API, אם הם עדיין לא מופעלים.

    התפקידים שנדרשים כדי להפעיל ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    הפעלת ממשקי ה-API

  7. מגדילים את מגבלת המעבד (CPU) של המשאב ב-Cloud Run ב-vCPU אחד, ואת מגבלת הזיכרון ב-GiB אחד. אם מגבלת המעבד החדשה היא לא ערך נתמך, צריך להשתמש בערך הנתמך הבא הגבוה יותר. ה-sidecar של Ambient משתף את המעבד (CPU) והזיכרון של המכונה בקונטיינר, כך שההגדלה הזו מבטיחה שהאפליקציה תשמור על המשאבים שהיא צריכה.

  8. בדף התמחור של Cloud Run מוסבר על השימוש ב-sidecar של Ambient Networking. במהלך גרסת טרום-השקה (Preview), לא מתבצע חיוב על תכונות אווירה.

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

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

אם אתם פורסים שירות או פונקציה מקוד מקור, אתם צריכים גם תפקידים נוספים בפרויקט ובחשבון השירות של 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

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

    gcloud run services describe SERVICE --format export > service.yaml
  2. מוסיפים את ההערה 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.

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

    gcloud run services replace service.yaml

    כברירת מחדל, הפקודה gcloud run services replace משתמשת בקובץ service.yaml אם הוא קיים.

הצגת ההגדרות של Ambient Networking

כדי לראות את הגדרות הרשת הנוכחיות של Ambient Networking בשירות Cloud Run:

המסוף

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

    כניסה ל-Cloud Run

  2. לוחצים על השירות כדי לפתוח את הדף Service details.

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

  4. בכרטיס Ambient networking, בודקים את ההגדרה Scope.

gcloud

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

    gcloud beta run services describe SERVICE \
       --region=REGION
  2. מאתרים את ההערות run.googleapis.com/ambient-networking ו-run.googleapis.com/ambient-scope בהגדרות שהוחזרו.

המאמרים הבאים