✕ סגור 
צור קשר
תודה על ההתעניינות .

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

קוברנטיס: עתיד הענן - חלק ב'

ליאור בר-און
|
קלה
|
Jan 3, 2019
alt="facebook"alt="linkedin"להרשמה לניוזלטר

בחלק הקודם נתנו רקע על Container Orchestration Frameworks, והצגנו כלים שונים בחום. בחלק זה נסקור את הפתרונות האפשריים של Managed Kubernetes ונבצע השוואה ביניהם.  

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

Google Kubernetes Engine - גוגל

בתור היוצרים של Kubernetes והמאמצים הראשונים שלו כשירות Managed בענן, אין הפתעה בכך ש- GKE הוא המוצר הבשל ביותר.

• האינטגרציה הטובה ביותר, UI מלוטש לניהול, והפעלה מהירה של Cluster מאשר של המתחרות.

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

• בניגוד ל- BigQuery שהוא שירות שלקוחות של AWS עשויים להשתמש בו על אף שהוא שוכן בענן אחר - קוברנטיס מריצה את לב המערכת שלנו. להשתמש בקוברנטיס בענן אחר, משמע להתחיל לעבור לענן אחר.

EKS אמזון - מציעה את

• EKS תנהל עבורכם את ה- Control plane מבחינת scalability ו high-availability על גבי AZs שונים. לא תהיה לכם גישה ברמת Admin אליו (בדומה ל RDS), אבל אתם ממשיכים לעבוד עם kubectl כרגיל.

• ל-EKS יש אינטגרציה עם שירותי אמזון בראשם IAM, אבל גם ELB, VPC ו CloudTrail.

• את ה- Worker nodes עדיין עליכם לנהל לבד - ויש עוד קונפיגורציה ועבודה שעליכם לעשות על גבי EKS. יש תכניות לבצע אינטגרציה בין EKS ל- ECS כך ש- ECS ינהל את ה worker nodes. מכיוון שהוא לא נבנה מלכתחילה לצורת העבודה הזו - צריך לראות כמה טוב זה יעבוד. רעיון דומה מתוכנן לאינטגרציה בין EKS ל- Fargate להרצה של Containers שהם task-oriented.

• לאחרונה שוחררה גרסת eks.2 של EKS - ויהיו עוד רבות. כרגע ל- EKS יש סיכוי טוב להיות פתרון ה- Managed Kubernetes הפופולארי ביותר (גם אם לא בהכרח יהיה המתקדם ביותר)

EKS -המנוהל שדומה ביכולת AKS את שירותי AZURE מיקרוסופט -  מציעה על גבי

• אולי בגלל קהילה קטנה יותר ופעילה פחות, AKS נראה כשירות קצת פחות פופולארי. אפשר לנחש שהלקוחות הקלאסיים של מייקרוסופט הם ברובם לא early adapters של טכנולוגיות חדשות.

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

Stackpoint מציעה פתרון של managed control plane על ידה, כאשר את ה- worker nodes תתקינו על ענן לבחירתכם. הפתרון אטרקטיבי בעיקר למי שמריץ את ה- workload בענן שבו אין offering סביר של managed kubernetes.

השוואה שנעשתה בין שלושת פתרונות ה- Managed Kubernetes הנפוצים. מקור

גם מי שמתקין קוברנטיס לבד (על הענן או On-Premises) לרוב לא עושה זה בדרך הארוכה והקשה.

kubernetes-the-hard-way הוא שם של מדריך פופולארי ונחשב להתקנת קוברנטיס מ- scratch, שבעיקר משמש בכדי ללמוד את הפרטים השונים שקיימים בהתקנת קוברנטיס, ואת השיקולים שנלקחים בהתקנה כזו.

בפועל, מי שמתקין קוברנטיס, יעשה זאת כמעט תמיד עם "installer" המיועד לכך:

• Kops הוא המקובל ביותר. הוא חלק מפרויקט קוברנטיס והיה במשך תקופה כלי להתקנת קוברנטיס על גבי AWS בלבד. הוא יודע לייצר קבצי Terraform, יודע לבנות תצורות high-availability (כמובן), ותומך ב-7 אפשרויות שונות ל CNI (כלומר: plugin לתקשורת פנימית. אחת הבחירות עם הווריאציות המגוונות יותר בהתקנת קוברנטיס).

