הגדרת שירותים מרובי אשכולות עם VPC משותף

בדף הזה מתוארים תרחישים נפוצים של שירותים מרובי-אשכולות (MCS). התרחישים שמוצגים בדף הזה כוללים את המאפיינים הבאים:

  • שני אשכולות GKE: אשכול GKE הראשון רשום ל-Fleet של הפרויקט שלו. זהו פרויקט המארח של ה-Fleet. האשכול השני של GKE רשום לאותו צי, אבל יכול להיות שהוא לא באותו פרויקט, בהתאם לתרחיש. שני אשכולות GKE הם אשכולות שמותאמים ל-VPC.
  • אותה רשת VPC: שני אשכולי GKE משתמשים בתת-רשתות באותה רשת VPC משותפת.
  • איחוד זהויות של עומסי עבודה ל-GKE מופעל בשני האשכולות.

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

למונחים פרויקט מארח של VPC משותף ופרויקט מארח של צי GKE יש משמעויות שונות.

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

תרחישים

בטבלה הבאה מתוארים תרחישים נפוצים של MCS:

תרחיש פרויקט המארח של ה-Fleet (הפרויקט שמכיל את האשכול הראשון) המיקום של האשכול השני
אשכולות באותו פרויקט שירות של VPC משותף פרויקט שירות של VPC משותף אותו פרויקט שירות של VPC משותף כמו באשכול הראשון
פרויקט מארח של VPC משותף בתור פרויקט מארח של Fleet (אשכול אחד בפרויקט המארח של VPC משותף, אשכול שני בפרויקט שירות של VPC משותף) פרויקט מארח של VPC משותף פרויקט שירות של VPC משותף
אשכולות בפרויקטים שונים של שירות VPC משותף פרויקט שירות של VPC משותף פרויקט שירות אחר של VPC משותף

דרישות מוקדמות

לפני שמגדירים תצורה של MCS בכמה פרויקטים, חשוב לוודא שאתם מכירים את הנושאים הבאים:

אשכולות באותו פרויקט שירות של VPC משותף

בקטע הזה מופיעה דוגמה להגדרת MCS שכוללת שני אשכולות GKE קיימים, שניהם באותו פרויקט שירות של VPC משותף:

  • שני האשכולות משתמשים באותה רשת VPC משותפת ב-SHARED_VPC_HOST_PROJ.
  • אשכול GKE הראשון עם רשת VPC מובנית, FIRST_CLUSTER_NAMEעם איחוד זהויות של עומסי עבודה ל-GKE מופעל, FLEET_HOST_PROJ נוצר ב-FLEET_HOST_PROJ. פרויקט המארח של צי המכשירים הוא פרויקט שירות שמחובר ל-SHARED_VPC_HOST_PROJ בתרחיש הזה.
  • גם אשכול GKE שני עם רשת VPC מקורית, SECOND_CLUSTER_NAME, עם איחוד זהויות של עומסי עבודה ל-GKE מופעל, נוצר ב-FLEET_HOST_PROJ.

הפעלת ממשקי ה-API הנדרשים

מפעילים את ממשקי ה-API הנדרשים. בפלט של Google Cloud CLI אפשר לראות אם API כבר הופעל.

  1. מפעילים את Cloud DNS API:

    gcloud services enable dns.googleapis.com \
        --project SHARED_VPC_HOST_PROJ
    

    בתרחיש הזה, הפרויקט המארח של צי המכונות הוא פרויקט שירות שמחובר לפרויקט המארח של ה-VPC המשותף. צריך להפעיל את Cloud DNS API בפרויקט המארח של ה-VPC המשותף, כי שם נמצאת רשת ה-VPC המשותף. ‫GKE יוצר תחומים פרטיים מנוהלים ב-Cloud DNS בפרויקט המארח ומאשר אותם לרשת ה-VPC המשותפת.

  2. מפעילים את GKE Hub (fleet) API. צריך להפעיל את GKE Hub API רק בפרויקט המארח של ה-Fleet.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    הפעלת ממשק ה-API הזה בפרויקט המארח של הצי יוצרת את חשבון השירות הבא או מוודאת שהוא קיים:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com.

  3. מפעילים את ממשקי ה-API של Cloud Service Mesh, מנהל המשאבים וגילוי שירותים מרובי-אשכולות בפרויקט המארח של ה-Fleet:

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project FLEET_HOST_PROJ
    

