מגבלות של Cloud Service Mesh עם Envoy
במסמך הזה מתוארות מגבלות שחלות על Cloud Service Mesh עם ממשקי ה-API, כולל מגבלות מתקדמות לניהול תעבורה.Google Cloud היא לא חלה על Cloud Service Mesh עם ממשקי ה-API של Istio.
מידע על מגבלות זמין במאמר מכסות ומגבלות.
מגבלות כלליות
המגבלות של Cloud Service Mesh כוללות את המגבלות הבאות:
- Cloud Service Mesh עם ממשקי ה-API לניתוב שירותים תומך רק ב-Google Cloud APIs.
- אפשר להשתמש ב-Cloud Service Mesh כדי להגדיר את פרוטוקולי הבקשות הבאים: HTTP (HTTP/1.1 או HTTP/2), HTTPS, TCP ו-gRPC.
- כשמשתמשים ב-Envoy כפרוקסי של מישור הנתונים, ערך ברירת המחדל של
stream_idle_timeoutהוא 5 דקות. אי אפשר להגדיר את זה דרך Cloud Service Mesh. - כשמשתמשים במשאב
TCPRouteכדי להגדיר את פרוטוקול בקשת ה-TCP, אי אפשר להשתמש בתכונות המתקדמות לניהול תנועה. ניהול תנועה מתקדם זמין רק כשמגדירים את מישור הנתונים לטיפול בבקשות HTTP או gRPC. - Cloud Service Mesh תומך בVPC Network Peering באמצעות ממשקי ה-API לניתוב שירותים.
- Cloud Service Mesh לא תומך בפרוטוקולים מסוג server-first.
- אי אפשר להשתמש ב-Cloud Service Mesh עם שירותים שפועלים ב-Knative או ב-Google Cloud Serverless Computing.
- במאמר הזה נדון ב-Envoy proxies, אבל אפשר להשתמש בכל פרוקסי של API (xDS) בתקן פתוח עם Cloud Service Mesh. עם זאת, Google בדקה את Cloud Service Mesh רק עם שרת ה-proxy של Envoy.
- כדי לוודא שכל נקודות החולשה הידועות באבטחה מטופלות, מומלץ להשתמש בגרסה העדכנית ביותר של Envoy. מידע על הודעות אבטחה לגבי Envoy זמין במאמר Envoy Security Advisories.
- Google Cloud המסוף לא תומך בקבוצות נקודות קצה (NEGs) של רשת קישוריות היברידית. כדי ליצור או למחוק קבוצות NEGs לקישוריות היברידית, משתמשים ב-Google Cloud CLI.
- מישור הנתונים מטפל בבדיקות תקינות, ולכן אי אפשר להשתמש בGoogle Cloud מסוף, ב-API או ב-CLI של gcloud כדי לאחזר את הסטטוס של בדיקות התקינות.
צריך לבדוק את הקובץ
iptablesולוודא שהוא מוגדר בצורה נכונה. למידע נוסף על הגדרתiptables, אפשר לעיין בהערות של Envoy על הגדרת סינון HTTP.- אם משתמשים במסוף Google Cloud כדי ליצור מכונות וירטואליות (VM), חלק מהמודולים שקשורים ל-
ipv6לא מותקנים ולא זמינים לפני הפעלה מחדש. לכן,iptables.shנכשל בגלל תלות חסרה. במקרה כזה, מפעילים מחדש את ה-VM ומריצים מחדש את הסקריפטrun.sh. - אם אתם משתמשים ב-CLI של gcloud כדי ליצור מכונות וירטואליות ב-Compute Engine, לא צפויה לכם בעיה כזו.
- אם משתמשים במסוף Google Cloud כדי ליצור מכונות וירטואליות (VM), חלק מהמודולים שקשורים ל-
מגבלות של ניהול מתקדם של תעבורת נתונים
ההגבלות של ניהול מתקדם של תעבורת נתונים כוללות את ההגבלות הבאות:
- אם הערך של
BackendService.sessionAffinityהוא לא NONE, והמדיניותBackendService.localityLbPolicyמוגדרת למדיניות איזון עומסים שונה מ-MAGLEVאו מ-RING_HASH, הגדרות הזיקה לסשן לא יחולו. - הפקודה
gcloud importלא מוחקת שדות ברמה העליונה של המשאב, כמו שירות לקצה העורפי ומפת URL. לדוגמה, אם שירות קצה עורפי נוצר עם הגדרות ל-circuitBreakers, אפשר להשתמש בפקודהgcloud importהבאה כדי לעדכן את ההגדרות האלה. עם זאת, אי אפשר למחוק את ההגדרות האלה משירות לקצה העורפי. אפשר למחוק את המשאב עצמו וליצור אותו מחדש בלי ההגדרות שלcircuitBreakers.
מגבלות ב-Service Directory
- Service Directory ו-Cloud Service Mesh לא מבטיחים נגישות לרשת עבור לקוחות.
שירות לקצה עורפי יכול להפנות רק לאחד מהבאים:
- קבוצת מופעי מכונה מנוהלים או קבוצת מופעי מכונה לא מנוהלים
- קבוצת נקודות קצה ברשת
- כבילות שירות
אפשר להשתמש בשירותים של Service Directory רק עם שירותי קצה עורפיים גלובליים עם
load-balancing-scheme=INTERNAL_SELF_MANAGED.אפשר למחוק שירות בספריית השירותים שאליו מתבצעת הפניה על ידי קישור שירות. אם שירות Service Directory הבסיסי שאליו מצורף שירות לקצה העורפי נמחק, אפליקציות שמשתמשות ב-Cloud Service Mesh לא יכולות לשלוח תעבורה לשירות הזה, ולכן הבקשות נכשלות. במאמר בנושא יכולת צפייה וניפוי באגים מפורטות שיטות מומלצות.
כשמקשרים שירות של Service Directory לשירות קצה עורפי, אי אפשר להגדיר בדיקת תקינות בשירות הקצה העורפי הזה.
המאמרים הבאים
- מידע על מגבלות שחלות על Cloud Service Mesh עם אפליקציות gRPC ללא proxy מופיע במאמר מגבלות של gRPC ללא proxy.