מושגים ב-Kubernetes ל-GDC

במסמך הזה מוסברים העקרונות הבסיסיים של פלטפורמת Kubernetes לניהול קונטיינרים בקוד פתוח. הרבה רכיבים של Google Distributed Cloud ‏ (GDC) עם בידוד פיזי מבוססים על Kubernetes, ובחלק גדול מהמסמכים מניחים שאתם כבר מכירים את המושגים והמינוחים הבסיסיים של Kubernetes. אם אתם לא מכירים את Kubernetes, תוכלו להיעזר במסמך הזה כדי לקבל המלצות לקריאה שיעזרו לכם להתחיל.

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

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

מידע נוסף מופיע במאמרי העזרה בנושא קהלים ב-GDC עם פער אבטחה.

מידע על Kubernetes

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

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

מחזור החיים והמצב של ה-pods מנוהלים על ידי בקרים. לדוגמה, אובייקטים מסוג Deployment מנהלים עדכונים מדורגים ואובייקטים מסוג ReplicaSet מבטיחים שמספר מסוים של רפליקות של פודים יפעלו. כדי לספק נקודות קצה יציבות ברשת, כמו כתובות IP ושמות DNS לגישה לקבוצות Pod, ‏ Kubernetes משתמש בשירותים.

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

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

מושגים מרכזיים

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

צמתים ואשכולות

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

מידע נוסף זמין במאמרי העזרה של Kubernetes:

מישור הבקרה של Kubernetes

רמת הבקרה של Kubernetes היא קבוצה של רכיבי מערכת שמנהלים את המצב הכללי של האשכול, כולל שרת ה-API של Kubernetes שמאפשר לכם ליצור אינטראקציה עם האשכולות והאפליקציות באמצעות ה-CLI של kubectl וכלים אחרים, מתזמן לתזמון של קבוצות Pod בצמתים זמינים ובקרי שעוקבים אחרי מצב האשכול ומנהלים אותו. מישור הבקרה מסופק ומנוהל על ידי GDC.

מידע נוסף זמין במסמכי התיעוד של Kubernetes בנושא רכיבים במישור הבקרה.

קבוצת Pod

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

מידע נוסף זמין במאמרי העזרה של Kubernetes:

מרחבי שמות

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

מידע נוסף זמין במאמר בנושא Namespaces במסמכי התיעוד של Kubernetes.

שלטים רחוקים

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

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

  • פריסה: Deployment משאב בהתאמה אישית הוא אובייקט Kubernetes שמייצג פוד אחד או יותר זהים, שנקראים עותקים. פריסה מפעילה כמה רפליקות של הפודים שמפוזרות בין הצמתים של אשכול. פריסה מחליפה באופן אוטומטי כל פוד שנכשל או מפסיק להגיב.
  • StatefulSet: StatefulSet משאב מותאם אישית דומה לפריסה, אבל הוא שומר על זהות ייחודית קבועה לכל אחד מהפודים שלו. StatefulSet משאבים יכולים להיות שימושיים באפליקציות עם מצב מתמשך, כמו אפליקציות עם מצב (stateful).
  • DaemonSet: משאב מותאם אישית DaemonSet שמאפשר להוסיף פודים שמוגדרים כברירת מחדל לחלק מהצמתים או לכולם. אלה בדרך כלל שירותי עזר לעומסי העבודה, כמו דמון לאיסוף יומנים או דמון למעקב.
  • ReplicaSet: ReplicaSet משאב בהתאמה אישית הוא קבוצה של פודים זהים. בדרך כלל, ReplicaSet מנוהל כחלק ממשאב Deployment.

מידע נוסף זמין במאמרי העזרה של Kubernetes:

Kubernetes Service

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

ל-Kubernetes יש גם מערכת DNS מובנית לפתרון בעיות של כתובות פנימיות, שמקצה שם DNS, כמו helloserver.default.cluster.local לשירותים. כך פודים באותו אשכול יכולים להגיע לפודים אחרים באשכול באמצעות כתובת יציבה. אי אפשר להשתמש בשם ה-DNS הזה מחוץ לאשכול, למשל מ-CLI של gdcloud.

מידע נוסף זמין במסמכי העזרה של Kubernetes בנושא Services.

אחסון

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

מידע נוסף זמין במאמרי העזרה של Kubernetes:

בקרת גישה מבוססת-תפקידים

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

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

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

מדריכים חיצוניים

מאמרי עזרה

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

המאמרים הבאים