מידע על שערים מרובי אשכולות

במאמר הזה מוסבר איך פועלים שערים לכמה אשכולות ב-Google Kubernetes Engine ‏(GKE). שערים מרובי אשכולות הם פתרון רשת מתקדם שמאפשר לנהל את התנועה לשירותים שנפרסו בכמה אשכולות GKE.

המסמך הזה מיועד לאדריכלי ענן ולמומחי רשתות שמתכננים ומעצבים את הרשת של הארגון. במאמר תפקידים ומשימות נפוצים של משתמשי GKE Enterprise מפורטים תפקידים נפוצים ומשימות לדוגמה שמוזכרים בתוכן של Google Cloud .

סקירה כללית

כדי להגדיר שער מרובה אשכולות, משתמשים במשאבים של Kubernetes Gateway API. בקר השער של GKE עוקב אחרי המשאבים האלה (Gateway,‏ HTTPRoute ו-TLSRoute) ומקצה ומנהל באופן אוטומטי אתGoogle Cloud תשתית איזון העומסים הנדרשת. התשתית הזו מספקת ניהול תנועה מתקדם לשירותים שנפרסו בכמה אשכולות של GKE בתוך צי. שערי Multi-cluster משתמשים בתשתית איזון העומסים של Google Cloudכדי לספק נקודת כניסה אחת מאוחדת לאפליקציות. לגישה הזו יש כמה יתרונות:

  • ניהול פשוט יותר
  • משפר את האמינות
  • הפעלת יכולות מתקדמות לניהול תנועה

יכולות ניהול תנועה

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

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

לתעבורת נתונים ב-TLS שדורשת הצפנה מקצה לקצה בלי לסיים את ה-TLS במאזן העומסים, שערים מרובי אשכולות תומכים בניתוב מבוסס-SNI באמצעות TLSRoute.

איך פועל שער לכמה אשכולות

כל אשכולות GKE שמשתתפים בהגדרה של שער מרובה אשכולות צריכים להיות רשומים ב-fleet. ה-fleet מספק קיבוץ לוגי של אשכולות, שמאפשר ניהול ותקשורת עקביים בין האשכולות. אשכול GKE אחד ב-fleet מוגדר כאשכול ההגדרות.

אשכול ההגדרות משמש כנקודת בקרה מרכזית להגדרת Gateway בכמה אשכולות. אתם פורסים את כל המשאבים של Gateway API עם כמה אשכולות, כמו Gateway,‏ HTTPRoute ו-TLSRoute, רק באשכול הייעודי הזה. בקר GKE Gateway עוקב אחרי שרת ה-API של Kubernetes באשכול ההגדרות כדי לזהות את המשאבים האלה.

כדי לבחור אשכול הגדרות, כדאי לבחור אשכול אזורי או אשכול GKE אחר עם זמינות גבוהה. כך אפשר לוודא שהבקר יכול להתאים באופן רציף את העדכונים למשאבי Gateway API.

בקר ה-Gateway מרובה האשכולות משתמש בשירותים מרובי אשכולות (MCS) כדי לגלות שירותי Kubernetes ולגשת אליהם באשכולות GKE מרובים בתוך צי. ‫MCS הוא תכונה של GKE שמאפשרת זיהוי שירותים וקישוריות בין שירותים שפועלים באשכולות GKE שונים ב-fleet.

‫MCG משתמש ב-MCS כדי לגלות אילו שירותים זמינים באילו אשכולות, כדי לנתב תנועה חיצונית לשירותים. בקר ה-MCG משתמש במשאבי MCS API כדי לקבץ Pods לשירות אחד שניתן לגישה ומשתרע על פני כמה אשכולות.

בהתאם להגדרות שקבעתם במשאבים של Gateway API, בקר השער של GKE מספק מאזן עומסים של אפליקציות פנימי או חיצוני (ל-HTTPRoute) או מאזן עומסי רשת של שרת proxy (ל-TLSRoute). מאזן העומסים הזה משמש כ-frontend של האפליקציה, ומפזר את התנועה ישירות לפודים התקינים בצי, בלי קשר למיקום שלהם.

