Cloud Run API reference
בדף הזה מופיע מידע על ממשקי ה-API שמשמשים להגדרת Cloud Service Mesh לעומסי עבודה של Cloud Run.
Cloud Run API
v1 API
Cloud Service Mesh מופעל באמצעות הערה ברמת Revision. הערך של האנוטציה הזו הוא שם רשת הגיבוי של אשכול Cloud Service Mesh Istio.
| הערה | ערך |
|---|---|
| run.googleapis.com/mesh | projects/PROJECT/locations/global/meshes/MESH |
v2 API
Cloud Service Mesh מופעל באמצעות השדה serviceMesh במשאב Service
Cloud Service Mesh Istio API
VirtualService API
| שם השדה | סוג | תיאור השדה |
|---|---|---|
| שערים | מחרוזת [] | אם השערים כוללים external-mesh, השירות הווירטואלי חל רק על עומסי עבודה שאינם GKE. אם מציינים את הערך mesh יחד עם external-mesh, השירות הווירטואלי יחול על עומסי עבודה שהם לא GKE וגם על עומסי עבודה שהם GKE. |
| exportTo | מחרוזת | בהתחשב בעובדה שלעומסי עבודה שאינם GKE אין מושג של מרחב שמות, שירותים וירטואליים מסוג external-mesh יתעלמו מהשדה exportTo. עם זאת, הם ימשיכו לפעול בשירותים וירטואליים עם mesh או בשערים, וימשיכו לפעול כצפוי בעומסי עבודה של GKE. |
| httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | המערכת תתעלם מההגדרה הזו בשירותים וירטואליים מסוג external-mesh. עם זאת, הם ימשיכו לפעול בשירותים וירטואליים עם mesh או בשערים, וימשיכו לפעול כצפוי בעומסי עבודה של GKE. |
| httpRoute.HTTPMatchRequest.SourceNamespace | מחרוזת | המערכת תתעלם מההגדרה הזו בשירותים וירטואליים מסוג external-mesh. עם זאת, הם ימשיכו לפעול בשירותים וירטואליים עם mesh או בשערים, וימשיכו לפעול כמצופה בעומסי עבודה של GKE. |
| httpRoute.HTTPMatchRequest.Gateways | string[] | המערכת תתעלם מההגדרה הזו בשירותים וירטואליים מסוג external-mesh. עם זאת, הם ימשיכו לפעול בשירותים וירטואליים עם mesh או בשערים, וימשיכו לפעול כמצופה בעומסי עבודה של GKE. |
| tls | tlsRoute[] | המערכת תתעלם מההגדרה הזו בשירותים וירטואליים מסוג external-mesh. עם זאת, הם ימשיכו לפעול בשירותים וירטואליים עם mesh או בשערים, וימשיכו לפעול כמצופה בעומסי עבודה של GKE. |
| tcp | tcpRoute[] | המערכת תתעלם מההגדרה הזו בשירות וירטואלי של רשת חיצונית. עם זאת, הם ימשיכו לפעול בשירותים וירטואליים עם mesh או בשערים, וימשיכו לפעול כמצופה בעומסי עבודה של GKE. |
Istio Auto MTLS ומתן שמות מאובטח
בשלב הזה, Cloud Service Mesh תומך ב-Istio MutualTLS אוטומטי ובשמות מאובטחים לבקשות בין שירותי GKE.
בגרסת Preview, עומסי עבודה שאינם ב-GKE ומתקשרים עם עומסי עבודה או שירותים ב-GKE לא ישתמשו ב-Istio Auto MTLS או ב-Secure Naming. התנועה תהיה בטקסט פשוט. חשוב לוודא שלשירותי GKE יש מדיניות mTLS מתירה (שהיא ברירת המחדל של Istio API) שמקבלת תעבורת mTLS מעומסי עבודה של GKE וטקסט רגיל מעומסי עבודה שאינם של GKE.
כדי לבדוק אם PeerAuthentication נמצא במצב permissive, משתמשים בפקודה הבאה:
# list PeerAuthentication resources in a namespace
# If no PeerAuthentication resource exists in the namespace,
# then it's PERMISSIVE mode (Istio API default)
kubectl get PeerAuthentication -n $NAMESPACE
# for each of the above run the following command
kubectl get PeerAuthentication $PEER-AUTHN -n $NAMESPACE
# Expected Output is as follows:
# MTLS Mode must be PERMISSIVE.
# If the output says STRICT, then please update the policy to PERMISSIVE.
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: $PEER-AUTHN
namespace: $NAMESPACE
spec:
mtls:
mode: PERMISSIVE
טלמטריה של MeshConfig
Cloud Service Mesh תומך ב-MeshConfig telemetry API כדי להפעיל ולהשבית את Cloud Logging ו-Cloud Monitoring לעומסי עבודה של GKE. האפשרות הזו פועלת באופן דומה גם לעומסי עבודה (workloads) שאינם GKE.
כלל יעד
בגרסת הטרום-השקה, DestinationRule מיקוד לשירותים וירטואליים מסוג external-mesh ייתמך, למעט השדות הבאים: trafficPolicy.tls
Sidecar API
Sidecar API לא רלוונטי לעומסי עבודה שאינם ב-GKE. עומסי עבודה שאינם GKE יוכלו לראות את כל השירותים הווירטואליים שמוגדרים ל-external-mesh בלי שהם יסוננו על ידי כללים של Sidecar visibility.
ממשק API לאבטחה – מדיניות הרשאות, מדיניות אימות בקשות
ההגדרות האלה לא יחולו על עומסי עבודה שאינם GKE שפועלים כלקוחות ושולחים תנועה יוצאת. הם ימשיכו להחיל עומסי עבודה של GKE שמקבלים תנועה נכנסת.
GCPBackend API
| שם השדה | סוג | תיאור השדה |
|---|---|---|
| GCPBackend | struct | סכימה למשאב GCPBackend. |
| TypeMeta | metav1.TypeMeta | מבנה מוטמע לאחסון פרטי מטא-נתונים כמו סוג וגרסת API. |
| ObjectMeta | metav1.ObjectMeta | מבנה מוטמע לאחסון מידע על מטא-נתונים כמו שם, מרחב שמות, תוויות, הערות וכו'. |
| מפרט | GCPBackendSpec | מפרט של משאב GCPBackend, שמגדיר את המצב הרצוי שלו. |
| GCPBackendSpec | struct | ההגדרה הזו מגדירה את המצב הרצוי של GRPCRoute. |
| BackendService | *BackendServiceBackend | הגדרת שירות לקצה העורפי. (אופציונלי). |
| BackendServiceBackend | struct | מזהה שירות קצה עורפי. |
| שם | מחרוזת | שם ה-BackendService. האורך צריך להיות בין 1 ל-49 תווים, והוא צריך לכלול רק אותיות קטנות, מקפים ומספרים. |
| מיקום | מיקום | המיקום של BackendService. ב-CSM, הערך חייב להיות Global. (אזורי/גלובלי עבור איזון עומסים מנוהל). ברירת המחדל היא אותו מיקום כמו של האשכול. |
| פרויקט | מחרוזת | מזהה הפרויקט של BackendService. ברירת המחדל היא אותו פרויקט כמו אשכול GKE. השם צריך לכלול בין 6 ל-30 תווים ולעמוד בדפוס מסוים. נכון לעכשיו, BackendService ואשכול GKE צריכים להיות באותו פרויקט. |
| GCPBackendList | struct | מכיל רשימה של GCPBackends. |
| פריטים | []*GCPBackend | מערך של מצביעים ל-GCPBackend שמייצגים את רשימת משאבי ה-GCPBackend. |
| ListMeta | metav1.ListMeta | מבנה מוטמע לאחסון פרטי מטא-נתונים של רשימה, כמו גרסת המשאב וטוקן המשך עבור חלוקה לעמודים. |