שימוש נרחב במסד הנתונים etcd עלול לגרום לחוסר יציבות באשכול ולמחסור במשאבים, שמונעים מהאשכולות של Google Kubernetes Engine (GKE) להתאים לעומס בצורה יעילה.
במאמר הזה נסביר איך לזהות אשכולות שבהם השימוש ב-etcd מתקרב למגבלה, ואיך לפנות מקום כדי לשמור על יציבות האשכול.
המידע הזה חשוב לאדמינים ולמפעילים של הפלטפורמה שאחראים על התקינות והמדרגיות של אשכולות GKE. מידע נוסף על התפקידים הנפוצים ועל משימות לדוגמה שאנחנו מתייחסים אליהם בתוכן של Google Cloud זמין במאמר תפקידי משתמשים נפוצים ומשימות ב-GKE.
במסמך הזה מוסבר איך לפתור בעיות שקשורות ליציבות של אשכולים בגלל שימוש גבוה ב-etcd. אם נתקלתם בבעיה אחרת שקשורה למדרגיות, יכול להיות שאחד מהמסמכים הבאים יעזור לכם:
בעיות בהתאמה לעומס (autoscaling) באשכול:
- לפתרון בעיות שקשורות להוספה של צמתים חדשים, אפשר לעיין במאמר בנושא פתרון בעיות שקשורות למידרוג אוטומטי של אשכולות שלא מגדיל את קנה המידה.
- כדי לפתור בעיות שקשורות להסרת צמתים שלא מנוצלים מספיק, קראו את המאמר פתרון בעיות שקשורות למידרוג אוטומטי באשכול שלא מפחית בהתאם לעומס.
בעיות ב-Horizontal Pod Autoscaler (HPA): כדי לפתור בעיות שקשורות ל-HPA, אפשר לעיין במאמר פתרון בעיות בהתאמה אופקית של קבוצות Pod לעומס.
בעיות בשינוי הגודל של Autopilot: למידע נוסף על בעיות ספציפיות ל-Autopilot, כולל בעיות שקשורות לשינוי הגודל, אפשר לעיין במאמר פתרון בעיות באשכולות Autopilot.
זיהוי אשכולות שבהם השימוש ב-etcd מתקרב למגבלה
GKE מספק תובנות והמלצות לגבי תרחיש שבו השימוש ב-etcd מתקרב למגבלה. אפשר למצוא את התובנות וההמלצות האלה בדרכים הבאות:
- משתמשים במסוף Google Cloud . נכנסים לדף Kubernetes clusters. בעמודה Notifications של אשכולים ספציפיים, בודקים אם מופיעה ההמלצה Free up space to reduce risk of cluster instability (פינוי מקום כדי להפחית את הסיכון לחוסר יציבות של האשכול).
משתמשים ב-CLI של gcloud או ב-Recommender API ומציינים את סוג המשנה של שירות ההמלצות
ETCD_DB_USAGE_APPROACHING_LIMIT.כדי לשלוח שאילתה לגבי ההמלצה הזו, מריצים את הפקודה הבאה:
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:ETCD_DB_USAGE_APPROACHING_LIMIT"
כדי ליישם את ההמלצה הזו, צריך להסיר מ-etcd נתונים מיותרים כדי לפנות מקום. יכול להיות שתצטרכו למחוק משאבים ישנים או להעביר אובייקטים גדולים מחוץ ל-etcd. מידע נוסף זמין במאמר בנושא תכנון של אשכולות GKE גדולים.
זיהוי אשכולות שבהם נפח אחסון נדרש לכל סוג אובייקט מתקרב למגבלה
GKE מספק תובנות והמלצות לתרחיש שבו הגודל הכולל של אובייקטים מסוג etcd לכל סוג מתקרב למגבלה. אפשר למצוא את התובנות וההמלצות האלה בדרכים הבאות:
- משתמשים במסוף Google Cloud . עוברים לדף Kubernetes clusters. בעמודה Notifications של אשכולים ספציפיים, מחפשים את ההמלצה Reduce the size of resource type(s).
משתמשים ב-CLI של gcloud או ב-Recommender API ומציינים את סוג המשנה של שירות ההמלצות
APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT.כדי לשלוח שאילתה לגבי ההמלצה הזו, מריצים את הפקודה הבאה:
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml \ --filter="recommenderSubtype:APISERVER_RESOURCE_TYPE_SIZE_EXCEEDS_LIMIT"כדי להחליט אילו אובייקטים להסיר, אפשר להשתמש ב-kubectl כדי להציג אותם ברשימה. לדוגמה, אם ConfigMaps מתקרבים למגבלת האחסון, הפקודה הבאה תציג את כל ConfigMaps בכל מרחבי השמות, וכך תוכלו לזהות את אלה שאתם רוצים למחוק:
kubectl get configmaps --all-namespaces > new_file.txt
כדי ליישם את ההמלצה הזו ולפנות מקום, צריך להסיר מהאחסון אובייקטים מיותרים מהסוגים שצוינו. התהליך הזה עשוי לכלול מחיקה של משאבים ישנים או העברה של אובייקטים גדולים מהאחסון. מידע נוסף זמין במאמר תכנון אשכולות GKE גדולים.
המאמרים הבאים
אם לא מצאתם פתרון לבעיה במסמכי העזרה, תוכלו לקבל עזרה נוספת בקבלת תמיכה, כולל עצות בנושאים הבאים:
- לפתוח בקשת תמיכה באמצעות פנייה ל-Cloud Customer Care.
- לקבל תמיכה מהקהילה על ידי פרסום שאלות ב-StackOverflow ושימוש בתג
google-kubernetes-engineכדי לחפש בעיות דומות. אתם יכולים גם להצטרף לערוץ Slack של#kubernetes-engineכדי לקבל תמיכה מהקהילה. - פתיחת דיווחים על בעיות או בקשות למאפיינים חדשים באמצעות הכלי הציבורי Issue Tracker.