צור Kubernetes EndpointSlices

Zwr Kubernetes Endpointslices



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

מה זה EndpointSlice ב- Kubernetes?

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

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









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



לדוגמה, לשירות Kubernetes יש כ-9,000 פודים שמגיעים איכשהו למשאבי נקודת קצה של 2MB. לנקודת קצה אחת יש את כל משאבי נקודת הקצה של השירותים. אם נקודת קצה כלשהי של רשת משתנה בנקודת הקצה, כל המשאב של נקודת הקצה צריך להיות מופץ בין כל צומת באשכול. כשמדובר בהתמודדות עם אשכול בעל 3000 צמתים, זה הופך לבעיה עצומה מכיוון שצריך לשלוח מספר עצום של עדכונים לכל צומת. מכאן שכאשר אתה מרחיב יותר בנקודת קצה אחת בלבד, קנה המידה של הרשת נעשה קשה יותר.





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

כעת, תן לנו ללמוד כיצד אנו יכולים ליצור Kubernetes EndpointSlice.



כיצד נוצרות EndpointSlices ב-Kubernetes?

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

תוכל לקבל את השלבים המאפשרים לך ללמוד כיצד ליצור את EndpointSlices באשכול Kubernetes בדוגמאות הבאות.

שלב 1: הפעל את אשכול Minikube

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

> התחל מיניקוב

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

שלב 2: צור פריסה עם קובץ YAML

קובץ YAML משמש לרוב ב-Kubernetes ליצירת פריסות. אתה יכול להשתמש בקובץ ה-YAML הפריסה הקיים או ליצור קובץ חדש עם הפקודה הבאה:

> nano endpoint.yaml

זה יוצר קובץ YAML חדש בשם 'endpoint.yaml' שבו אתה יכול לשמור את הגדרת הפריסה לתצורה. עיין בהגדרת הפריסה בצילום המסך הבא:

שלב 3: צור את EndpointSlice באמצעות קובץ YAML

כעת, כשיש לנו קובץ YAML המכיל את הגדרת הפריסה, אנו משתמשים בו כדי ליצור את EndpointSlices באשכול Kubernetes שלנו. אנחנו צריכים לפרוס את קובץ התצורה כדי שנוכל לקבל את EndpointSlices באשכול Kubernetes. אנו משתמשים בפקודה הבאה כדי לפרוס את קובץ התצורה:

> kubectl ליצור -f endpoint.yaml

בסביבת Kubernetes, משאבים נוצרים באמצעות הפקודה 'kubectl create'. לפיכך, אנו משתמשים בפקודה 'kubectl create' כדי ליצור את EndpointSlices מקובץ התצורה של YAML.

סיכום

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