השלבים הכלליים הבאים מתארים את תהליך הפריסה של Gateway בכמה אשכולות:

  1. הגדרת שער: בהגדרה של שער מרובה אשכולות, יוצרים משאב Gateway שמגדיר את נקודת הכניסה לתנועה באשכול ההגדרות. המשאב Gateway מציין GatewayClass, שהוא תבנית לסוג מסוים של מאזן עומסים, כמו מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) או מאזן עומסים אזורי פנימי של אפליקציות (ALB). ב-GKE, ה-GatewayClasses הבאים פורסים שערים מרובי אשכולות:

    • ‫gke-l7-global-external-managed-mc: מקצה מאזן עומסים גלובלי חיצוני של אפליקציות (ALB).
    • ‫gke-l7-regional-external-managed-mc: מקצה מאזן עומסים חיצוני אזורי של אפליקציות (ALB) או מאזן עומסי רשת אזורי חיצוני בשרת proxy.
    • ‫gke-l7-cross-regional-internal-managed-mc: מקצה מאזן עומסים פנימי של אפליקציות (ALB) או מאזן עומסי רשת פנימי לשרת proxy, שניהם בין אזורים.
    • ‫gke-l7-rilb-mc: מקצה מאזן עומסים פנימי אזורי של אפליקציות (ALB) או מאזן עומסי רשת פנימי אזורי בשרת proxy.
    • ‫gke-l7-gxlb-mc: מקצה מאזן עומסים קלאסי של אפליקציות (ALB).

    בנוסף, השער מגדיר איך מאזן העומסים מאזין לתנועה נכנסת, על ידי ציון מאזיני הרשת (יציאות ופרוטוקולים) שצריך לחשוף. מידע נוסף על Gateway Classes שנתמכים ב-GKE זמין במאמר שירותים בכמה אשכולות.

  2. צירוף משאבי מסלול ל-Gateway: משאבי מסלול מגדירים איך מאזן העומסים מנתב את התעבורה הנכנסת לשירותי קצה עורפי ספציפיים:

    • ‫HTTPRoute: מגדיר איך מאזן העומסים מנתב תנועה ב-HTTP וב-HTTPS על סמך שמות מארחים, נתיבים, כותרות ופרמטרים של שאילתות. תמיכה בחלוקת תנועה, הפניית בקשות ושיקוף תנועה.
    • ‫TLSRoute: מגדיר איך מאזן העומסים מנתב תנועת TLS מוצפנת על סמך שם המארח של SNI באמצעות מעבר TLS (נתמך ב-GatewayClasses‏ gke-l7-regional-external-managed-mc,‏ gke-l7-rilb-mc ו-gke-l7-cross-regional-internal-managed-mc). מאזן העומסים מעביר את התנועה ישירות ל-ServiceImports בקצה העורפי בלי לפענח את המטען הייעודי (payload) בשער.
  3. יצירת מאזן עומסים: כשפורסים משאבי Gateway ו-Route, בקר GKE Gateway מפרש את אובייקטי ה-API האלה, ובתורו מגדיר באופן דינמי את Google Cloud תשתית איזון העומסים הנדרשת. לאחר מכן, מאזן העומסים מפנה את התנועה ל-Pods הנכונים, בלי קשר לאשכול שבו נמצאים ה-Pods. התהליך הזה מספק דרך יעילה וניתנת להתאמה לניתוב תנועה.

זרימת התנועה

בתרשים הבא מוצג איך שער עם כמה אשכולות פועל כמאזן עומסים מרכזי לאפליקציות שפועלות בשני אשכולות GKE באזורים שונים:

ארכיטקטורה של שער מרובה אשכולות ב-GKE.
איור: ארכיטקטורת שער מרובה אשכולות

ההתנהגות של מאזן העומסים מוגדרת על סמך הכללים שמוגדרים במשאבי HTTPRoute או TLSRoute. כשתנועת המשתמשים מגיעה לכתובת ה-IP של מאזן העומסים (LB) של Google Cloud שהוקצה (כפי שהוגדר על ידי משאב השער), מאזן העומסים (LB), שהוא שרת proxy בניהול Google, מנתב את התנועה. שרת ה-proxy הזה (שרת proxy של Google Front End או שרת proxy אזורי) מפנה את התנועה לנקודת הקצה המתאימה של שירות לקצה העורפי באשכול GKE הנכון, על סמך הקריטריונים הבאים:

  • בדיקות תקינות
  • כללים לחלוקת התנועה
  • קיבולת

התנועה זורמת ישירות ל-Pod האופטימלי באשכול שנבחר.

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