הגדרת אשכול לניהול על ידי GKE On-Prem API

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

הסברים על המונחים

רישום אשכול מאפשר לכם לנהל את מחזור החיים של האשכול באמצעות המסוף, ה-CLI של gcloud או Terraform.

רישום אשכול ב-Fleet הוא תהליך נפרד מרישום אשכול. Fleet היא קבוצה לוגית של אשכולות Kubernetes שאפשר לנהל אותם יחד. כל האשכולות ב-Google Distributed Cloud רשומים ב-Fleet בזמן יצירת האשכול. כשיוצרים אשכול באמצעות bmctl, האשכול נרשם בפרויקט Google Cloud שמצוין בשדה gkeConnect.projectID בקובץ ההגדרות של האשכול. הפרויקט הזה נקרא פרויקט המארח של ה-Fleet. למידע נוסף על Fleet, כולל תרחישי שימוש, שיטות מומלצות ודוגמאות, אפשר לעיין במסמכי התיעוד בנושא ניהול Fleet.

הצגת אשכולות רשומים

כל האשכולות של הצי מוצגים בדפים GKE Clusters במסוף. כך תוכלו לקבל סקירה כללית של כל צי המכונות שלכם, וב-Google Distributed Cloud תוכלו לראות אילו אשכולות מנוהלים על ידי GKE On-Prem API.

כדי לראות את אשכולות ה-Fleet:

  1. במסוף, עוברים לדף GKE clusters.
    מעבר לאשכולות GKE
  2. בוחרים את הפרויקט Google Cloud .
    • אם Bare metal מוצג בעמודה Type, האשכול מנוהל על ידי GKE On-Prem API.
    • אם External מוצג בעמודה Type, האשכול לא מנוהל על ידי GKE On-Prem API.

דרישות

  • אפשר לרשום רק אשכולות משתמשים ואשכולות אדמין באמצעות GKE On-Prem API. אי אפשר לרשום אשכולות היברידיים ואשכולות עצמאיים.
  • גרסה 1.13 ואילך.
  • ההרשמה של אשכולות משתמשים שנוצרו במרחבי שמות מותאמים אישית לא נתמכת. קובץ ההגדרה של אשכול המשתמש שנוצר משתמש במרחב השמות של האשכול שמוגדר כברירת מחדל, בתבנית cluster-CLUSTER_NAME. אם משנים את מרחב השמות כשיוצרים את האשכול, ניסיונות לרשום את האשכול באמצעות GKE On-Prem API נחסמים.

  • אם אתם לא בעלי הפרויקט, אתם צריכים לקבל לפחות את התפקיד roles/gkeonprem.admin בממשק לניהול הזהויות והרשאות הגישה (IAM) בפרויקט. פרטים על ההרשאות שכלולות בתפקיד הזה מופיעים במאמר תפקידים ב-GKE on-prem במסמכי ה-IAM.

לפני שמתחילים

  1. אם צריך, מגדירים את ה-CLI של gcloud.

    1. אם אתם צריכים להתקין את ה-CLI של gcloud, תוכלו לעיין במסמכי התיעוד של gcloud CLI. מעדכנים את הרכיבים של ה-CLI של gcloud, אם צריך:

      gcloud components update
      
  2. כדי להפעיל את GKE On-Prem API ולהשתמש בו, פועלים לפי השלבים הבאים:

    1. מפעילים את ה-API בפרויקט:

      gcloud services enable \
          --project PROJECT_ID \
          gkeonprem.googleapis.com
      

      מחליפים את PROJECT_ID במזהה הפרויקט של פרויקט המארח של ה-Fleet. זהו מזהה הפרויקט שהוגדר בקטע gkeconnect של קובץ הגדרת האשכול.

      אם מופיעה השגיאה PERMISSION_DENIED, צריך לבדוק שוב את מזהה הפרויקט שהזנתם. אם מזהה הפרויקט נכון, מריצים את הפקודה gcloud auth login כדי להיכנס ל-Google Cloud CLI באמצעות החשבון שיש לו גישה לפרויקט.

    2. אם זו הפעם הראשונה שאתם מפעילים את GKE On-Prem API בפרויקט, אתם צריכים לאתחל את ה-API. כדי לעשות את זה, מריצים פקודה ב-CLI של gcloud שמציגה את הגרסאות הזמינות שאפשר להשתמש בהן כדי ליצור אשכול:

      gcloud container bare-metal clusters query-version-config \
          --project=PROJECT_ID \
          --location=REGION
      

      מחליפים את REGION ב-us-west1 או באזור נתמך אחר.

  3. אם בארגון שלכם הוגדרת רשימת היתרים שמאפשרת לתנועה מ-Google APIs ומכתובות אחרות לעבור דרך שרת ה-proxy, צריך להוסיף את הכתובות הבאות לרשימת ההיתרים:

    • gkeonprem.googleapis.com
    • gkeonprem.mtls.googleapis.com

    אלה שמות השירותים של GKE On-Prem API.

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

