רישום אשכול ב-Google Cloud ל-Fleet

בדף הזה מוסבר איך להוסיף אשכול GKE ב- Google Cloud לצי. בהתאם לפרויקט ולתרחיש השימוש, אפשר להשתמש במסוף Google Cloud , ב-Terraform, ב-Config Connector או ב-Google Cloud CLI לצורך רישום. אפשר גם ליצור ולרשום אשכול חדש בשלב אחד באמצעות Google Cloud CLI,‏ מסוף Google Cloud או Terraform.

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

חשוב לוודא שפעלתם לפי דרישות הסף הכלליות לרישום אשכול. מומלץ גם לעיין בהגבלות הכלליות על רישום אשכול בתכנון משאבי Fleet.

בהתאם לתרחיש השימוש, יכול להיות שרישומים של אשכולות GKE ידרשו גם את הפעולות הבאות: Google Cloud

רישום של אשכול GKE ב- Google Cloud

כפי שראיתם בדרישות המוקדמות, מומלץ לרשום את אשכולות GKE באמצעות איחוד זהויות של עומסי עבודה ב-GKE, כדי לספק לאפליקציות דרך עקבית לאימות ל- Google Cloud APIs ולשירותים. מידע נוסף על היתרונות של הפעלת איחוד זהויות של עומסי עבודה ב-Fleet ל-GKE זמין במאמר שימוש באיחוד זהויות של עומסי עבודה ב-Fleet ל-GKE. אם אתם רוצים להפעיל איחוד זהויות של עומסי עבודה ב-GKE, תוכלו לרשום אשכולות באמצעות אחת מהאפשרויות הבאות.

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

רישום אשכול חדש

אפשר לרשום אשכולות במהלך יצירת האשכול באמצעות ההוראות הבאות.

המסוף

  1. נכנסים לדף ליצירת האשכול הרלוונטי במסוף Google Cloud .

  2. פועלים לפי ההוראות במסמכי GKE כדי להשלים את השלבים ליצירת אשכול Autopilot, Standard אזורי או Standard לפי תחום במסוף Google Cloud .

  3. בקטע Fleet registration, מסמנים את התיבה Register to a fleet. כברירת מחדל, שם הצי מבוסס על מזהה הפרויקט.

  4. ממלאים את שאר הקטעים.

  5. אם בחרתם ליצור אשכול רגיל ואתם רוצים שהאשכול הרשום ישתמש באיחוד זהויות של עומסי עבודה ב-Fleet (מומלץ), לוחצים על אבטחה בחלונית הניווט ומוודאים שהאפשרות הפעלת איחוד זהויות של עומסי עבודה ב-GKE מסומנת. התכונה הזו מופעלת כברירת מחדל באשכולות של Autopilot.

  6. כשמסיימים לעיין בפרטי האשכול, לוחצים על יצירה כדי ליצור את האשכול ולרשום אותו בצי.

gcloud

כדי להשתמש בפקודות האלה, צריך את ה-CLI של gcloud בגרסה 450.0.0 ואילך.

כשרושמים אשכול באמצעות Google Cloud CLI, האשכול מקבל כברירת מחדל מיקום חברות אזורי.

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

    gcloud container clusters create-auto CLUSTER_NAME --enable-fleet
    

    מחליפים את CLUSTER_NAME בשם ייחודי לקלאסטר שיוצרים. זה יהיה גם שם החברות של האשכול. אם כבר קיים אשכול בשם הזה בצי שנבחר, הפקודה תחזיר שגיאה.

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

    gcloud container clusters create-auto CLUSTER_NAME --enable-fleet --membership-type=LIGHTWEIGHT
    
  • כדי ליצור ולרשום אשכול GKE Standard חדש עם איחוד זהויות של עומסי עבודה ל-GKE, מריצים את הפקודה הבאה:

    gcloud container clusters create CLUSTER_NAME --enable-fleet \
    --workload-pool=PROJECT_ID.svc.id.goog
    

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

    • CLUSTER_NAME: שם ייחודי לאשכול שאתם יוצרים. זה יהיה גם שם החברות של האשכול. אם כבר קיים אשכול בשם הזה בצי שנבחר, הפקודה תחזיר שגיאה.
    • PROJECT_ID: Google Cloud מזהה הפרויקט של הפרויקט שיהיה הבעלים של האשכול החדש.

    אם אתם יוצרים אשכול רגיל, מומלץ ליצור את האשכול עם איחוד זהויות של עומסי עבודה ל-GKE מופעל, כי כך מופעל איחוד זהויות של עומסי עבודה ל-Fleet באשכול הרשום. אבל אם לא רוצים להשתמש בתכונה הזו, אפשר להשמיט את הדגל --workload-pool. בקטרי Autopilot, איחוד זהויות של עומסי עבודה ל-GKE מופעל כברירת מחדל.

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

    gcloud container clusters create CLUSTER_NAME --enable-fleet --membership-type=LIGHTWEIGHT
    

