בדף הזה מוסבר איך אפשר לדעת כמה CPU וזיכרון זמינים בצומת כדי להריץ את עומסי העבודה ב-Google Distributed Cloud.
משאבים שמורים
בכל צומת של אשכול, Google Distributed Cloud שומר את המשאבים הבאים לרכיבי מערכת ההפעלה ולרכיבי ליבה של Kubernetes:
- 80 milli ליבות + 1% מקיבולת המעבד
- 330 MiB + 5% מנפח הזיכרון
לדוגמה, נניח שלצומת יש קיבולת ברירת מחדל של 4 ליבות מעבד (CPU) ו-8 GiB של זיכרון. לאחר מכן, מערכת Google Distributed Cloud שומרת:
- 80 ליבות מילימטריות + 1% מ-4 ליבות = 120 ליבות מילימטריות
- 330 MiB + 5% מ-8 GiB = 730 MiB
מערכת ההפעלה ורכיבי הליבה של Kubernetes לא פועלים כ-Pods, אלא כתהליכים רגילים. המשאבים שנותרים, מעבר למשאבים השמורים האלה, זמינים ל-Pods.
סף הפינוי
כדי לקבוע כמה זיכרון זמין ל-Pods, צריך לקחת בחשבון גם את סף ההוצאה.
ב-Google Distributed Cloud, סף ההוצאה מהזיכרון מוגדר ל-100 MiB. המשמעות היא שאם הזיכרון הזמין בצומת יורד מתחת ל-100 MiB, יכול להיות ש-kubelet יסיר אחד או יותר מ-Pods.
משאבים שניתן להקצות
המשאבים בצומת שזמינים ל-Pods נקראים משאבים שניתנים להקצאה. כדי לחשב את המשאבים שניתן להקצות, פועלים לפי השלבים הבאים:
Allocatable CPU = CPU Capacity - Reserved CPUAllocatable Memory = Memory Capacity - Reserved Memory - Eviction Threshold
לדוגמה, נניח שלצומת יש נפח זיכרון של 8 GiB, זיכרון שמור של 680 MiB וסף פינוי של 100 MiB. אז הזיכרון שניתן להקצאה הוא:
8 GiB - 680 MiB - 100 MiB = 7220 MiB
משאבים שזמינים לעומסי העבודה
המשאבים שניתנים להקצאה של צומת הם המשאבים שזמינים ל-Pods. המידע הזה כולל את ה-Pods שמריצים את עומסי העבודה ואת ה-Pods שמריצים תוספים של Google Distributed Cloud. התוספים כוללים את בקר הכניסה, שירות הכניסה, סוכן Connect, רכיבי רישות, רכיבי רישום ביומן ועוד.
כדי לקבוע את המשאבים שזמינים לעומסי העבודה שלכם בצומת נתון, מתחילים עם המשאבים שניתנים להקצאה ומפחיתים מהם את המשאבים שמשמשים תוספים.
הבעיה היא שהתוספים לא מופצים באופן שווה בין הצמתים של אשכול Google Distributed Cloud. יכול להיות שבצומת אחד יהיו שלושה תוספים ובצומת אחר יהיו עשרה תוספים. בנוסף, כל תוסף דורש כמות שונה של מעבד וזיכרון.
ככלל אצבע, אפשר להניח שהתוספים שפועלים בצומת דורשים:
- מעבד (CPU) עם 200 ליבות מילימטריות
- זיכרון בנפח 100 MiB
עכשיו אפשר לחשב את המשאבים שזמינים בצומת לעומסי העבודה באופן הבא:
Allocatable CPU - 200 millicoresAllocatable memory - 100 MiB
יש צמתים מסוימים שנדרשים להם יותר משאבים לתוספים מאשר מה שמופיע בכלל הכללי הקודם. לדוגמה, יכול להיות שצומת אחד יפעיל תוסף Prometheus שדורש 2GiB של זיכרון. אבל אם באשכול יש יותר מכמה צמתים, סביר להניח שהכלל הכללי חל על רוב הצמתים.
המאמרים הבאים
מידע נוסף על המושג 'משאבים שניתנים להקצאה' זמין במאמר משאבים שניתנים להקצאה במסמכי התיעוד של GKE on Google Cloud.