פתרון בעיות באשכולות שרשומים ב-GKE On-Prem API

בדף הזה מוסבר איך לחקור בעיות שקשורות ליצירת אשכול משתמשים ב-Google Distributed Cloud במסוף Google Cloud .

‫GKE On-Prem API הוא API שמתארח ב-Google Cloud ומאפשר לכם לנהל את מחזור החיים של אשכולות מקומיים באמצעות Terraform וGoogle Cloud כלים סטנדרטיים. ‫GKE On-Prem API פועל בתשתית של Google Cloud. ‫Terraform,‏ Google Cloud console ו-Google Cloud CLI הם לקוחות של ה-API, והם משתמשים ב-API כדי ליצור, לעדכן, לשדרג ולמחוק אשכולות במרכז הנתונים שלכם. אם יצרתם את האשכול באמצעות לקוח רגיל, האשכול נרשם ל-GKE On-Prem API, מה שאומר שאתם יכולים להשתמש בלקוחות הרגילים כדי לנהל את מחזור החיים של האשכול (עם כמה חריגים).

שגיאות ביצירת אשכול

בקטע הזה מתוארות כמה שגיאות שקורות במהלך יצירת אשכול במסוףGoogle Cloud .

שגיאה: המשאב כבר קיים

יצירת אשכול משתמשים נכשלת עם הודעת שגיאה שדומה להודעה הבאה:

Resource 'projects/1234567890/[...]/user-cluster1'
already exists
Request ID: 129290123128705826

הודעת השגיאה הזו מציינת ששם האשכול כבר נמצא בשימוש.

אחד הפתרונות לבעיה הזו הוא למחוק את האשכול וליצור אותו מחדש:

  1. צריך ליצור את האשכול מחדש עם שם אחר שלא מתנגש עם שם של אשכול קיים.

שגיאה של כתובות IP מתנגשות

יצירת אשכול משתמשים נכשלת עם הודעת שגיאה שדומה להודעה הבאה:

- Validation Category: Network Configuration
- [FAILURE] CIDR, VIP and static IP (availability and overlapping): user: user
  cluster control plane VIP "10.251.133.132" overlaps with
  example-cluster1/control plane VIP "10.251.133.132"

אי אפשר לערוך שדות כמו Control plane VIP ו-Ingress VIP בקטע Load balancer בדף Cluster details במסוףGoogle Cloud . כדי לתקן כתובות IP מתנגשות, צריך למחוק את האשכול וליצור אותו מחדש:

  1. יוצרים את האשכול מחדש עם כתובות IP שלא מתנגשות עם אשכול קיים.

הסרה של אשכולות לא תקינים

יש הרבה סיבות לכך שקלאסטר יכול להיות במצב לא תקין, למשל:

  • בעיות בקישוריות ל-Connect Agent או לסביבה המקומית.
  • אשכול האדמין של אשכול המשתמשים נמחק, או שיש בעיות בקישוריות בין אשכול האדמין לאשכול המשתמשים.

אם אי אפשר למחוק אשכול במסוף, משתמשים בפקודות ה-CLI של gcloud כדי למחוק Google Cloud משאבים מאשכולות לא תקינים. אם לא עדכנתם לאחרונה את ה-CLI של gcloud, מריצים את הפקודה הבאה כדי לעדכן את הרכיבים:

gcloud components update

לאחר מכן מוחקים את Google Cloud המשאבים.

אשכול משתמשים

  1. מוחקים את אשכול המשתמשים:

    gcloud container  clusters delete USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --force \
      --allow-missing \
      --ignore-errors

    מחליפים את מה שכתוב בשדות הבאים:

    • USER_CLUSTER_NAME: השם של אשכול המשתמשים שרוצים למחוק.

    • PROJECT_ID: המזהה של הפרויקט שהאשכול רשום בו.

    • REGION: Google Cloud המיקום שמשויך לאשכול המשתמשים. המיקום מוצג במסוף.

      הדגל --force מוחק אשכול שיש לו מאגרי צמתים. בלי הדגל --force, צריך למחוק קודם את מאגרי הצמתים ואז למחוק את האשכול.

      הדגל --allow-missing מאפשר להמשיך את הפקודה אם לא נמצא אשכול.

      הדגל --ignore-errors מסיר Google Cloud משאבים כשהאדמין ואשכולות המשתמשים לא נגישים.

      הפקודה הזו מוחקת את האשכול אם הוא קיים, ומסירה את משאבי GKE On-Prem API וחברות בצי מ- Google Cloud.

  2. מוודאים שמשאבי GKE On-Prem API נמחקו:

    gcloud container  clusters list \
      --project=PROJECT_ID \
      --location=-

    כשמגדירים את --location=-, המשמעות היא שצריך לרשום את כל האשכולות בכל האזורים. אם רוצים לצמצם את הרשימה, מגדירים את --location לערך

  3. מוודאים שמשאבי החברות בצי נמחקו:

    gcloud container fleet memberships list \
      --project=PROJECT_ID

אשכול אדמין

  1. אם רשמתם את אשכול האדמין ל-GKE On-Prem API, בטלו את הרישום שלו:

    gcloud container  admin-clusters unenroll ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=REGION \
     --allow-missing 
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ADMIN_CLUSTER_NAME: השם של אשכול האדמין.
    • PROJECT_ID: המזהה של פרויקט המארח של ה-Fleet.
    • REGION: האזור. Google Cloud

    הדגל --allow-missing מבטל את ההרשמה של האשכול אם לא נמצאת חברות ב-Fleet.

    הפקודה הזו מסירה את משאבי GKE On-Prem API מ- Google Cloud.

  2. מסירים את האשכול מה-Fleet:

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=global

    הפקודה הזו מסירה משאבי חברות ב-Fleet מ- Google Cloud.

  3. מוודאים שמשאבי GKE On-Prem API נמחקו:

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME --project=FLEET_HOST_PROJECT_ID
    

    כשמגדירים את --location=-, המשמעות היא שצריך לרשום את כל האשכולות בכל האזורים. אם רוצים לצמצם את הרשימה, מגדירים את --location לערך

  4. מוודאים שמשאבי החברות בצי נמחקו:

    gcloud container fleet memberships list \
      --project=PROJECT_ID

המאמרים הבאים

אם אתם צריכים עזרה נוספת, אתם יכולים לפנות אל