בהתאם לאשכול שרוצים ליצור, אפשר גם לציין כל אחת מהאפשרויות האחרות ליצירת אשכול Standard zonal,‏ Standard regional או Autopilot. יכול להיות שתצטרכו גם לציין אזור של Compute Engine אם לא הגדרתם אזור ברירת מחדל ל-Google Cloud CLI, ופרויקט Google Cloud שיהיה הבעלים של האשכול אם לא הגדרתם פרויקט ברירת מחדל.

מידע נוסף על יצירת סוגים שונים של אשכולות GKE

Terraform

אפשר ליצור ולרשום אשכולות GKE באמצעות ספק google של Terraform. אפשר למצוא הפניה מלאה למשאב google_container_cluster שמשמש לניהול אשכול GKE במאגר Terraform.

לפני שממשיכים בהוראות האלה, צריך לוודא שיצרתם חשבון שירות לשימוש ב-Terraform, כמו שמתואר בדרישות המוקדמות.

כדי ליצור ולרשום אשכול חדש, מוסיפים את הבלוקים הבאים לתצורה של Terraform.

  1. מציינים את ספק google כספק חובה:

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = "VERSION"
        }
      }
    }
    

    מחליפים את VERSION ב-5.6.0 או בגרסה מאוחרת יותר.

  2. יוצרים ומลงים אשכול חדש:

    resource "google_container_cluster" "TF_CLUSTER_RESOURCE_NAME" {
      provider = google
      name               = "CLUSTER_NAME"
      location           = "ZONE"
      initial_node_count = 1
      fleet {
        project = "FLEET_HOST_PROJECT"
      }
    }
    

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

    • TF_CLUSTER_RESOURCE_NAME: שם ייחודי למשאב google_container_cluster החדש שאתם יוצרים.
    • CLUSTER_NAME: שם ייחודי לאשכול GKE החדש שרוצים ליצור ולרשום.
    • ZONE: האזור של משאב אשכול GKE. לדוגמה: us-central1-a.
    • FLEET_HOST_PROJECT: Google Cloud מזהה הפרויקט שבו יוצרים ורושמים את האשכול. אם לא מגדירים את הערך הזה, האשכול לא יירשם ב-Fleet. אם רוצים לרשום את האשכול ל-Fleet בפרויקט אחר, צריך לציין מזהה פרויקט אחר.

רישום של אשכול קיים

אפשר להשתמש באחת מהאפשרויות הבאות כדי לרשום אשכולות קיימים, או לצי משל הפרויקט שלהם או לצי בפרויקט אחר (כל האפשרויות מלבד מסוף Google Cloud ).

כדי לרשום אשכול GKE קיים:

המסוף

אם רוצים שהאשכול ישתמש באיחוד שירותי אימות הזהות של עומסי עבודה ב-Fleet (מומלץ), צריך לוודא שאיחוד שירותי אימות הזהויות של עומסי עבודה ל-GKE מופעל באשכול לפני שממשיכים בהוראות האלה. בקטרי Autopilot, איחוד זהויות של עומסי עבודה ל-GKE מופעל כברירת מחדל. בקטרי GKE שמופעל בהם איחוד זהויות של עומסי עבודה ל-GKE, איחוד הזהויות של עומסי העבודה מופעל באופן אוטומטי ב-Fleet כשרושמים אותם דרך Google Cloud המסוף.

  1. נכנסים לדף GKE Clusters במסוף Google Cloud .

    מעבר לדף GKE Clusters

  2. לוחצים על הרשמה לצד האשכול הלא רשום שרוצים להוסיף לצי.

  3. בתיבת הדו-שיח לאישור שמופיעה, לוחצים שוב על הרשמה.

gcloud

כדי להשתמש בפקודות האלה, צריך את ה-CLI של gcloud בגרסה 450.0.0 ואילך.

כשרושמים אשכול באמצעות Google Cloud CLI, האשכול מקבל כברירת מחדל מיקום חברות אזורי.

