מדריך הקמה של קלסטר Kubernetes מקומי לבדיקות\מעבדה - חלק א - הקדמה

הקדמה

לפני שאני אתחיל, הנה מספר פרטים לגבי הסביבה שלי, שימו לב שאני משתמש ב-Vagrant (במדריך לא אסקור איך להתקין\להגדיר את Vagrant) בכדי להקים את ה-VMים בהם אתקין את הקלסטר, אין דרישה קשיחה ל-Vagrant, אם אין לכם, פשוט תצטרכו להקים את ה-VMים בצורה ידנית. בנוסף, נתתי לכל מכונה 4 גיגה זכרון ו-2 ליבות, אפשר להפחית ל-2 גיגה זכרון וליבה אחת אם מדובר בנסיון הקמה בלבד בשביל ללמוד את התהליך ולא משהו שישמש אותכם בעתיד.

סביבה: לינוקס.
כלים: Vagrant, SSH, Libvirt, KVM, Kubeadm.
דרישות מערכת: לכל הפחות 12 גיגה זכרון, 4 ליבות, 30 גיגה אחסון.

Kubernetes, K8s, Kube

קוּבֶּרנֶטִיס הנה מערכת לניהול (אורקסטרציה - Orchestration) של ישומים על-גבי קונטיינרים. המערכת נוצרה על-ידי גוגל, מבוסס על פתרון פנימי שהיה להם בשם Borg, והמשך הפיתוח שלו היום מתבצע על-ידי הארגון CNCF - Cloud Native Computing Foundation. קוברטנטיס הנה מערכת מאוד נפוצה בקרב חברות טכנולוגיות, החל מסביבות פיתוח ועוד סביבות פרודקשיין. הרבה פעמים מקצרים את שם המוצר ל-Kube או K8s (בעברית, “קיי-שמונה-אס”).

אלטרנטיבות

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

  • Docker Swarm - פתרון ניהול קונטיינרים מבית Docker, פתרון מאוד ישיר ופשוט, שלבסוף היה באוחריו. הפתרון עדיין קיים היום, אך לא נפוץ, במיוחד בסביבות שדורשות מורכבות גבוהה.
  • OpenShift - מוצר מבית Red hat לניהול קונטיינרים. היום המוצר מבוסס בעיקרו (בחלק של ניהול קונטיינרים) על Kubernetes, אבל מציע בנוסף יכולות מעבר לאלו שיש ל-Kubernetes.
  • Mesos - פתרון ניהול משאבים מבית Apache. פתרון זה היה בין מתחריו העיקריים של Kubernetes אך לבסוף הפך לפתרון נידח.

זוהי רשימה חלקית.

אלטרנטיבות למעבדות מקומיות

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

  • Minikube - אולי הפתרון הפשוט ביותר להרים single-node “קלסטר” של Kubernetes. דורש תמיכה בוירטואליזציה מקומית בכדי לייצר את “הקלסטר”.
  • Kind - פתרון דומה ל-Minikube, דורש Docker או Podman מותקנים בכדי לייצר את “הקלסטר” על-גביהם.
  • k0s - פתרון פחות מומלץ למי שרק רוצה ללמוד, מיועד יותר לאנשים שרוצים להקים קלסטר מקומי בקלות.
  • k3s - בדומה לפתרון הקודם, מומלץ פחות. היתרון העיקרי, שהוא מיועד לסביבות מועטות במשאבים כמו IoT.

ושלא נשכח, יש גם פתרונות remote (או interactive learning platform), אם לא בא לכם (או אין לכם משבאים) להריץ קלסטר מקומי ויש לכם שקלים מיותרים:

קונטיינרים

אז כמו שצויין, קוּבֶּרנֶטִיס הוא מנהל אורקסטרציה של קונטיינרים, הוא מייצר API שדרכו אנחנו מנהלים את הקלסטר. ה-Container Engine יכול להיות מספר מנועים (Container Runtimes):

קריאה נוספת

https://wiki.archlinux.org/title/Linux_Containers