כללי העברה ל-Cloud Service Mesh

המסמך הזה רלוונטי רק ל-Cloud Service Mesh עם ממשקי ה-API של איזון העומסים. מומלץ מאוד להשתמש בממשקי ה-API לניתוב שירותים כדי לפרוס את Cloud Service Mesh.

‫Cloud Service Mesh משתמש בכלל ההעברה כדי לקבוע את שרת ה-proxy של היעד שאליו מנותבת התנועה ברשת.

כל כלל העברה מספק כתובת IPv4 גלובלית אחת לשירות. אפשר להשתמש בכתובת הזו כדי ליצור רשומות DNS פנימיות לשירות (לדוגמה, באמצעות אזור פרטי מנוהל ב-Cloud DNS). מסנני המטא-נתונים בכלל ההעברה קובעים את הקריטריונים שלפיהם פרוקסי מסוג קובץ עזר חיצוני שתואם ל-xDS מקבל את ההגדרה.

במישור הבקרה של Cloud Service Mesh, כלל ההעברה הגלובלי הפנימי שמנוהל עצמאית מנתב את תעבורת הנתונים לפי כתובת IP, יציאה ופרוטוקול לשרת proxy של יעד. שרת ה-proxy של היעד מפנה למפת URL שמכילה כללים שקובעים את היעד של התנועה. במפת ה-URL מצוין גם שירות לקצה העורפי שמוגדר כברירת מחדל. שירות לקצה העורפי הזה מציין בדיקת תקינות וקובע את ה-Backend המתאים, כמו קבוצת מופעי מכונה מנוהלים (MIG) שמכילה מופעי מכונה וירטואלית (VM) או קבוצת נקודות קצה ברשת (NEG) שמכילה תרמילי Backend של Google Kubernetes Engine‏ (GKE).

בתרשים הבא אפשר לראות איך כלל העברה משתלב בארכיטקטורה של Cloud Service Mesh.

כלל ההעברה של Cloud Service Mesh מודגש.
כלל העברה של Cloud Service Mesh מודגש (לחצו כדי להגדיל)

מאפיינים של כלל העברה

משאב של כלל העברה מכיל את המאפיינים הבאים שחלים על Cloud Service Mesh. כלל ההעברה מטפל בתעבורת נתונים שתואמת לכתובת ה-IP של היעד, לפרוטוקול ולמספר היציאה.

כתובת IP של 0.0.0.0 בכלל העברה היא אחת מהאפשרויות כשמשתמשים ב-Cloud Service Mesh. כתובת IP‏ 0.0.0.0 פירושה כל כתובת IP.

  • בפריסת proxy, כתובת IP של 0.0.0.0 מאפשרת ל-proxy להתאים לכל תנועה נכנסת אם לא נמצאה התאמה ספציפית אחרת.

  • בפריסה ללא שרת proxy, כתובת IP‏ 0.0.0.0 מאפשרת לציין שלא נדרשת כתובת IP. בהמשך מפורטים פרטים נוספים על שימוש בכתובות IP של 0.0.0.0 עם שרת proxy של gRPC ליעד.

בטבלה הבאה מתוארים מאפיינים של כללי העברה בפירוט רב יותר.

מאפיין (property) חובה תיאור
name

השם של כלל ההעברה.

השם חייב להיות ייחודי בפרויקט הזה, באורך של 1 עד 63 תווים, ולהתאים לביטוי הרגולרי: [a-z]([-a-z0-9]*[a-z0-9])?

כלומר, התו הראשון חייב להיות אות קטנה, וכל התווים הבאים חייבים להיות מקף, אות קטנה או ספרה, למעט התו האחרון, שלא יכול להיות מקף.

IPAddress

אחת מהכתובות הבאות: 0.0.0.0 או 127.0.0.1, או כל כתובת RFC 1918.

כתובות ה-IP של כללי ההעברה ב-Cloud Service Mesh לא צריכות להתאים לטווחים של כתובות IP של תת-רשתות ברשת של הענן הווירטואלי הפרטי (VPC). לכל רשת VPC, כתובת IP ויציאה, יכול להיות רק כלל העברה פנימי אחד בניהול עצמי.

