פתרון בעיות נפוצות
בדף הזה מוסבר איך לפתור בעיות נפוצות ב-GKE ב-Azure.
לקבלת עזרה נוספת, אפשר לפנות אל Cloud Customer Care.הודעות שגיאה נפוצות
בקטעים הבאים מוסברות הסיבות לכמה הודעות שגיאה נפוצות ומוצעים פתרונות לבעיות שגורמות להן.
לשרת אין משאב
שגיאות כמו error: the server doesn't have a resource type "services" יכולות לקרות אם באשכול אין מאגרי צמתים פעילים, או אם שער Connect לא יכול להתחבר למאגר צמתים. כדי לבדוק את הסטטוס של מאגרי הצמתים, מריצים את הפקודה הבאה:
gcloud container azure node-pools list \
--cluster-name CLUSTER_NAME \
--location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול -
LOCATION: המיקום Google Cloud שממנו מתנהל האשכול
הפלט כולל את הסטטוס של מאגרי הצמתים של האשכול. אם אין לכם מאגר צמתים ברשימה, צרו מאגר צמתים.
משתמשים שאין להם הרשאה
השגיאה הבאה מתרחשת כששם המשתמש שלכם לא כולל גישת אדמין לאשכול:
Error from server (Forbidden): users "administrator@example.com" is forbidden:
User "system:serviceaccount:gke-connect:connect-agent-sa" cannot impersonate
resource "users" in API group "" at the cluster scope
כדי להגדיר משתמשים נוספים, מעבירים את הדגל --admin-users כשיוצרים אשכול.
אם אתם משתמשים בשער Connect ולא מצליחים להתחבר לאשכול, נסו את השלבים הבאים:
מקבלים את המשתמשים המורשים עבור האשכול.
gcloud container azure clusters describe CLUSTER_NAME \ --format 'value(authorization.admin_users)'מחליפים את
CLUSTER_NAMEבשם האשכול.הפלט כולל את שמות המשתמשים עם גישת אדמין לאשכול. לדוגמה:
{'username': 'administrator@example.com'}מקבלים את שם המשתמש שאומת כרגע באמצעות Google Cloud CLI.
gcloud config get-value accountהפלט כולל את החשבון שאומת באמצעות Google Cloud CLI. אם הפלט של
gcloud containers azure clusters describeושלgcloud config get-value accountלא זהה, מריצים אתgcloud auth loginומבצעים אימות בתור שם המשתמש עם גישת אדמין לאשכול.
בעיות בפקודות kubectl
בקטעים הבאים מוסבר איך לפתור בעיות שקשורות לפקודות kubectl שלא מגיבות או נכשלות.
פקודות kubectl מפסיקות להגיב
אם האשכול שלכם מריץ גרסת Kubernetes מוקדמת מ-1.25 והפקודות kubectl
לא מגיבות או שפג הזמן הקצוב לתפוגה שלהן, הסיבה הנפוצה ביותר לכך היא שעדיין לא יצרתם מאגר צמתים. כברירת מחדל, GKE ב-Azure יוצר קובצי kubeconfig שמשתמשים בשער Connect כנקודת קצה שאפשר להגיע אליה דרך האינטרנט.
כדי שהתכונה הזו תפעל, פריסת gke-connect-agent צריכה לפעול במאגר צמתים באשכול.
כדי לקבל מידע נוסף על אבחון, מריצים את הפקודה הבאה:
kubectl cluster-info -v=9
אם אין מאגרי צמתים פעילים, הבקשות אל connectgateway.googleapis.com נכשלות עם השגיאה 404 cannot find active connections for cluster.
באשכולות עם גרסת Kubernetes 1.25 ואילך, הפקודה gke-connect-agent
פועלת במישור הבקרה, ולא נדרש מאגר צמתים. אם הפקודה kubectl לא מגיבה, בודקים את היומנים של רכיב מישור הבקרה באמצעות Cloud Logging.
פקודות kubectl exec, attach ו-port-forward נכשלות
יכול להיות שהפקודות kubectl exec, kubectl attach ו-kubectl port-forward ייכשלו עם ההודעה error: unable to upgrade connection כשמשתמשים בשער Connect. זוהי מגבלה כשמשתמשים בשער Connect כנקודת הקצה של שרת ה-API של Kubernetes.
כדי לעקוף את הבעיה, משתמשים ב-kubeconfig שמציין את נקודת הקצה הפרטית של האשכול. הוראות לגישה לאשכול דרך נקודת הקצה הפרטית שלו מפורטות במאמר הגדרת גישה לאשכול עבור kubectl.
פתרון בעיות כללי ב-kubectl
אם משתמשים בשער Connect:
מוודאים שהפעלתם את שער Connect ב Google Cloud פרויקט:
gcloud services enable connectgateway.googleapis.comבמקרה של אשכולות עם גרסת Kubernetes מוקדמת יותר מ-1.25, צריך לוודא שיש לפחות מאגר צמתים אחד עם Linux שפועל, ושהכלי
gke-connect-agentפועל. פרטים נוספים זמינים במאמר בנושא פתרון בעיות בחיבורים של אשכולים.במקרה של אשכולות עם Kubernetes בגרסה 1.25 ואילך, בודקים את
gke-connect-agentהיומנים באמצעות Cloud Logging.
המאמרים הבאים
- לקבלת עזרה נוספת, אפשר לפנות אל Cloud Customer Care.