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

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

מהי תזמור מכולות?

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

מה זה קוברנטס?

Kubernetes הוא פרויקט קוד פתוח שהפך לאחד הכלים הפופולריים ביותר לתזמור מכולות בסביבה; זה מאפשר לך לפרוס ולנהל יישומים מרובי מכולות בקנה מידה גדול. בעוד שבפועל Kubernetes משמש לרוב עם Docker, פלטפורמת המכולה הפופולארית ביותר, היא יכולה לעבוד גם עם כל מערכת מכולות שתואמת את התקנים Open Container Initiative (OCI) לפורמטים ולזמני זמן של מיכל. ומכיוון שקוברנטס הוא קוד פתוח, עם יחסית מעט מגבלות על אופן השימוש בו, הוא יכול לשמש באופן חופשי לכל מי שרוצה להפעיל מכולות, בכל מקום שרוצים להפעיל אותן - במקום, בענן הציבורי או שניהם .

גוגל וקוברנטס

קוברנטס התחיל את חייו כפרויקט בתוך גוגל. זה יורש של - אם כי לא צאצא ישיר של - גוגל בורג, כלי ניהול מכולות קודם שגוגל השתמשה בו באופן פנימי. גוגל נפתחה ב- Kubernetes בשנת 2014, בין היתר מכיוון שארכיטקטורות המיקרו-שירותים המבוזרות שמאפשרת Kubernetes מקלה על הפעלת יישומים בענן. גוגל רואה באימוץ מכולות, מיקרו-שירותים וקוברנטס פוטנציאל שמוביל לקוחות לשירותי הענן שלה (למרות שקוברטס בהחלט עובדת גם עם Azure ו- AWS). Kubernetes מתוחזק כיום על ידי קרן מחשוב ענן Native, שהיא עצמה תחת הגג של קרן לינוקס.

Kubernetes לעומת Docker ו- Kubernetes מול Docker נחיל

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

טכנולוגיה אחת כזו היא Docker Swarm, מתזמר המשולב עם Docker. עדיין ניתן להשתמש ב- Docker Swarm במקום ב- Kubernetes, אך Docker Inc. בחרה להפוך את Kubernetes לחלק ממהדורות Docker Community ו- Docker Enterprise בהמשך.

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

קוברנטס מול מסוס

פרויקט נוסף שאולי שמעתם עליו כמתחרה לקוברנטס הוא Mesos. Mesos הוא פרויקט אפאצ'י שהגיח במקור ממפתחים בטוויטר; זה נתפס למעשה כתשובה לפרויקט Google Borg.

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

אדריכלות קוברנטס: איך עובד קוברנטס

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

אשכולות קוברנטס

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

Kubernetes צמתים ותרמילים

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

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

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

שירותי קוברנטס

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

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

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

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

Kubernetes Ingress

שירותי Kubernetes נחשבים כמתנהלים בתוך אשכול. אבל אתה רוצה להיות מסוגל לגשת לשירותים אלה מהעולם החיצון. ל- Kubernetes כמה רכיבים שמאפשרים זאת בדרגות פשטות וחוסן שונות, כולל NodePort ו- LoadBalancer, אך הרכיב בעל הגמישות הרבה ביותר הוא Ingress. Ingress הוא API שמנהל גישה חיצונית לשירותי האשכול, בדרך כלל באמצעות HTTP.

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

לוח המחוונים של Kubernetes

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

סרטון קשור: מה זה קוברנטס?

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

יתרונות Kubernetes

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

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

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

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

Kubernetes מקל על הפריסה של יישומים שהוגדרו מראש באמצעות תרשימי הלם

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

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

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

Kubernetes מפשט את ניהול האחסון, הסודות ומשאבים אחרים הקשורים ליישומים

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

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

מכולות לרוב צריכות לעבוד עם "סודות" - אישורים כמו מפתחות API או סיסמאות שירות שאינך מעוניין בקידוד קשיח למכולה או שמוסרים בגלוי בנפח הדיסק. בעוד שפתרונות צד שלישי זמינים לכך, כמו סודות Docker ו- HashiCorp Vault, ל- Kubernetes יש מנגנון משלה לטיפול בסודות מקוריים, אם כי צריך להגדיר את זה בזהירות. לדוגמא, יש להגדיר את Etcd לשימוש ב- SSL / TLS בעת שליחת סודות בין צמתים, ולא בטקסט רגיל. 

יישומי Kubernetes יכולים לפעול בסביבות היברידיות ורב עננים

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

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

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

איפה משיגים את קוברנטס