‫CLI של gcloud

  1. מציגים את חברי הצי של אשכולות רשומים:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה הפרויקט המארח של Fleet.

    חשוב לשים לב לאזור שבו אשכול האדמין שמנהל את אשכול המשתמשים הוא חבר, כי תצטרכו את זה בשלב הבא.

  2. רושמים את האשכול ל-GKE On-Prem API:

    gcloud container bare-metal clusters enroll USER_CLUSTER_NAME  \
        --project=PROJECT_ID \
        --admin-cluster-membership=projects/PROJECT_ID/locations/MEMBERSHIP_REGION/memberships/ADMIN_CLUSTER_NAME \
        --location=REGION
    

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

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

    • PROJECT_ID: מזהה הפרויקט המארח של ה-Fleet.

    • MEMBERSHIP_REGION: האזור שבו נמצא אשכול האדמין שמנהל את אשכול המשתמשים. יכול להיות שזה global או אזור Google Cloud .

    • ADMIN_CLUSTER_NAME: השם של אשכול האדמין שמנהל את אשכול המשתמשים.

      השם המלא של האשכול שמוגדר בדגל --admin-cluster-membership הוא ADMIN_CLUSTER_NAME, MEMBERSHIP_REGION ו-PROJECT_ID.

    • REGION: האזור שבו פועל GKE On-Prem API ושבו מאוחסנים המטא-נתונים של האשכול. Google Cloud מציינים us-west1 או אזור נתמך אחר. אחרי שמצרפים את האשכול, אי אפשר לשנות את האזור.

bmctl

מבצעים את השלבים הבאים בתחנת העבודה של האדמין.

  1. מוסיפים את הקטע הבא לקובץ התצורה של אשכול המשתמשים:

    gkeOnPremAPI:
      enabled: true
      location: REGION
    

    מחליפים את REGION באזור שבו ה-API של GKE On-Prem פועל ושבו מאוחסנים המטא-נתונים של האשכול. מציינים us-west1 או אזור נתמך אחר. אי אפשר לשנות את האזור אחרי שהאשכול נרשם. Google Cloud

  2. מעדכנים את האשכול:

    bmctl update cluster -c USER_CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

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

    • USER_CLUSTER_NAME: השם של אשכול המשתמשים שרוצים לעדכן.

    • ADMIN_CLUSTER_KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול האדמין.

רישום של אשכול אדמין

‫CLI של gcloud

  1. מציגים את חברי הצי של אשכולות רשומים:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה הפרויקט המארח של Fleet.

    חשוב לשים לב לאזור שבו אשכול האדמין הוא חבר, כי תצטרכו את זה בשלב הבא.

  2. מצטרפים אל GKE On-Prem API עם אשכול הניהול:

    gcloud container bare-metal admin-clusters enroll ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID  \
        --admin-cluster-membership=projects/PROJECT_ID /locations/MEMBERSHIP_REGION /memberships/ADMIN_CLUSTER_NAME  \
        --location=REGION
    

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

  • ADMIN_CLUSTER_NAME: השם של אשכול האדמין שרוצים לרשום.

  • PROJECT_ID מזהה הפרויקט של פרויקט המארח של Fleet.

  • MEMBERSHIP_REGION: האזור שבו אשכול האדמין הוא חבר. יכול להיות שמדובר בglobal או באזור Google Cloud .

    השם המלא של האשכול שמוגדר בדגל --admin-cluster-membership מורכב מ-ADMIN_CLUSTER_NAME, MEMBERSHIP_REGION ו-PROJECT_ID.

  • REGION: האזור שבו פועל GKE On-Prem API ושבו מאוחסנים המטא-נתונים של האשכול. Google Cloud מציינים us-west1 או אזור נתמך אחר. אחרי שמצרפים את האשכול, אי אפשר לשנות את האזור.

bmctl

מבצעים את השלבים הבאים בתחנת העבודה של האדמין.

  1. מוסיפים את הקטע הבא לקובץ התצורה של אשכול הניהול:

    gkeOnPremAPI:
      enabled: true
      location: REGION
    

    מחליפים את REGION באזור שבו ה-API של GKE On-Prem פועל ושבו מאוחסנים המטא-נתונים של האשכול. מציינים us-west1 או אזור נתמך אחר. אי אפשר לשנות את האזור אחרי שהאשכול נרשם. Google Cloud

  2. מעדכנים את האשכול:

    bmctl update cluster -c ADMIN_CLUSTER_NAME \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

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

    • ADMIN_CLUSTER_NAME: השם של אשכול הניהול שרוצים לעדכן.

    • ADMIN_CLUSTER_KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול האדמין.

קבלת מידע על האשכול

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

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

  • כדי לתאר אשכול משתמשים:
gcloud container bare-metal clusters describe USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=REGION
  • כדי להציג רשימה של אשכולות המשתמשים:
gcloud container bare-metal clusters list \
    --project=PROJECT_ID \
    --location=-

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

קלאסטר אדמין

  • כדי לתאר אשכול אדמין:
gcloud container bare-metal admin-clusters describe ADMIN_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=REGION
  • כדי להציג את רשימת אשכולות האדמין:
gcloud container bare-metal admin-clusters list \
    --project=PROJECT_ID \
    --location=-

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

התחברות לאשכול

אחרי שמצרפים את האשכול ל-GKE On-Prem API, צריך לבחור ולהגדיר שיטת אימות כדי שתוכלו לנהל את האשכול מ Google Cloud המסוף. שיטת האימות שבוחרים קובעת גם את הגישה לאשכול משורת הפקודה. מידע נוסף: