בדף הזה מוסבר על תרחישי שגיאה שונים, על הודעות השגיאה שמוצגות בתרחישים האלה ועל שלבים לפתרון הבעיות.
תרחישים של שגיאות ברשת
הטווח המוקצה של כתובות ה-IP מוצה
כדי להשתמש ב-Memorystore for Memcached, צריך להשתמש בחיבור גישה לשירותים פרטיים ובטווח כתובות IP שמשויך לחיבור הזה. יכול להיות שתמצו את כתובות ה-IP שזמינות בטווח הזה עם מופעי Memcached ומשאבים אחרים של Google Cloud .
אם אין יותר כתובות IP זמינות, כשמנסים ליצור מכונה מוחזרת הודעת השגיאה הבאה:
ERROR: (gcloud.memcache.instances.create) {
"code": 9,
"message": "Unable to create instance. The allocated private IP address space
is exhausted. For information on expanding the allocation, see https://cloud.google.com/vpc/docs/configure-private-services-access#modify-ip-range"
}
כדי לפתור את הבעיה הזו, צריך להקצות כתובות IP נוספות. מידע נוסף על אופן ההגדרה מופיע במאמר בנושא מיצוי של טווח כתובות IP.
לא הוגדר חיבור של גישה לשירותים פרטיים לרשת שלכם
אם מנסים ליצור מכונת Memorystore for Memcached בלי חיבור גישה לשירותים פרטיים שהוגדר לרשת של הפרויקט, היצירה תיכשל ותופיע השגיאה הבאה:
Google private service access is not enabled. Enable private service access and
try again
כדי ליצור מכונה בהצלחה, צריך לפעול לפי ההוראות להגדרת גישה לשירותים פרטיים במאמר יצירת חיבור לגישה לשירותים פרטיים.
ה-peering של הרשת לגישה לשירותים פרטיים נמחק
יצירת חיבור של גישה לשירותים פרטיים יוצרת קישור בין רשתות שנקרא servicenetworking-googleapis-com, שמופיע בדף VPC Network Peering בפרויקט.
אם תמחקו את ה-Peering של הרשת הזו, יכול להיות שתקבלו את השגיאות הבאות:
telnet: Unable to connect to remote host: Connection timed outUnable to create instance. Enable private service access for the authorized network and try again. For information on enabling private service access, see https://cloud.google.com/service-infrastructure/docs/enabling-private-services-access
כדי לפתור את הבעיה, צריך לפעול לפי השלב האחרון בהוראות ל-gcloud במאמר יצירת חיבור לגישה לשירותים פרטיים.
כללי חומת האש חוסמים את כתובות ה-IP של המופע
יכולות להיות בעיות בקישוריות אם יוצרים כללים של חומת אש שחוסמים כתובות IP מטווח כתובות ה-IP שהוקצה לחיבור שלכם לגישה לשירותים פרטיים.
חשוב לוודא שלא יוצרים כללים לחומת אש ברשת שחוסמים את טווח כתובות ה-IP של מופעי Memcached.
שגיאות בהתחברות למופע Memcached ממשאבים אחרים ב-Google Cloud
שגיאות בהתחברות למופע מסביבת App Engine רגילה או מפונקציות Cloud Run
אם אתם לא מצליחים להתחבר למופע Memcached באמצעות הסביבה הרגילה של App Engine או פונקציות Cloud Run, יכול להיות שלא הגדרתם מחבר Serverless VPC Access לסביבה שלכם.
הוראות להגדרת חיבור לרשת (VPC) מאפליקציית serverless בסביבה הרגילה של App Engine מופיעות במאמר חיבור לרשת VPC.
הוראות להגדרת חיבור לרשת (VPC) מאפליקציית serverless עבור פונקציות Cloud Run זמינות במאמר חיבור לרשת VPC.
שגיאות בהתחברות למופע באמצעות אשכול Google Kubernetes Engine
אי אפשר להתחבר למופע של Memorystore for Memcached מאשכול GKE בלי להפעיל באשכול את התכונה 'מותאם ל-VPC' או 'הקצאת כתובות IP וירטואליות'. הכי קל להפעיל את התכונה 'מותאם ל-VPC' או 'הקצאת כתובות IP וירטואליות' במהלך יצירת אשכול GKE. כשיוצרים את האשכול, בוחרים באפשרות מותאם ל-VPC באפשרויות המתקדמות. לפרטים נוספים, אפשר לעיין במאמר בנושא יצירת אשכולות שמותאמים ל-VPC.
שגיאות בהתחברות למופע באמצעות הסביבה הגמישה של App Engine או מכונות וירטואליות של Compute Engine
אם נתקלתם בבעיות בחיבור למופע, תוכלו להיעזר בפתרונות הבאים:
מוודאים שהקצאתם את מופע Memcached באותו אזור ובאותה רשת כמו הלקוח שמנסה לגשת אליו.
בודקים שאין בפרויקט כללים של חומת אש ברשת שחוסמים את כתובות ה-IP של הצמתים במופע Memcached.
- כדי לראות את כתובות ה-IP של הצמתים, אפשר לעיין בכרטיסייה 'צמתים' של מופע Memcached במסוף Google Cloud .
מבצעים Telnet לאחד מצמתי memcached, ומריצים כמה פקודות פשוטות של Memcached
setכדי לבדוק אם המכונה מגיבה או לא.get- אם הצומת לא מגיב, כדאי לבדוק אם אחת מהבעיות לפתרון תקלות שמפורטות בתרחישי שגיאות ברשת חוסמת את החיבור לרשת של הצומת. אם לא, פנו אל Google Cloud התמיכה.
תרחישי שגיאה בניהול זהויות והרשאות גישה ( IAM)
שחזור חשבון שירות שנמחק
ב-Memorystore for Memcached נעשה שימוש בחשבונות השירות הבאים כדי לנהל את מכונות Memcached:
- service-project-number@service-networking.iam.gserviceaccount.com
- service-project-number@cloud-memcache-sa.iam.gserviceaccount.com
מחיקת הקישורים למדיניות של חשבונות השירות האלה תמנע מכם ליצור מופעים חדשים.
אם תנסו ליצור מופע Memcached באמצעות gcloud בתרחיש הזה, יכול להיות שתקבלו את הודעת השגיאה הבאה:
ERROR: (gcloud.memcache.instances.create) {
"code": 13,
"message": "an internal error has occurred"
}
כדי ליצור מחדש את הקישור של המדיניות לחשבונות השירות האלה, מריצים אחת מהפקודות הבאות ומחליפים את variables בערכים המתאימים. מריצים את הפקודה שמשויכת לחשבון השירות שנמחק.
gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@service-networking.iam.gserviceaccount.com' --role='roles/servicenetworking.serviceAgent'
gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@cloud-memcache-sa.iam.gserviceaccount.com' --role='roles/memcache.serviceAgent'
שגיאות שקשורות לפסק זמן של פעולה
תרחישי השגיאה הבאים גורמים למופע Memcached שלא מגיב ו/או לפסק זמן של פעולת מופע או צומת.
שגיאת חלוקה לרשת
לפעמים משאבים לא יכולים לתקשר בין אזורים בתוך אזור מסוים בגלל שגיאת חלוקת רשת בשרתים של Google Cloud. זה יכול לגרום לניתוק של המופע, וכתוצאה מכך לשגיאת זמן קצוב לתפוגה. Google Cloud
אחרי ש- Google Cloud יפתור את שגיאת חלוקת הרשת לאזור או לאזור הזמינות שבהם מוקצה המופע שלכם, הקישוריות אמורה לחזור לפעולה כרגיל.
בתרחיש הזה, יכול להיות שתופיע הודעת שגיאה לגבי הקישוריות, כמו ההודעה הבאה:
telnet: Unable to connect to remote host: Connection timed out
אם אתם לא מצליחים לזהות את הגורם לשגיאת הזמן הקצוב לתפוגה, אתם יכולים לפנות אל Google Cloud התמיכה.
הפניה לא תקינה של אפליקציה לכתובות IP של צמתים
אם הלקוח שלכם מגיע לזמן קצוב לתפוגה כשמנסים להתחבר לצמתים, יכול להיות שהבעיה היא שהאפליקציה לא מציינת את כתובת ה-IP הנכונה של הצמתים שאליהם אתם מנסים להתחבר. מוודאים שהאפליקציה מפנה לכתובות ה-IP של הצמתים באשכול.
במקרה כזה, יכול להיות שתופיע הודעת שגיאה לגבי הקישוריות, כמו ההודעה הבאה:
telnet: Unable to connect to remote host: Connection timed out
כדי לפתור את הבעיה, צריך לחפש את כתובות ה-IP של הצמתים ולוודא שהאפליקציה מפנה לכתובות הצמתים בצורה מדויקת.
תרחישי שגיאה נוספים
טווחי כתובות IP לא נתמכים ב-Compute Engine
אי אפשר לגשת ל-Memorystore for Memcached ממכונות וירטואליות ב-Compute Engine עם כתובת IP בטווח 172.17.0.0/16, כי הטווח הזה שמור לרכיב פנימי.
התפלגות לא מאוזנת של צמתים בין תחומים באזור
אם תחום (zone) באזור Google Cloud לא זמין בזמן הקצאת מופע Memcached, הצמתים נוצרים בתחומים הזמינים. זה עלול להוביל לחוסר איזון בחלוקת הצמתים של Memcached בין האזורים באזור.
השינויים האלה לא אמורים להשפיע באופן משמעותי על ביצועי האפליקציה. עם זאת, באופן אידיאלי, הצמתים צריכים להיות מפוזרים בכל האזורים באזור מסוים כדי להגן על הנתונים מפני הפסקות חשמל אזוריות.
אם אתם לא מרוצים מהחלוקה של הצמתים בין האזורים כשאתם יוצרים מופע, אתם יכולים לחכות עד שהאזור יחזור למצב אונליין כדי ליצור את המופע, או להשתמש באסטרטגיה הבאה כדי לנסות לחלק מחדש את הצמתים בין האזורים במועד מאוחר יותר:
כדי לחלק מחדש את צמתי Memcached בין הצמתים הזמינים באזור, מגדילים את הקיבולת של המופע ואז מקטינים אותה בחזרה למספר הצמתים הרצוי. אם האזורים הרצויים יחזרו למצב אונליין, תהליך ההרחבה יפיץ מחדש את הצמתים באופן שווה בין האזורים הזמינים. בנוסף, חשוב לדעת שהגדלת הקיבולת גורמת לניקוי המטמון של הנתונים במופע Memcached.