סקירה: הפצות לינוקס הטובות ביותר עבור Docker ומכולות

במהלך ששת החודשים האחרונים סקרתי חמש הפצות לינוקס מינימליות המותאמות להפעלת מכולות: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host ו- VMware Photon OS. המכונות בדרך כלל "מערכות הפעלה של מכולות", הפצות לינוקס שהושלכו וייעודיות אינן הדרך היחידה להפעלת מכולות בייצור, אך הן מספקות בסיס שאינו מבזבז משאבים על שום דבר מלבד תמיכה במכולות.

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

כל הפצה נוקטת גישה שונה במה לכלול בערימה. בקיצוניות אחת יש הפצות שנועדו לתמוך רק ברמות הגבוהות יותר של הערימה, כמו CoreOS Container Linux ו- Red Hat Project Atomic. כל כך הרבה מהפונקציונליות הוכנסה לשכבת הניהול הקניינית, עד כי אין תקווה להשתמש במערכת ההפעלה לכל דבר אחר. הפצות אחרות, כמו RancherOS ו- VMware Photon OS, מספקות גמישות רבה יותר ותומכות ברכיבי מערכת אקולוגית מרובים ומערכות תזמורת. אלה נותנים למנהלים דרך טובה להתנסות ולמנוע את נעילת הספק.

אלפיני לינוקס

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

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

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

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

מיכל CoreOS לינוקס

מחסנית המכולות של CoreOS נשענת על Etcd לאחסון מבוזר וגילוי שירותים, פלנל לנטוורקינג ו- Kubernetes לתזמור מכולות, ותומכת בטעם משלו של פורמט המכולות, rkt (Rocket), בנוסף ל- Docker. רוקט היה ניסיון לפורמט מכולה מתחרה לטפל בחסרונות בפורמט דוקר בסביבות 2015, אך עם התייחסות לליקויים אלה, רוקט לא ראתה הרבה ספיגה.

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

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

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

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

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

מעבדות ראנצ'ר RancherOS

RancherOS של Rancher Labs היא מערכת הפעלה של לינוקס המורכבת כולה ממכולות. אפילו תהליך ה- init (PID 1) הוא מיכל Docker. המשמעות היא שאין צורך במערכת לניהול חבילות. שדרוגי מערכת הפעלה (ושדרוגים לאחור) מנוהלים באמצעות Docker, בדיוק כמו כל מכולה אחרת.

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

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

פלטפורמת Rancher תומכת כמעט בכל המערכת האקולוגית של כלים לניהול מכולות, כולל Docker Swarm, Kubernetes ו- Mesos, והיא מתקדמת במהירות. למרות שנבדל בתכלית מ- UNIX המסורתית, נראה כי RancherOS דבקו יותר בפילוסופיית UNIX הבסיסית מאשר בהפצות אחרות של מערכת ההפעלה המיכלית: כלים פשוטים הפועלים יחד בצורה אלגנטית.

פרוייקט רד האט אטומי

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

בתיבה תמצאו Flannel עבור רשת, Etcd לאחסון ערך מפתח מבוזר ו- OSTree לניהול מארח. OSTree היא דרך חדשה יחסית לפרוס מערכת הפעלה בקנה מידה באופן אמין ומופץ. Atomic משלבת את OSTree עם מנהל חבילות RPM חדש ליצירת RPM-OSTree, המספק מערכת קבצים ברורה בלתי ניתנת לשינוי.

מצאתי ש- Project Atomic מהווה אתגר. זה מאוד שאפתני ונע מהר, עם הרבה חלקים נעים. RHEL, CentOS, Fedora, SELinux, Systemd, ערכת פקודות "Docker" מותאמת אישית לשליטה במארח הבסיסי ... כולם בתערובת, והתיעוד לא מאורגן ומבלבל. יתר על כן, באשכול הקטן שלי, חסר שף, מלח או בובה, הייתי צריך להגדיר ידנית כל צומת.

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

מערכת הפעלה פוטון של VMware

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

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

VMware מובילה בייצור מיכלים לסביבות מסורתיות, וזה הגיוני כשחושבים על זה. באיזו תדירות התבקשת לתאר את ההבדל בין מיכל ל- VM? עם מערכת ההפעלה של פוטון, בקרוב לא יהיה שום הבדל: מיכלים יהיו פשוט מכשיר VM קל משקל, שנפרס ומנוהל בעזרת אותם כלים. מערכת ההפעלה של פוטון תומכת כמעט בכל החלקים העיקריים במערכת האקולוגית של המכולות: מכולות Docker ו- Rocket, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 ועוד.

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

השוואת מערכות הפעלה למכולות

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

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

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

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

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

קרא את הסקירות של מיכל לינוקס: 

  • סקירה: Alpine Linux מיועד ל- Docker
  • סקירת CoreOS: לינוקס עבור מכולות וקוברנטס
  • RancherOS: לינוקס פשוט יותר לאוהבי Docker
  • סקירה: רד האט עושה את דוקר בדרך הקשה
  • סקירה: מערכת ההפעלה Photon של VMware זורחת עבור מכולות Docker