הפעלת שירותים מרובי אשכולות בפרויקט המארח של ה-Fleet

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

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    הפעלת שירותים מרובי-אשכולות בפרויקט המארח של ה-Fleet יוצרת את חשבון השירות הבא או מוודאת שהוא קיים: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com.

יצירת קשרי IAM

  1. יוצרים קישור IAM שמעניק לחשבון השירות של MCS בפרויקט המארח של הצי את התפקיד של סוכן השירות של MCS בפרויקט המארח של ה-VPC המשותף:

    gcloud projects add-iam-policy-binding SHARED_VPC_HOST_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  2. יוצרים קישור IAM שמעניק לחשבון השירות של MCS בפרויקט המארח של צי הרכבים את התפקיד Network User (משתמש ברשת) בפרויקט שלו:

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    בתרחיש הזה נעשה שימוש באיחוד שירותי אימות הזהות של עומסי עבודה ב-GKE, ולכן לחשבון השירות של MCS Importer GKE בפרויקט המארח של הצי צריך להיות התפקיד Network User בפרויקט שלו.

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

    • SHARED_VPC_HOST_PROJ: מזהה הפרויקט של פרויקט המארח של ה-VPC המשותף
    • FLEET_HOST_PROJ_NUMBER: מספר הפרויקט של פרויקט המארח של ה-Fleet, שהוא פרויקט השירות של ה-VPC המשותף בתרחיש הזה
    • FLEET_HOST_PROJ: מזהה הפרויקט של האשכול הראשון.

רישום האשכולות ב-Fleet

  1. רושמים את האשכול הראשון ב-Fleet. אפשר להשתמש בדגל --gke-cluster בפקודה הזו כי האשכול הראשון נמצא באותו פרויקט כמו צי האשכולות שאליו הוא נרשם.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

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

    • MEMBERSHIP_NAME_1: מזהה ייחודי של האשכול הזה ב-Fleet. לדוגמה, אפשר להשתמש בשם של אשכול GKE הראשון.
    • FLEET_HOST_PROJ: מזהה הפרויקט של פרויקט המארח של ה-Fleet, זהה לפרויקט המארח של ה-VPC המשותף בתרחיש הזה.
    • LOCATION: באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול. באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול.
    • FIRST_CLUSTER_NAME: השם של האשכול הראשון.
  2. רושמים את האשכול השני בפרויקט המארח של ה-Fleet. אפשר להשתמש בדגל --gke-cluster בפקודה הזו כי גם האשכול השני ממוקם בפרויקט המארח של צי המכונות.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/SECOND_CLUSTER_NAME
    

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

    • MEMBERSHIP_NAME_2: מזהה ייחודי של האשכול הזה ב-Fleet. לדוגמה, אפשר להשתמש בשם של אשכול GKE השני.
    • FLEET_HOST_PROJ: מזהה הפרויקט של פרויקט המארח של ה-Fleet, זהה לפרויקט המארח של ה-VPC המשותף בתרחיש הזה.
    • LOCATION: באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול. באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול.
    • SECOND_CLUSTER_NAME: השם של האשכול השני.

יצירת מרחב שמות משותף לאשכולות

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

    kubectl create ns NAMESPACE
    

    מחליפים את NAMESPACE בשם של מרחב השמות.

פרויקט מארח של VPC משותף כפרויקט מארח של Fleet

בקטע הזה מובאת דוגמה להגדרת MCS שכוללת שני אשכולות GKE קיימים:

  • אשכול GKE מקורי של VPC‏ FIRST_CLUSTER_NAME, עם איחוד זהויות של עומסי עבודה ל-GKE מופעל, נוצר ב-FLEET_HOST_PROJ. הפרויקט המארח של צי המכונות הוא גם הפרויקט המארח של ה-VPC המשותף בתרחיש הזה.
  • נוצר אשכול GKE מקורי של VPC‏ SECOND_CLUSTER_NAME, עם איחוד זהויות של עומסי עבודה ל-GKE מופעל, ב-SECOND_CLUSTER_PROJ.

הפעלת ממשקי ה-API הנדרשים

