מה זה איסטיו? רשת השירות של קוברנטס הסבירה

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

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

מהי רשת שירות?

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

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

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

רכיבי רשת Istio שירות

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

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

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

שלושה שירותי Istio נוספים מסכמים את התמהיל:

איסטיו פיילוט

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

מצודת איסטיו

Citadel שולט באימות וניהול זהות בין שירותים.

איסטיו גלי

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

יכולות רשת רשת Istio

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

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

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

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

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

איך להתחיל עם איסטיו

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

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