הפניית API של Cloud Run
בדף הזה מופיע מידע על ממשקי ה-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 ולא בשמות מאובטחים. התנועה תהיה בטקסט פשוט. חשוב לוודא שלשירותי 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. השיטה הזו פועלת באופן דומה גם לעומסי עבודה שאינם 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. |
| CloudRun | *CloudRunBackend | הגדרה של קצה עורפי שפועל ב-Cloud Run (אופציונלי). |
| CloudRunBackend | struct | מזהה שירות שפועל ב-Cloud Run. |
| שירות | מחרוזת | שם השירות ב-Cloud Run. השם צריך להיות באורך של 1 עד 49 תווים, לפעול לפי דפוס ספציפי ולהכיל רק אותיות קטנות, מקפים ומספרים. |
| אזורים | []Region | אזורים של שירות Cloud Run. צריך לציין אזור אחד בדיוק. |
| פרויקט | מחרוזת | מזהה הפרויקט של שירות Cloud Run. ברירת המחדל היא אותו פרויקט כמו אשכול GKE. השם צריך לכלול בין 6 ל-30 תווים ולעמוד בדפוס מסוים. נכון לעכשיו, שירות Cloud Run ואשכול GKE חייבים להיות באותו פרויקט. |
| GCPBackendList | struct | מכיל רשימה של GCPBackends. |
| פריטים | []*GCPBackend | מערך של מצביעים ל-GCPBackend שמייצגים את רשימת משאבי ה-GCPBackend. |
| ListMeta | metav1.ListMeta | מבנה מוטמע לאחסון פרטי מטא-נתונים של רשימה, כמו גרסת המשאב וטוקן המשך להחלפת דפים. |