במאמר הזה מוסבר איך פועלות מגבלות הצירוף של נפחים מתמשכים (Persistent Volume) לדיסקים מתמשכים (Persistent Disk) ולדיסקים מסוג Hyperdisk ב-Compute Engine בצמתי Google Kubernetes Engine (GKE). כדי לתזמן עומסי עבודה בצורה נכונה ולקבוע את הגודל של מאגר הצמתים, חשוב להבין מהו המספר המקסימלי של נפחי אחסון קבועים שאפשר לצרף לצומת GKE. אם אתם רוצים שליטה רבה יותר על תזמון עומסי העבודה, במיוחד כשאתם משתמשים בכמה סוגי דיסקים עם מגבלות שונות של צירוף במכונה אחת, אתם יכולים להשתמש בתווית צומת כדי לשנות את מגבלות ברירת המחדל של הצירוף.
המסמך הזה מיועד למומחי אחסון שיוצרים ומקצים אחסון, ולאדמינים של GKE שמנהלים את תזמון עומסי העבודה ואת גודל מאגר הצמתים. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שמוזכרים ב Google Cloud תוכן זמין במאמר תפקידים נפוצים של משתמשים בגרסה הארגונית ומשימות ב-GKE Enterprise.
סקירה כללית
ב-GKE, כשמבקשים PersistentVolume (PV) באמצעות מנהל ההתקן של ה-CSI של Persistent Disk ב-Compute Engine (pd.csi.storage.gke.io), נפח אחסון בלוקים מוקצה משירות Persistent Disk ( Google Cloud ).
כשמפעילים את מנהל ההתקן של ה-CSI של Persistent Disk ב-Compute Engine (PDCSI) באשכולות GKE, מנהל ההתקן של ה-PDCSI מחשב ומדווח על מגבלת הצירוף של נפח אחסון מתמשך לכל צומת אל kubelet. על סמך המידע הזה, מתזמן Kubernetes מקבל החלטות תזמון כדי לוודא שהוא לא מתזמן יותר מדי Pods שדורשים נפחי אחסון קבועים בצומת שהגיע לקיבולת הצירוף שלו. אם מנהל ההתקן של PDCSI דיווח על מגבלות לא מדויקות של צירוף, ובאופן ספציפי על מספר גבוה מהמגבלה בפועל, לא תתבצע הקצאה של ה-Pods והם יישארו במצב Pending. זה יכול לקרות בסוגי מכונות מהדור השלישי, כמו C3, שיש להם מגבלות שונות לצירוף של Hyperdisks ו-Persistent Disks.
הסבר על מגבלות הצירוף של נפח אחסון קבוע
במכונות מדורות ישנים יותר מהדור הרביעי, מנהל ההתקן של PDCSI ב-Compute Engine מגדיר מגבלת צירוף של 128 דיסקים (127 דיסקים של נתונים ודיסק אתחול אחד) לכל סוגי המכונות. מגבלת הצירוף חלה על נפחי אחסון מתמיד (Persistent Disk) ו-Hyperdisk ביחד. ב-Hyperdisk, מגבלת הצירוף נקבעת לפי סוג המכונה הבסיסי של Compute Engine, מספר יחידות ה-vCPU שיש למכונה וסוג ה-Hyperdisk הספציפי.
לדוגמה:
- בסוגי מכונות מהדור הרביעי, כמו C4, מנהל ההתקן של PDCSI מדווח ל-Kubernetes באופן מדויק על מגבלת ברירת המחדל לצירוף, שמחושבת על סמך מספר ה-vCPU של הצומת. מגבלת הצירוף המדווחת היא בדרך כלל בטווח של 8-128 אמצעי אחסון קבועים.
- לעומת זאת, בסוגי מכונות מהדור השלישי כמו C3, מנהל ההתקן של PDCSI מדווח על מגבלת ברירת מחדל לצירוף ל-Kubernetes בתור המגבלה הקבועה של 128 דיסקים, מה שעלול לגרום לכשל בתזמון של Pod כי המגבלה בפועל יכולה להיות נמוכה מ-128 בהתאם למספר ה-vCPU.
אפשר לשנות את מגבלת ברירת המחדל של צירוף באמצעות תווית צומת.
כדאי להיעזר במקורות המידע הבאים במאמרי העזרה של Compute Engine:
- בטבלה שבקטע מינוח Compute Engine מפורטים הדורות הזמינים של מכונות Compute Engine.
- רשימה של סוגי מכונות וסוגי Persistent Disk תואמים זמינה במאמר תמיכה בסדרות מכונות.
- כדי לדעת מהן מגבלות הצירוף המקסימליות של Hyperdisk בהתאם למספרים שונים של ליבות CPU בסוגים שונים של Hyperdisk, אפשר לעיין במאמר נפחי Hyperdisk מקסימליים לכל מכונה וירטואלית.
- כדי להבין איך מגבלות הצירוף של Hyperdisk חלות על צומת, אפשר לעיין בסיכום המגבלות של Hyperdisk לכל מכונה וירטואלית.
שינוי ברירת המחדל של המגבלה על צירוף נפח אחסון קבוע
אם יש לכם דרישות ספציפיות או הגדרות אישיות של צמתים שבהן אתם רוצים לצרף מספר ספציפי של אמצעי אחסון קבועים לצמתים, אתם יכולים לשנות את מגבלת ברירת המחדל של צירוף אמצעי אחסון קבועים למאגר צמתים באמצעות תווית הצומת הבאה: node-restriction.kubernetes.io/gke-volume-attach-limit-override: VALUE.
אפשר להשתמש בתווית הצומת הזו בגרסאות הבאות של GKE:
1.32.4-gke.1698000ומאוחר יותר.-
1.33.1-gke.1386000ואילך.
מאגר צמתים חדש
כדי ליצור מאגר חדש של צמתים עם מגבלה ספציפית על מספר החיבורים של אמצעי אחסון קבועים, מריצים את הפקודה הבאה:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUE
מאגר צמתים קיים
כדי לשנות את המגבלה הנוכחית של צירוף נפח אחסון קבוע למאגר צמתים קיים, פועלים לפי השלבים הבאים:
מעדכנים את מגבלת הצירוף במאגר הצמתים:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUEמפעילים מחדש את DaemonSet של
pdcsi-node:kubectl rollout restart ds pdcsi-node -n kube-systemהמגבלה החדשה על צירוף קבצים חלה אחרי שמכשירי ה-Pods נמצאים במצב
pdcsi-nodeRunning.
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים שרוצים ליצור או לעדכן. -
CLUSTER_NAME: השם של האשכול שבו רוצים ליצור או לעדכן את מאגר הצמתים. -
VALUE: מספר שלם בין0ל-127שמציין את המספר החדש של כרכים קבועים שאפשר לצרף. אם מציינים ערך גבוה מ-127, תווית הצומת מתעלמת מהערך ודרייבר ה-PDCSI משתמש במגבלת ברירת המחדל של צירוף נפח מתמשך. מגבלת ברירת המחדל היא 128 למכונות מהדור השלישי, וערך שמבוסס על מספר ה-vCPU למכונות מהדור הרביעי.
אימות הביטול
כדי לוודא שההחלפה בוצעה בצורה נכונה, בודקים את תוויות הצומת ואת קיבולת הצומת.
בפקודות הבאות, מחליפים את NODE_NAME בשם של צומת ששייך למאגר הצמתים הספציפי שבו החלתם את החלפת התווית של הצומת.
בודקים את תוויות הצמתים:
kubectl get node NODE_NAME --show-labelsהפלט צריך לכלול את התווית
node-restriction.kubernetes.io/gke-volume-attach-limit-override.בדיקת הקיבולת של הצומת:
kubectl describe node NODE_NAMEהפלט צריך לכלול את הקיבולת
attachable-volumes-gce-pd, שצריכה להיות זהה לערך החלפת ברירת המחדל שהגדרתם למאגר הצמתים. מידע נוסף זמין במאמר בנושא בדיקת משאבים שניתנים להקצאה בצומת.