GKE Dataplane V2

בדף הזה מוסבר מהו GKE Dataplane V2 ואיך הוא פועל.

בדף הזה אנחנו מניחים שאתם יודעים על רישות בתוך אשכולות GKE.

סקירה כללית של GKE Dataplane V2

‫GKE Dataplane V2 הוא מישור נתונים שעבר אופטימיזציה לרשתות Kubernetes. ‫GKE Dataplane V2 מספק את האפשרויות הבאות:

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

‫GKE Dataplane V2 מופעל כברירת מחדל בכל אשכולות Autopilot חדשים.

איך פועל GKE Dataplane V2

‫GKE Dataplane V2 מיושם באמצעות eBPF. כשחבילות מגיעות לצומת GKE, תוכניות eBPF שמותקנות בקרנל מחליטות איך לנתב ולעבד את החבילות. בניגוד לעיבוד מנות עם iptables, תוכניות eBPF יכולות להשתמש במטא-נתונים ספציפיים ל-Kubernetes במנה. כך, GKE Dataplane V2 יכול לעבד חבילות רשת בליבה בצורה יעילה יותר ולדווח על פעולות עם הערות בחזרה למרחב המשתמש לצורך רישום ביומן.

בתרשים הבא מוצג הנתיב של מנה דרך צומת באמצעות GKE Dataplane V2:

הנתיב של מנה דרך צומת באמצעות GKE Dataplane V2.

‫GKE פורס את בקר GKE Dataplane V2 כ-DaemonSet בשם anetd לכל צומת באשכול. ‫anetd מפרש אובייקטים של Kubernetes ומגדיר טופולוגיות של רשת ב-eBPF. ‫anetd Pods פועלים במרחב השמות kube-system.

‫GKE Dataplane V2 ו-NetworkPolicy

‫GKE Dataplane V2 מיושם באמצעות Cilium. מישור הנתונים מדור קודם של GKE מיושם באמצעות Calico.

שתי הטכנולוגיות האלה מנהלות את NetworkPolicy של Kubernetes. ‫Cilium משתמש ב-eBPF, וממשק רשת הקונטיינרים (CNI) של Calico משתמש ב-iptables בקרנל של Linux.

היתרונות של GKE Dataplane V2

היתרונות של GKE Dataplane V2:

מדרגיות

ל-GKE Dataplane V2 יש מאפייני יכולת הרחבה שונים מאלה של מישור הנתונים מדור קודם.

בגרסאות GKE שבהן GKE Dataplane V2 לא משתמש ב-kube-proxy ולא מסתמך על iptables לניתוב שירותים, GKE מסיר צווארי בקבוק שקשורים ל-iptables, כמו מספר השירותים.

‫GKE Dataplane V2 מסתמך על מיפוי eBPF שמוגבל ל-260,000 נקודות קצה בכל השירותים.

אבטחה

התכונה Kubernetes NetworkPolicy תמיד מופעלת באשכולות עם GKE Dataplane V2. אתם לא צריכים להתקין ולנהל תוספי תוכנה של צד שלישי, כמו Calico, כדי לאכוף מדיניות רשת.

תפעול

כשיוצרים אשכול באמצעות GKE Dataplane V2, רישום ביומן של מדיניות הרשת מובנה. כדי לראות מתי הפודים מאפשרים או דוחים חיבורים, צריך להגדיר את CRD של רישום ביומן באשכול.

עקביות

‫GKE Dataplane V2 מספק חוויית רשת עקבית.

מידע נוסף זמין במאמר זמינות של GKE Dataplane V2.

מפרטים טכניים של GKE Dataplane V2

‫GKE Dataplane V2 תומך באשכולות עם המפרטים הבאים:

מפרט GKE Google Distributed Cloud Edge Google Distributed Cloud Hosted
מספר הצמתים בכל אשכול 7,500 500 500
מספר ה-Pods בכל אשכול 200,000 15,000 27,500
מספר ה-Pods מאחורי שירות אחד 10,000 1,000 1,000
מספר שירותי כתובות ה-IP של האשכול 10,000 1,000 1,000
מספר שירותי איזון עומסים לכל אשכול 750 500 1,000

‫GKE Dataplane V2 שומר על מפת שירות כדי לעקוב אחרי השירותים שמפנים אל הפודים כאל קצה העורף שלהם. סכום מספר ה-Pod backends לכל שירות בכל השירותים צריך להיכנס למפת השירות, שיכולה להכיל עד 260,000 רשומות. אם חורגים מהמגבלה הזו, יכול להיות שהאשכול לא יפעל כצפוי.

מגבלות על צמתים

המספר המקסימלי של צמתים בכל אשכול תלוי בגרסת Kubernetes ובמיקום של אשכול GKE Dataplane V2:

  • אשכולות אזוריים:
    • ‫Kubernetes גרסה 1.31 ואילך: עד 7,500 צמתים.
    • ‫Kubernetes גרסה 1.23 ואילך: עד 5,000 צמתים.
  • אשכולות אזוריים: עד 1,000 צמתים.
  • כל שאר האשכולות: עד 500 צמתים.

