איכות השירות (QoS) מנהלת את תעבורת הרשת ומבטיחה את הביצועים של אפליקציות קריטיות על ידי שליטה בגורמים כמו רוחב פס, זמן אחזור ואובדן חבילות. הטכנולוגיה הזו נותנת עדיפות לסוגים מסוימים של תנועת רשת על פני סוגים אחרים, כשיש מגבלות על משאבי הרשת או כשהרשת עמוסה. אתם יכולים להשתמש בתיוג של נקודת קוד לשירותים מבודלים (DSCP) כדי לתעדף תנועה ברשתות IP מודרניות.
איך פועל תיוג EgressDSCP
איכות השירות (QoS) מנהלת את תעבורת הנתונים ברשת כדי להבטיח שהביצועים של אפליקציות קריטיות יהיו טובים גם במצבים של רוחב פס נמוך. תיוג DSCP של תעבורת נתונים יוצאת מאפשר לתייג מנות עם ערך DSCP בכותרת ה-IP כדי להעביר את רמת העדיפות למכשירי רשת במורד הזרם.
עומסי עבודה נתמכים
תיוג DSCP של תעבורה יוצאת (egress) תומך בתעדוף תעבורה לעומסי העבודה הבאים של Google Distributed Cloud:
- עומסי עבודה (workloads) של קונטיינרים: קבוצות Pod ושירותים של Kubernetes שפועלים באשכול.
- מכונות וירטואליות (VM): עומסי עבודה של מכונות וירטואליות שפועלים באמצעות זמן הריצה של המכונה הווירטואלית, בתנאי שהם מחוברים לרשת ברירת המחדל.
סוגי משאבים לסימון DSCP
ב-Distributed Cloud נעשה שימוש במשאבים מותאמים אישית ספציפיים כדי לנהל תגי DSCP. אתם מגדירים את העדיפות של החבילות באמצעות האובייקטים האלה:
-
EgressDSCP: משאב בהתאמה אישית שמגדיר את ערך ה-DSCP הספציפי שיוכנס לכותרת ה-IP של חבילות תנועה נבחרות. האובייקט הזה מקבל ערך מספרי שלם בין0ל-63. -
TrafficSelector: משאב מותאם אישית שבוחר במדויק את זרימות התנועה ברשת. המשאב הזה מקבל מספר שלם של עדיפות מ-0עד65535, עם ברירת מחדל של1000. אובייקטTrafficSelectorמפנה לאובייקטEgressDSCPכדי להחיל פעולה ספציפית על התנועה שזוהתה. גם כשמשתמשים ב-TrafficSelectorבהיקף של מרחב שמות, צריך לכלול בורר של מרחב שמות כדי לזהות באופן מפורש את מרחב השמות של הפודים שיוזמים את התנועה הממוקדת.
יישוב סכסוכים
כשכמה משאבי TrafficSelector חלים על אותו נושא, המערכת משתמשת בהיררכיה ספציפית כדי לקבוע את סדר העדיפויות. המערכת פותרת את הקונפליקטים לפי העקרונות הבאים, בסדר הזה:
- עדיפות: המערכת מחילה את
TrafficSelectorעם ערך העדיפות המספרי הנמוך ביותר. - ספציפיות של טווח CIDR: אם לכמה כללים יש אותה עדיפות, המערכת מחילה את הכלל עם מגבלת ה-CIDR הספציפית ביותר (התאמת התחילית הארוכה ביותר).
- ספציפיות של יציאה: אם לכללים יש אותה עדיפות ואותו טווח CIDR, המערכת מחילה את הכלל עם היציאה הספציפית ביותר.
אם כלל CIDR ספציפי יותר מקבל עדיפות גבוהה יותר מבחינה מספרית (עדיפות נמוכה יותר), המערכת מחילה את הכלל הרחב יותר ומתעלמת מהכלל הספציפי יותר.
דוגמה להצללה
נבחן את שני הכללים הבאים של TrafficSelector שמוחלים על אותו יעד:
- כלל א': עדיפות
100, יעד CIDR192.168.1.0/24, סימון DSCP40. - כלל ב': עדיפות
200, יעד CIDR192.168.1.15/32, סימון DSCP46.
למרות שכלל ב' מציין יעד CIDR מדויק יותר (192.168.1.15/32), המערכת נותנת עדיפות לכלל א' כי ערך העדיפות שלו נמוך יותר מבחינה מספרית (100). כתוצאה מכך, המערכת מתעלמת מכלל ב' ומחילת את תג ה-DSCP 40 על כל התנועה היוצאת שמכוונת אל 192.168.1.15.
מגבלות
תכונת התיוג של DSCP כוללת כמה אילוצים בהטמעה הנוכחית שלה:
- תנועת יציאה חיצונית: אפשר לתייג רק תנועה מצפון לדרום שיוצאת מהאשכול, כמו תנועה יוצאת שנוצרת על ידי עומסי עבודה ותנועה חוזרת משירותי Kubernetes ללקוחות חיצוניים.
- אין אכיפה פנימית: למרות שהמערכת מתייגת תנועה בתוך האשכול, Kubernetes לא אוכפת מדיניות QoS באופן פנימי על סמך התגים האלה.
- סימון בלבד: המערכת מתייגת רק את כותרות ה-IP. אתם צריכים להגדיר את תשתית הרשת הפיזית שלכם במעלה הזרם כדי לטפל באכיפה בפועל של QoS.
- פרוטוקולים נתמכים: אפשר לתייג רק תעבורת נתונים של IPv4.
- שירותים נתמכים: אפשר לתייג תנועה רק בשירותים
LoadBalancerו-NodePort. - רשתות של מכונות וירטואליות: אפשר לתייג רק עומסי עבודה של מכונות וירטואליות שמחוברים לרשת ברירת המחדל.
- הפעלת התכונה: כדי להפעיל את התכונה, צריך להוסיף את ההערה
preview.baremetal.cluster.gke.io/traffic-selector: "enable"למשאב האשכול. - ערכי ברירת מחדל של נתיב החזרה: עבור תנועה בנתיב החזרה, ערך ה-DSCP הוא
0כברירת מחדל, אלא אם הוגדר אחרת באופן מפורש.
שיקולי אבטחה
משתמשים לא מורשים יכולים לסמן תעבורה לא חיונית עם ערכי DSCP גבוהים, ובכך לשבש שירותים קריטיים באשכול.
כדי לצמצם סיכוני אבטחה, מגבילים את הגישה באמצעות בקרת גישה מבוססת-תפקידים (RBAC) ב-Kubernetes:
- אמצעי בקרה ברמת האשכול: הגבלת ההרשאה ליצור או לשנות משאבים
EgressDSCPבהיקף האשכול לאדמינים מהימנים של האשכול. - אמצעי בקרה של מרחב שמות: ניהול משאבים של
TrafficSelectorלפי מרחב שמות, כדי שמשתמשים יוכלו להשפיע רק על עומסי העבודה הספציפיים שלהם.