• Kubespray (לשעבר Kargo), תת-פרויקט של קוברנטיס הוא כלי להתקנת קוברנטיס בהתבסס על Ansible, כלי ה configuration management שנחשב לפופולארי ולמתקדם - עד להופעת ה- COFs שהולכים ומייתרים אותו. Kubespray נחשב יותר גמיש מ- Kops ומציע מגוון רחב יותר של אפשרויות התקנה. יש לו גם תמיכה ספציפית ב- AWS, Azure, Google Cloud, Digital Ocean ו Open Stack.

• TK8 הוא עוד כלי פופולרי, שהדגש שלו הוא עבודה צמודה עם Terraform והוא זוכה לכמה נקודות פופולריות בזכות זה שהוא כתוב ב- Go (אזהרת באזז). TK8 כולל גם אפשרות התקנה של כמה אפליקציות פופולריות בהמשך ל- Kubernetes Cluster כמו Zipkin+Jagger, Prometheus ועוד.

• עוד שמות שאפשר לציין הם RKE (להתקנה של ה- Cluster בלבד, לאחר שהכנתם את המכונות באופן מסוים), מודול שקיים ומתוחזק ב -Puppet להתקנה של Kubernetes, או Kubeinformation שהוא כלי online שעוזר לייצר templates של קונפיגורציות ע"פ סט בחירות שתתנו לו.

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

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

לסיכומו של עניין