לדוגמה, באותה רשת VPC, אי אפשר ליצור שני כללי העברה שמשתמשים בכתובת ה-IP‏ 0.0.0.0 וביציאה 80.

IPAddress עם שרת proxy יעד של gRPC

כלל העברה שמפנה לשרת proxy של יעד gRPC עם השדה validateForProxyless שמוגדר ל-TRUE וכתובת ה-IP שלו שמוגדרת ל-0.0.0.0.

לקוח gRPC שמשתמש בסכימת xds לא מבצע חיפוש DNS כדי לפתור את שם המארח ב-URI של הערוץ. במקום זאת, לקוח כזה מבצע התאמת נתונים (resolve) של hostname[:port] ב-URI של היעד על ידי שליחת בקשה של שירות גילוי מאזינים (LDS) אל Cloud Service Mesh. לא מתבצע חיפוש DNS, ולא נדרש ערך DNS לשם המארח.

כתוצאה מכך, Cloud Service Mesh משתמש בכתובת ה-IP‏ 0.0.0.0 וביציאה (ברירת המחדל היא 80) שצוינו ב-URI כדי לחפש את כלל ההעברה. לאחר מכן, Cloud Service Mesh מחפש כלל מארח תואם במפת URL של שרת ה-proxy ביעד שאליו מתייחס כלל ההעברה.

target

שרת ה-proxy שאליו כלל ההעברה הזה מפנה את התנועה. ‫Cloud Service Mesh תומך ב-target-http-proxy, target-https-proxy וב-target-grpc-proxy.

כשמשתמשים במסוף Google Cloud כדי להגדיר את כלל ההעברה, שרת ה-proxy של היעד מוגדר באופן אוטומטי. כשמשתמשים ב-Google Cloud CLI או ב-API, פרוקסי היעד צריך להתקיים לפני שיוצרים את כלל ההעברה. אפשר להשתמש ביותר מכלל העברה אחד עם שרת proxy נתון.

IPProtocol סוג הפרוטוקול שהכלל הזה להעברה תואם לו. הערך הנתמך היחיד הוא TCP.
loadBalancingScheme מציינת את אופן השימוש בכלל ההעברה. הערך התקין של Cloud Service Mesh הוא INTERNAL_SELF_MANAGED.
portRange

יציאה או טווח יציאות שמחוברים באמצעות מקף.

מנות של הפרוטוקול שצוין שנשלחות ליציאות האלה מועברות לחלק האחורי המתאים. אפשר לציין מספר יחיד או טווח – לדוגמה, 80 או 80-8080.

לכל רשת VPC, כתובת IP ויציאה, יכול להיות רק כלל העברה פנימי אחד בניהול עצמי. לדוגמה, באותה רשת VPC, אי אפשר ליצור שני כללי העברה שמשתמשים בכתובת ה-IP 0.0.0.0 וביציאה 80.

בשירותי gRPC בלי שרת Proxy, היציאה בכלל ההעברה תואמת ליציאה שצוינה ב-URI שאפליקציית gRPC משתמשת בו כדי להתחבר לשירות. אם לא מציינים יציאה ב-URI, יציאת ברירת המחדל היא 80.

network

מציינת את רשת ה-VPC שבה נמצאות מכונות ה-VM שמריצות שרתי proxy של Envoy. Google Cloud

שרתי ה-proxy של Envoy קוראים את ההגדרה של Cloud Service Mesh שאתם מגדירים לאותה רשת שבה פרוסים שרתי ה-proxy. אפשר להשתמש ברשת VPC בשם default או ברשת בהתאמה אישית.

‫Cloud Service Mesh תומך באיזון עומסים ללקוחות רק בתוך Google Cloud הרשת. אתם מציינים את שם הרשת בכלל ההעברה. אין תמיכה בקישור בין רשתות VPC שכנות (peering).

הוספת כלל גלובלי להעברה

כדי ללמוד איך להגדיר כלל העברה במסגרת ההגדרה הכוללת של Cloud Service Mesh באמצעות ממשקי ה-API של איזון העומסים, אפשר לעיין במאמרים הבאים:

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