כדי להגיע למגבלות הגבוהות יותר של הצמתים (5,000 או 7,500), גם האשכול האזורי צריך לעמוד בתנאים הבאים:

  • צריך להפעיל את Private Service Connect באשכול. כדי לבדוק אם באשכול שלכם נעשה שימוש ב-Private Service Connect, אפשר לעיין במאמר בנושא אשכולות עם Private Service Connect.
  • רק לאשכולות שנוצרו עם GKE גרסה 1.23 ואילך יש מגבלה מוגדלת של 5,000 צמתים. יכול להיות שיהיה צורך להגדיל את מכסת הגודל של אשכולות שנוצרו בגרסאות קודמות של GKE. אפשר לפנות לתמיכה לקבלת עזרה.
  • אי אפשר להגדיל את הקיבולת של אשכולות שמשתמשים ב-CRD‏ CiliumNetworkPolicy ‏ (Cilium) ל-5,000 צמתים. ‫CiliumClusterwideNetworkPolicy CRD תומך בעד 5,000 צמתים.

שירותי איזון עומסים ב-Google Distributed Cloud

מספר שירותי LoadBalancer שנתמכים ב-Google Distributed Cloud תלוי במצב מאזן העומסים שבו נעשה שימוש. ‫Google Distributed Cloud תומך ב-500 שירותי LoadBalancer כשמשתמשים במצב של איזון עומסים בחבילה (Seesaw) וב-250 כשמשתמשים במצב של איזון עומסים משולב עם F5. מידע נוסף זמין במאמר בנושא מדרגיות.

פריסת עומסי עבודה באמצעות SCTP

אפשר לפרוס עומסי עבודה שמשתמשים בפרוטוקול Stream Control Transmission Protocol ‏(SCTP) באשכולות שמופעל בהם GKE Dataplane V2. ‫SCTP הוא פרוטוקול של שכבת התעבורה שמספק שידור אמין ומבוסס-הודעות. מידע נוסף זמין במאמר בנושא פריסת עומסי עבודה באמצעות SCTP.

מגבלות

ל-GKE Dataplane V2 יש את המגבלות הבאות:

  • אפשר להפעיל את GKE Dataplane V2 רק כשיוצרים אשכול חדש. אי אפשר לשדרג אשכולות קיימים כדי להשתמש ב-GKE Dataplane V2.
  • אין תמיכה במאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי שנוצרו באופן ידני ומשויכים לשירות מסוג NodePort.
  • ‫GKE Dataplane V2 משתמש ב-cilium במקום ב-kube-proxy כדי להטמיע את שירותי Kubernetes. ‫kube-proxy מתוחזק ומפותח על ידי קהילת Kubernetes, ולכן סביר יותר שתכונות חדשות של Services יוטמעו ב-kube-proxy לפני שהן יוטמעו ב-cilium ל-GKE Dataplane V2.
  • במקרים מסוימים, פודים של סוכן GKE Dataplane V2 ‏ (anetd) יכולים לצרוך כמות משמעותית של משאבי CPU, עד שניים או שלושה vCPU לכל מופע. הבעיה הזו מתרחשת כשנפתחים ונסגרים במהירות הרבה חיבורי TCP בצומת. כדי לצמצם את הבעיה הזו, מומלץ להטמיע keep-alives לקריאות HTTP ואיגום חיבורים לעומסי העבודה הרלוונטיים.
  • השימוש בזיכרון שמדווח על ידי פודים של סוכני GKE Dataplane V2 ‏ (anetd) תלוי בזיכרון הכולל שזמין בצומת. בצמתים עם נפח זיכרון כולל גדול יותר, השימוש בזיכרון של ה-Pods‏ [anetd] גבוה יותר. ה-Pods‏ anetd לא משתמשים בפועל ביותר זיכרון. השימוש המדווח גדל כי המדד הזה כולל את הקצאת הזיכרון של מיפוי ה-eBPF.

    ב-GKE, הקצאת הזיכרון למפות ה-eBPF הגדולות ביותר היא 0.25% מזיכרון הצומת הכולל. יכול להיות שזיכרון נוסף יוזמן לתכונות אחרות שספציפיות ל-GKE.

  • ‫GKE Dataplane V2 משתמש ב-eBPF כדי לנהל את תעבורת הרשת של האשכול. אם תתקינו אפליקציה של צד שלישי שגם היא משתמשת ב-eBPF, יכול להיות שהיא תפריע ל-GKE Dataplane V2. לדוגמה, שימוש ב-Retina עם GKE Dataplane V2 יכול למנוע מה-Pods שלכם להתחבר לשירותים. הבעיה הזו מתרחשת כי תוכניות eBPF של Retina יכולות לשבש את האופן שבו GKE Dataplane V2 מנתב תנועה. אם מופיעות הודעות שגיאה שמציינות שתנועת הגולשים נחסמת כי היא מנסה להגיע ישירות לכתובת ה-IP של השירות, יכול להיות שזו הבעיה שאתם נתקלים בה. הסיבה לכך היא שאין אפשרות ל-Pods לגשת ישירות לכתובת ה-IP של השירות, והתנועה חייבת לעבור דרך מנגנוני הניתוב של Dataplane V2. מידע נוסף מופיע במאמר בעיות של חוסר תאימות ל-Retina.

אכיפת מדיניות רשת ללא GKE Dataplane V2

הוראות להפעלת אכיפת מדיניות הרשת באשכולות שלא משתמשים ב-GKE Dataplane V2 מופיעות במאמר בנושא שימוש באכיפת מדיניות הרשת.

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