העולם הטכנולוגי מתקדם בחזית רחבה לכיוון קוברנטיס (גם בצורה עיוורת לפעמים - סממן חזק להפיכתו ל"באזז"). קוברנטיס היא תשתית מרשימה, אבל גם לא-פשוטה לניהול. התסריט הסביר ביותר הוא שפתרונות של Managed Kubernetes ישמשו את רוב השחקנים בשוק, בעיקר הקטנים והבינוניים (תמיד יכולה להיות שחקנית שתדמה ל Netflix ע"ג AWS, כלומר: שתחליט להריץ גם מאות-אלפי worker nodes על גבי פתרון Managed).

Enterprises שרצים On-Premises, או מריצים ענן משלהם, או סתם חברות שמריצות Workload גדול במיוחד - כנראה ימשיכו לנהל את ה Kubernetes Cluster מא' עד ת' - אבל זו התמחות שהן יכולות להרשות לעצמן לפתח ולתחזק.

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

EKS נראה כרגע כאופציה בעלת נקודת הפתיחה הטובה ביותר להיות הפופולרית ביותר (פופולריות שנגזרת באופן ישיר מ- AWS ומגוון השירותים הטובים שהיא מציעה) - אבל הכל עוד יכול לקרות. למשל: אם הקוברנטיס יהפוך לחשוב יותר משאר שירותי הענן - אזי ל- GKE (קרי Google Kubernetes Engine) יש את היתרון הברור.

:בגדול, עובדות בפניכם כרגע האפשרויות הבאות

• להתקין קוברנטיס לבד - על בסיס Installers כמובן, ולא בדרך הקשה והארוכה. יש לפניכם השקעה משמעותית בלמידה והתמחות של Infrastructure חדש ונוסף.

• להשתמש בפתרון Managed Kubernetes, תוך שאתם משלמים "מחיר התבגרות" בשנה-שנתיים הבאות עד שהפתרון שבחרתם יתבגר.

• לדחות בשנה-שנתיים את אימוץ קוברנטיס עד שהוא יהיה קל מאוד לצריכה בצורה Managed - אם אתם לא יודעים לומר מה Kubernetes יתרום לכם ברגע זה - זו הבחירה הנבונה

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

• להחליט שאתם מתחילים עם קוברנטיס היום, לדבר על זה הרבה, להשקיע ב- POCs ולמידה - אבל בעצם להתברבר עם זה עוד שנה-שנתיים עד שנקודה שבה אימוץ Kubernetes יהיה דבר קל - מה שבעצם שם אתכם עם ה- Majority של התעשייה.

Gett בחברת (Chief Architect) מאת: ליאור בר און, ארכיטקט ראשי

http://www.softwarearchiblog.com

בחלק הקודם נתנו רקע על Container Orchestration Frameworks, והצגנו כלים שונים בחום. בחלק זה נסקור את הפתרונות האפשריים של Managed Kubernetes ונבצע השוואה ביניהם.  

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

Google Kubernetes Engine - גוגל

בתור היוצרים של Kubernetes והמאמצים הראשונים שלו כשירות Managed בענן, אין הפתעה בכך ש- GKE הוא המוצר הבשל ביותר.

• האינטגרציה הטובה ביותר, UI מלוטש לניהול, והפעלה מהירה של Cluster מאשר של המתחרות.

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

• בניגוד ל- BigQuery שהוא שירות שלקוחות של AWS עשויים להשתמש בו על אף שהוא שוכן בענן אחר - קוברנטיס מריצה את לב המערכת שלנו. להשתמש בקוברנטיס בענן אחר, משמע להתחיל לעבור לענן אחר.

EKS אמזון - מציעה את

• EKS תנהל עבורכם את ה- Control plane מבחינת scalability ו high-availability על גבי AZs שונים. לא תהיה לכם גישה ברמת Admin אליו (בדומה ל RDS), אבל אתם ממשיכים לעבוד עם kubectl כרגיל.

• ל-EKS יש אינטגרציה עם שירותי אמזון בראשם IAM, אבל גם ELB, VPC ו CloudTrail.

• את ה- Worker nodes עדיין עליכם לנהל לבד - ויש עוד קונפיגורציה ועבודה שעליכם לעשות על גבי EKS. יש תכניות לבצע אינטגרציה בין EKS ל- ECS כך ש- ECS ינהל את ה worker nodes. מכיוון שהוא לא נבנה מלכתחילה לצורת העבודה הזו - צריך לראות כמה טוב זה יעבוד. רעיון דומה מתוכנן לאינטגרציה בין EKS ל- Fargate להרצה של Containers שהם task-oriented.

• לאחרונה שוחררה גרסת eks.2 של EKS - ויהיו עוד רבות. כרגע ל- EKS יש סיכוי טוב להיות פתרון ה- Managed Kubernetes הפופולארי ביותר (גם אם לא בהכרח יהיה המתקדם ביותר)

EKS -המנוהל שדומה ביכולת AKS את שירותי AZURE מיקרוסופט -  מציעה על גבי

• אולי בגלל קהילה קטנה יותר ופעילה פחות, AKS נראה כשירות קצת פחות פופולארי. אפשר לנחש שהלקוחות הקלאסיים של מייקרוסופט הם ברובם לא early adapters של טכנולוגיות חדשות.

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

Stackpoint מציעה פתרון של managed control plane על ידה, כאשר את ה- worker nodes תתקינו על ענן לבחירתכם. הפתרון אטרקטיבי בעיקר למי שמריץ את ה- workload בענן שבו אין offering סביר של managed kubernetes.

השוואה שנעשתה בין שלושת פתרונות ה- Managed Kubernetes הנפוצים. מקור

גם מי שמתקין קוברנטיס לבד (על הענן או On-Premises) לרוב לא עושה זה בדרך הארוכה והקשה.

kubernetes-the-hard-way הוא שם של מדריך פופולארי ונחשב להתקנת קוברנטיס מ- scratch, שבעיקר משמש בכדי ללמוד את הפרטים השונים שקיימים בהתקנת קוברנטיס, ואת השיקולים שנלקחים בהתקנה כזו.

בפועל, מי שמתקין קוברנטיס, יעשה זאת כמעט תמיד עם "installer" המיועד לכך:

• Kops הוא המקובל ביותר. הוא חלק מפרויקט קוברנטיס והיה במשך תקופה כלי להתקנת קוברנטיס על גבי AWS בלבד. הוא יודע לייצר קבצי Terraform, יודע לבנות תצורות high-availability (כמובן), ותומך ב-7 אפשרויות שונות ל CNI (כלומר: plugin לתקשורת פנימית. אחת הבחירות עם הווריאציות המגוונות יותר בהתקנת קוברנטיס).

• Kubespray (לשעבר Kargo), תת-פרויקט של קוברנטיס הוא כלי להתקנת קוברנטיס בהתבסס על Ansible, כלי ה configuration management שנחשב לפופולארי ולמתקדם - עד להופעת ה- COFs שהולכים ומייתרים אותו. Kubespray נחשב יותר גמיש מ- Kops ומציע מגוון רחב יותר של אפשרויות התקנה. יש לו גם תמיכה ספציפית ב- AWS, Azure, Google Cloud, Digital Ocean ו Open Stack.

• TK8 הוא עוד כלי פופולרי, שהדגש שלו הוא עבודה צמודה עם Terraform והוא זוכה לכמה נקודות פופולריות בזכות זה שהוא כתוב ב- Go (אזהרת באזז). TK8 כולל גם אפשרות התקנה של כמה אפליקציות פופולריות בהמשך ל- Kubernetes Cluster כמו Zipkin+Jagger, Prometheus ועוד.

• עוד שמות שאפשר לציין הם RKE (להתקנה של ה- Cluster בלבד, לאחר שהכנתם את המכונות באופן מסוים), מודול שקיים ומתוחזק ב -Puppet להתקנה של Kubernetes, או Kubeinformation שהוא כלי online שעוזר לייצר templates של קונפיגורציות ע"פ סט בחירות שתתנו לו.

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

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

לסיכומו של עניין

העולם הטכנולוגי מתקדם בחזית רחבה לכיוון קוברנטיס (גם בצורה עיוורת לפעמים - סממן חזק להפיכתו ל"באזז"). קוברנטיס היא תשתית מרשימה, אבל גם לא-פשוטה לניהול. התסריט הסביר ביותר הוא שפתרונות של Managed Kubernetes ישמשו את רוב השחקנים בשוק, בעיקר הקטנים והבינוניים (תמיד יכולה להיות שחקנית שתדמה ל Netflix ע"ג AWS, כלומר: שתחליט להריץ גם מאות-אלפי worker nodes על גבי פתרון Managed).

Enterprises שרצים On-Premises, או מריצים ענן משלהם, או סתם חברות שמריצות Workload גדול במיוחד - כנראה ימשיכו לנהל את ה Kubernetes Cluster מא' עד ת' - אבל זו התמחות שהן יכולות להרשות לעצמן לפתח ולתחזק.

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

EKS נראה כרגע כאופציה בעלת נקודת הפתיחה הטובה ביותר להיות הפופולרית ביותר (פופולריות שנגזרת באופן ישיר מ- AWS ומגוון השירותים הטובים שהיא מציעה) - אבל הכל עוד יכול לקרות. למשל: אם הקוברנטיס יהפוך לחשוב יותר משאר שירותי הענן - אזי ל- GKE (קרי Google Kubernetes Engine) יש את היתרון הברור.

:בגדול, עובדות בפניכם כרגע האפשרויות הבאות

• להתקין קוברנטיס לבד - על בסיס Installers כמובן, ולא בדרך הקשה והארוכה. יש לפניכם השקעה משמעותית בלמידה והתמחות של Infrastructure חדש ונוסף.

• להשתמש בפתרון Managed Kubernetes, תוך שאתם משלמים "מחיר התבגרות" בשנה-שנתיים הבאות עד שהפתרון שבחרתם יתבגר.

• לדחות בשנה-שנתיים את אימוץ קוברנטיס עד שהוא יהיה קל מאוד לצריכה בצורה Managed - אם אתם לא יודעים לומר מה Kubernetes יתרום לכם ברגע זה - זו הבחירה הנבונה

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

• להחליט שאתם מתחילים עם קוברנטיס היום, לדבר על זה הרבה, להשקיע ב- POCs ולמידה - אבל בעצם להתברבר עם זה עוד שנה-שנתיים עד שנקודה שבה אימוץ Kubernetes יהיה דבר קל - מה שבעצם שם אתכם עם ה- Majority של התעשייה.

Gett בחברת (Chief Architect) מאת: ליאור בר און, ארכיטקט ראשי

http://www.softwarearchiblog.com

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
ליאור בר-און
בואו נעבוד ביחד
צרו קשר