מפעילים את ממשקי ה-API הנדרשים. בפלט של Google Cloud CLI אפשר לראות אם API כבר הופעל.

  1. מפעילים את Cloud DNS API:

    gcloud services enable dns.googleapis.com \
        --project FLEET_HOST_PROJ
    

    בתרחיש הזה, פרויקט המארח של ה-Fleet הוא גם פרויקט המארח של ה-VPC המשותף. צריך להפעיל את Cloud DNS API בפרויקט המארח של ה-VPC המשותף, כי שם נמצאת רשת ה-VPC המשותף. ‫GKE יוצרת תחומים פרטיים מנוהלים ב-Cloud DNS בפרויקט המארח ומאשרת אותם לרשת ה-VPC המשותפת.

  2. מפעילים את GKE Hub (fleet) API. צריך להפעיל את GKE Hub API רק בפרויקט המארח של ה-Fleet.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    הפעלת GKE Hub API בפרויקט המארח של הצי יוצרת את חשבון השירות הבא או מוודאת שהוא קיים:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com.

  3. מפעילים את ממשקי ה-API של Cloud Service Mesh,‏ מנהל המשאבים ו-Multi-cluster Service Discovery, גם בפרויקט המארח של ה-Fleet וגם בפרויקט של האשכול השני:

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project FLEET_HOST_PROJ
    
    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project SECOND_CLUSTER_PROJ
    

הפעלת שירותים מרובי אשכולות בפרויקט המארח של ה-Fleet

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

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    הפעלת שירותים מרובי-אשכולות בפרויקט המארח של ה-Fleet יוצרת את חשבון השירות הבא או מוודאת שהוא קיים: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com.

יצירת קשרי IAM

  1. יוצרים קשירת IAM שמעניקה לחשבון השירות של צי GKE בפרויקט המארח של הצי את התפקיד GKE Service Agent (סוכן שירות של GKE) בפרויקט של האשכול השני:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com" \
        --role roles/gkehub.serviceAgent
    
  2. יוצרים קישור IAM שמעניק לחשבון השירות של MCS בפרויקט המארח של צי המכונות את התפקיד של סוכן השירות של MCS בפרויקט של האשכול השני:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  3. יוצרים קישור IAM שמעניק לחשבון השירות של MCS בכל פרויקט את התפקיד Network User (משתמש ברשת) בפרויקט שלו:

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    
    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:SECOND_CLUSTER_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    בתרחיש הזה נעשה שימוש באיחוד שירותי אימות הזהות של עומסי עבודה ב-GKE, ולכן לכל חשבון שירות של GKE של כלי הייבוא של MCS בכל פרויקט צריכה להיות הרשאת Network User (משתמש ברשת) בפרויקט שלו.

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

    • SECOND_CLUSTER_PROJ: מזהה הפרויקט של הפרויקט השני של האשכול
    • FLEET_HOST_PROJ: מזהה הפרויקט של האשכול הראשון.
    • FLEET_HOST_PROJ_NUMBER: מספר הפרויקט המארח של ה-Fleet, שהוא זהה לפרויקט המארח של ה-VPC המשותף בתרחיש הזה

רישום האשכולות ב-Fleet

  1. רושמים את האשכול הראשון ב-Fleet. אפשר להשתמש בדגל --gke-cluster בפקודה הזו כי האשכול הראשון נמצא באותו פרויקט כמו הצי שאליו הוא נרשם.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

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

    • MEMBERSHIP_NAME_1: מזהה ייחודי של האשכול הזה ב-Fleet. לדוגמה, אפשר להשתמש בשם של אשכול GKE הראשון.
    • FLEET_HOST_PROJ: מזהה הפרויקט של פרויקט המארח של ה-Fleet, זהה לפרויקט המארח של ה-VPC המשותף בתרחיש הזה.
    • LOCATION: באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול. באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול.
    • FIRST_CLUSTER_NAME: השם של האשכול הראשון.
  2. רושמים את האשכול השני ב-Fleet. חובה להשתמש בדגל --gke-uri בפקודה הזו כי האשכול השני לא נמצא באותו פרויקט כמו צי המכונות. אפשר להריץ את הפקודה gcloud container clusters list --uri כדי לקבל את ה-URI המלא של האשכול.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-uri https://container.googleapis.com/v1/projects/SECOND_CLUSTER_PROJ/locations/LOCATION/clusters/SECOND_CLUSTER_NAME
    

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

    • MEMBERSHIP_NAME_2: מזהה ייחודי של האשכול הזה ב-Fleet. לדוגמה, אפשר להשתמש בשם של אשכול GKE השני.
    • FLEET_HOST_PROJ: מזהה הפרויקט של פרויקט המארח של ה-Fleet, זהה לפרויקט המארח של ה-VPC המשותף בתרחיש הזה.
    • LOCATION: החלפה של LOCATION ב:
      • התחום (zone) של Compute Engine שבו נמצא האשכול, אם האשכול הוא אשכול של תחום מוגדר
      • האזור של Compute Engine שבו נמצא האשכול, אם האשכול הוא אזורי
    • SECOND_CLUSTER_PROJECT: הפרויקט שמכיל את האשכול השני.
    • SECOND_CLUSTER_NAME: השם של האשכול השני.

יצירת מרחב שמות משותף לאשכולות

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

    kubectl create ns NAMESPACE
    

    מחליפים את NAMESPACE בשם של מרחב השמות.

אשכולות בפרויקטים שונים של שירות VPC משותף

בקטע הזה מופיעה דוגמה להגדרת MCS שכוללת שני אשכולות GKE קיימים, כל אחד בפרויקט שירות אחר של VPC משותף.

  • שני האשכולות משתמשים באותה רשת VPC משותפת ב-SHARED_VPC_HOST_PROJ.
  • אשכול GKE מקורי של VPC‏ FIRST_CLUSTER_NAME, עם איחוד זהויות של עומסי עבודה ל-GKE מופעל, נוצר ב-FLEET_HOST_PROJ. פרויקט המארח של ה-Fleet הוא פרויקט שירות שמחובר אל SHARED_VPC_HOST_PROJ בתרחיש הזה.
  • אשכול GKE השני שמוגדר בו איחוד זהויות של עומסי עבודה ל-GKE, ‏ SECOND_CLUSTER_NAME, נוצר ב-SECOND_CLUSTER_PROJ. SECOND_CLUSTER_PROJ הוא גם פרויקט שירות שמחובר ל-SHARED_VPC_HOST_PROJ בתרחיש הזה.

הפעלת ממשקי ה-API הנדרשים

מפעילים את ממשקי ה-API הנדרשים. בפלט של Google Cloud CLI אפשר לראות אם API כבר הופעל.

  1. מפעילים את Cloud DNS API:

    gcloud services enable dns.googleapis.com \
        --project SHARED_VPC_HOST_PROJ
    

    בתרחיש הזה, הפרויקט המארח של צי המכונות הוא פרויקט שירות שמחובר לפרויקט המארח של ה-VPC המשותף. צריך להפעיל את Cloud DNS API בפרויקט המארח של ה-VPC המשותף, כי שם נמצאת רשת ה-VPC המשותף. ‫GKE יוצר תחומים פרטיים מנוהלים ב-Cloud DNS בפרויקט המארח ומאשר אותם לרשת ה-VPC המשותפת.

  2. GKE Hub (fleet) API. צריך להפעיל את GKE Hub API רק בפרויקט המארח של הצי FLEET_HOST_PROJ.

    gcloud services enable gkehub.googleapis.com \
        --project FLEET_HOST_PROJ
    

    הפעלת ממשק ה-API הזה בפרויקט המארח של הצי יוצרת את חשבון השירות הבא או מוודאת שהוא קיים:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com.

  3. מפעילים את ממשקי ה-API של Cloud Service Mesh,‏ מנהל המשאבים ו-Multi-cluster Service Discovery, גם בפרויקט המארח של ה-Fleet וגם בפרויקט של האשכול השני:

    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project=FLEET_HOST_PROJ
    
    gcloud services enable trafficdirector.googleapis.com \
        cloudresourcemanager.googleapis.com \
        multiclusterservicediscovery.googleapis.com \
        --project SECOND_CLUSTER_PROJ
    

הפעלת שירותים מרובי אשכולות בפרויקט המארח של ה-Fleet

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

    gcloud container fleet multi-cluster-services enable \
        --project FLEET_HOST_PROJ
    

    הפעלת שירותים מרובי-אשכולות בפרויקט המארח של ה-Fleet יוצרת את חשבון השירות הבא או מוודאת שהוא קיים: service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com.