שתי הפקודות האלה מפעילות את איחוד הזהויות של עומסי עבודה ב-Fleet עבור האשכול, אם איחוד הזהויות של עומסי עבודה ל-GKE כבר מופעל באשכול.

  • כדי לרשום אשכול GKE קיים בצי Google Cloud של הפרויקט שלו, מריצים את הפקודה הבאה:

    gcloud container clusters update CLUSTER_NAME --enable-fleet
    

    מחליפים את CLUSTER_NAME בשם האשכול שרוצים לרשום. זה יהיה גם שם החברות של האשכול.

  • כדי לרשום אשכול GKE קיים בצי Google Cloud של הפרויקט שלו כקל משקל, מריצים את הפקודה הבאה:

    gcloud container clusters update CLUSTER_NAME --enable-fleet --membership-type=LIGHTWEIGHT
    
  • כדי לרשום את האשכול ל-Fleet בפרויקט אחר, משתמשים בדגל --fleet-project, כמו שמוצג בפקודה הבאה. לפני שמריצים את הפקודה הזו, צריך לוודא שהגדרתם את ההרשאות הנדרשות לרישום בין פרויקטים.

    gcloud container clusters update CLUSTER_NAME --fleet-project=PROJECT_ID_OR_NUMBER
    
    • מחליפים את CLUSTER_NAME בשם האשכול שרוצים לרשום. זה יהיה גם שם החברות של האשכול.
    • מחליפים את PROJECT_ID_OR_NUMBER במזהה הפרויקט או במספר הפרויקט של פרויקט המארח של הצי שנבחר.
  • כדי לרשום את האשכול ל-Fleet בפרויקט אחר כ-Fleet קל משקל, משתמשים בדגל --fleet-project, כמו שמוצג בפקודה הבאה. לפני שמריצים את הפקודה הזו, צריך לוודא שהגדרתם את ההרשאות הנדרשות לרישום בין פרויקטים.

    gcloud container clusters update CLUSTER_NAME --fleet-project=PROJECT_ID_OR_NUMBER /
    --membership-type=LIGHTWEIGHT
    
  • כדי להמיר אשכול GKE קיים ב- Google Cloud מחברות קלה לחברות רגילה, משתמשים בפקודה הבאה:

    gcloud container clusters update CLUSTER_NAME --unset-membership-type
    

Terraform

אפשר לרשום אשכולות GKE ב-Terraform באמצעות ספק google. אפשר למצוא הפניה מלאה למשאב google_container_cluster שמשמש לניהול אשכול GKE במאגר Terraform.

לפני שממשיכים בהוראות האלה, צריך לוודא שיצרתם חשבון שירות לשימוש ב-Terraform, כמו שמתואר בדרישות המוקדמות.

רישום של אשכול קיים

כדי לרשום אשכול קיים, מוסיפים את הבלוק הבא להגדרת המשאב google_container_cluster של האשכול:

fleet {
        project = "FLEET_HOST_PROJECT"
      }

מחליפים את FLEET_HOST_PROJECT במזהה הפרויקט שאליו האשכול שייך, או במזהה פרויקט אחר אם רוצים לרשום את האשכול ב-Fleet בפרויקט אחר. Google Cloud

הפעלת איחוד זהויות של עומסי עבודה ל-GKE באשכול רשום

אפשר להשתמש ב-Terraform כדי להפעיל איחוד שירותי אימות הזהות של עומסי עבודה ל-GKE באשכול.