יצירת קשרי IAM

  1. יוצרים קשר IAM שמעניק לחשבון השירות של GKE Hub בפרויקט המארח של צי הרכבים את התפקיד GKE Service Agent בפרויקט של האשכול השני:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-gkehub.iam.gserviceaccount.com" \
        --role roles/gkehub.serviceAgent
    
  2. יוצרים קישור IAM שמעניק לחשבון השירות של MCS בפרויקט המארח של צי המכונות את התפקיד של סוכן השירות של MCS בפרויקט של האשכול השני:

    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  3. יוצרים קישור IAM שמעניק לחשבון השירות של MCS בפרויקט המארח של הצי את התפקיד של סוכן השירות של MCS בפרויקט המארח של ה-VPC המשותף:

    gcloud projects add-iam-policy-binding SHARED_VPC_HOST_PROJ \
        --member "serviceAccount:service-FLEET_HOST_PROJ_NUMBER@gcp-sa-mcsd.iam.gserviceaccount.com" \
        --role roles/multiclusterservicediscovery.serviceAgent
    
  4. יוצרים קישור IAM שמעניק לחשבון השירות של MCS בכל פרויקט את התפקיד Network User (משתמש ברשת) בפרויקט שלו:

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJ \
        --member "serviceAccount:FLEET_HOST_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    
    gcloud projects add-iam-policy-binding SECOND_CLUSTER_PROJ \
        --member "serviceAccount:SECOND_CLUSTER_PROJ.svc.id.goog[gke-mcs/gke-mcs-importer]" \
        --role roles/compute.networkViewer
    

    בתרחיש הזה נעשה שימוש באיחוד שירותי אימות הזהות של עומסי עבודה ב-GKE, ולכן לכל חשבון שירות של GKE של כלי הייבוא של MCS בכל פרויקט צריכה להיות הרשאת Network User (משתמש ברשת) בפרויקט שלו.

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

    • SECOND_CLUSTER_PROJ: מזהה הפרויקט של הפרויקט של האשכול השני.
    • SHARED_VPC_HOST_PROJ: מזהה הפרויקט של הפרויקט המארח ב-VPC משותף. בדוגמה הזו, שני האשכולות משתמשים באותה רשת VPC משותפת, אבל אף אחד מהאשכולות לא נמצא בפרויקט המארח של ה-VPC המשותף.
    • FLEET_HOST_PROJ: מזהה הפרויקט של האשכול הראשון.
    • FLEET_HOST_PROJ_NUMBER: מספר הפרויקט של פרויקט המארח של ה-Fleet.

רישום האשכולות ב-Fleet

  1. רושמים את האשכול הראשון ב-Fleet. אפשר להשתמש בדגל --gke-cluster בפקודה הזו כי האשכול הראשון נמצא באותו פרויקט כמו הצי שאליו הוא נרשם.

    gcloud container fleet memberships register MEMBERSHIP_NAME_1 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-cluster=LOCATION/FIRST_CLUSTER_NAME
    

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

    • MEMBERSHIP_NAME_1: מזהה ייחודי של האשכול הזה ב-Fleet. לדוגמה, אפשר להשתמש בשם של אשכול GKE הראשון.
    • FLEET_HOST_PROJ: מזהה הפרויקט של פרויקט המארח של ה-Fleet, זהה לפרויקט המארח של ה-VPC המשותף בתרחיש הזה.
    • LOCATION: באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול. באשכולות אזוריים, האזור ב-Compute Engine שבו נמצא האשכול.
    • FIRST_CLUSTER_NAME: השם של האשכול הראשון.
  2. רושמים את האשכול השני ב-Fleet. חובה להשתמש בדגל --gke-uri בפקודה הזו כי האשכול השני לא נמצא באותו פרויקט כמו צי המחשבים. כדי לקבל את ה-URI המלא של האשכול, מריצים את הפקודה gcloud container clusters list --uri.

    gcloud container fleet memberships register MEMBERSHIP_NAME_2 \
        --project FLEET_HOST_PROJ \
        --enable-workload-identity \
        --gke-uri https://container.googleapis.com/v1/projects/SECOND_CLUSTER_PROJ/locations/LOCATION/clusters/SECOND_CLUSTER_NAME
    

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

    • MEMBERSHIP_NAME_2: מזהה ייחודי של האשכול הזה ב-Fleet. לדוגמה, אפשר להשתמש בשם של אשכול GKE השני.
    • FLEET_HOST_PROJ: מזהה הפרויקט של פרויקט המארח של ה-Fleet, זהה לפרויקט המארח של ה-VPC המשותף בתרחיש הזה.
    • LOCATION: החלפה של LOCATION ב:
      • התחום (zone) של Compute Engine שבו נמצא האשכול, אם האשכול הוא אשכול של תחום מוגדר
      • האזור של Compute Engine שבו נמצא האשכול, אם האשכול הוא אזורי
    • SECOND_CLUSTER_PROJECT: הפרויקט שמכיל את האשכול השני.
    • SECOND_CLUSTER_NAME: השם של האשכול השני.

יצירת מרחב שמות משותף לאשכולות

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

    kubectl create ns NAMESPACE
    

    מחליפים את NAMESPACE בשם של מרחב השמות.

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