כדי להפעיל איחוד שירותי אימות הזהות של עומסי עבודה ב-GKE באשכול חדש או באשכול קיים, מוסיפים את הבלוק הבא להגדרת המשאב google_container_cluster של האשכול הרלוונטי:

  workload_identity_config {
    workload_pool = "PROJECT_ID.svc.id.goog"
  }
  ```

 Replace <code><var>PROJECT_ID</var></code> with the Google Cloud project ID for your Terraform resources.

Config Connector

אם התוסף Config Connector מותקן, אפשר להשתמש ב-Config Connector כדי לרשום אשכולות GKE. מוודאים שיש לכם גרסה של Config Connector מעל 1.47.0 ושיצרתם חשבון שירות כמו שמתואר בדרישות המוקדמות.

אפשר למצוא הפניה מלאה למשאב GKEHubMembership במאמרי העזרה של Config Connector.

רישום של אשכול GKE

כדי לרשום את האשכול, קודם צריך לציין איפה רוצים ליצור את המשאבים, לפי ההוראות במדריך Config Connector. לאחר מכן יוצרים קובץ YAML כדי לרשום את האשכול וגם ליצור אותו (אופציונלי), באופן הבא:

יצירה ורישום של אשכול GKE

  1. יוצרים אשכול GKE, כמו בדוגמה הפשוטה הבאה:

    apiVersion: container.cnrm.cloud.google.com/v1beta1
    kind: ContainerCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      location: LOCATION
      initialNodeCount: 1
    

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

    • CLUSTER_NAME: השם שבחרתם כדי לייצג באופן ייחודי את האשכול שיצרתם באמצעות Config Connector.
    • LOCATION: האזור או האזור שבו בחרתם להקצות את משאב אשכול GKE. לדוגמה: us-central1-a.

    רשימה מלאה של האפשרויות ליצירת אשכול GKE באמצעות Config Connector זמינה במסמכי התיעוד של Config Connector.

  2. רושמים מינוי לאשכול GKE.

    apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
    kind: GKEHubMembership
    metadata:
      name: MEMBERSHIP_NAME
    spec:
      location: MEMBERSHIP_LOCATION
      endpoint:
        gkeCluster:
          resourceRef:
            name: CLUSTER_NAME
    

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

    • MEMBERSHIP_NAME: שם החברות שבחרתם כדי לייצג באופן ייחודי את האשכול שנרשם ב-Fleet.
    • MEMBERSHIP_LOCATION: המיקום של שירות ה-Fleet שדרכו רוצים לנהל את החברות באשכול. זה יכול להיות המיקום של האשכול עצמו (מומלץ) או global. מידע נוסף על המיקום של חברי המועדון אי אפשר לציין מיקום ששונה מהמיקום של האשכול. אם תעשו את זה, הרישום ייכשל.
    • CLUSTER_NAME: השם שבחרתם כדי לייצג באופן ייחודי את האשכול שיצרתם באמצעות Config Connector.

רישום האשכול בפרויקט אחר

כדי לרשום אשכול ב-Fleet בפרויקט אחר, מוסיפים את הערכים הבאים לשדה metadata של משאב GKEHubMembership.

   metadata:
     annotations:
       cnrm.cloud.google.com/project-id: FLEET_PROJECT_ID

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

  • FLEET_PROJECT_ID: פרויקט המארח של ה-Fleet שבחרתם לרשום בו את אשכול GKE.

רישום של אשכול קיים

אם רוצים לרשום כל אשכול קיים, בלי קשר לאופן שבו הוא נוצר, צריך להשתמש בהגדרה הבאה. במקרה כזה, צריך לציין את שם המשאב המלא של האשכול כדי ש-Config Connector יוכל למצוא אותו. מחליפים את השדה resourceRef במשאב GKEHubMembership ב:

   resourceRef:
     external: //container.googleapis.com/CLUSTER_RESOURCE_NAME

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

  • CLUSTER_RESOURCE_NAME: Google Cloud שם המשאב של אשכול GKE. לדוגמה: projects/my-project/zones/us-west1-a/clusters/my-cluster.

אם האשכול נוצר באמצעות Config Connector, לא צריך לציין את השם המלא של האשכול.

הפעלת איחוד זהויות של עומסי עבודה ל-GKE באשכול רשום

הפעלת איחוד שירותי אימות הזהויות של עומסי עבודה ב-GKE מתבצעת באמצעות אותה הגדרה כמו רישום אשכול, עם השלבים הנוספים הבאים.

  1. מפעילים איחוד זהויות של עומסי עבודה ל-GKE על ידי הוספת הקטע הבא בשדה spec של משאב ContainerCluster. צריך לעשות את זה גם לגבי אשכולות חדשים וגם לגבי אשכולות קיימים.

    spec:
      workloadIdentityConfig:
        workloadPool: PROJECT_ID.svc.id.goog
    

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

  2. כדי להפעיל איחוד שירותי אימות הזהות של עומסי עבודה ב-Fleet, מוסיפים את השורה הבאה בשדה spec של בלוק המשאבים GKEHubMembership.

    spec:
      authority:
        issuer: https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME
    }
    

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

    • PROJECT_ID: פרויקט ברירת המחדל שבחרתם באמצעות הערה למרחב השמות כדי ליצור את משאב אשכול GKE.
    • LOCATION: האזור או האזור שבו בחרתם להקצות את משאב אשכול GKE. לדוגמה: us-central1-a.
    • CLUSTER_NAME: השם שבחרתם לייצוג ייחודי של האשכול שיצרתם.

פתרון בעיות

אם נתקלתם בבעיות במהלך ההגדרה, תוכלו להיעזר במדריך לפתרון בעיות.

מה השלב הבא?