הגדרת שירותים מרובי אשכולות עם 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 משותף בתור פרויקט מארח של צי (אשכול אחד בפרויקט המארח של VPC משותף, אשכול שני בפרויקט שירות של VPC משותף) פרויקט מארח של VPC משותף פרויקט שירות של VPC משותף
אשכולות בפרויקטים שונים של שירות VPC משותף פרויקט שירות של VPC משותף פרויקט שירות אחר של VPC משותף

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

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

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

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

  • שני האשכולות משתמשים באותה רשת VPC משותפת ב-SHARED_VPC_HOST_PROJ.
  • אשכול GKE הראשון שמותאם ל-VPC, ‏ FIRST_CLUSTER_NAME, נוצר ב-FLEET_HOST_PROJ כשאיחוד הזהויות של עומסי עבודה ל-GKE מופעל. הפרויקט המארח של הצי הוא פרויקט שירות שמחובר ל-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,‏ Resource Manager ו-Multi-cluster Service Discovery בפרויקט המארח של ה-fleet:

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

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

  1. מפעילים את Multi-cluster Services בפרויקט המארח של ה-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 בפקודה הזו כי האשכול השני נמצא גם הוא בפרויקט המארח של ה-fleet.

    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. בתרחיש הזה, הפרויקט המארח של ה-fleet הוא גם הפרויקט המארח של ה-VPC המשותף.
  • אשכול GKE השני שמותאם ל-VPC, ‏ SECOND_CLUSTER_NAME, נוצר ב-SECOND_CLUSTER_PROJ עם איחוד זהויות של עומסי עבודה ל-GKE.

הפעלת ממשקי ה-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
    

הפעלת Multi-cluster Services בפרויקט המארח של ה-Fleet

  1. מפעילים את Multi-cluster Services בפרויקט המארח של ה-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 Fleet בפרויקט המארח של ה-Fleet את התפקיד 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 Service Agent בפרויקט של האשכול השני:

    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 בכל פרויקט את התפקיד "משתמש ברשת" בפרויקט שלו:

    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, ולכן חשבון השירות של MCS Importer ב-GKE בכל פרויקט צריך את התפקיד "משתמש ברשת" בפרויקט שלו.

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

    • ‫SECOND_CLUSTER_PROJ: מזהה הפרויקט של האשכול השני
    • ‫FLEET_HOST_PROJ: מזהה הפרויקט של האשכול הראשון.
    • ‫FLEET_HOST_PROJ_NUMBER: מספר הפרויקט המארח של הצי, שהוא זהה לפרויקט המארח של ה-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 המשותף בתרחיש הזה.
    • thought ‫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 בשם של מרחב השמות.

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

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

  • שני האשכולות משתמשים באותה רשת VPC משותפת ב-SHARED_VPC_HOST_PROJ.
  • אשכול GKE הראשון שמותאם ל-VPC, ‏ FIRST_CLUSTER_NAME, נוצר ב-FLEET_HOST_PROJ עם איחוד זהויות של עומסי עבודה ל-GKE. פרויקט המארח של הצי הוא פרויקט שירות שמחובר ל-SHARED_VPC_HOST_PROJ בתרחיש הזה.
  • אשכול GKE השני שמוגדר עם רשת VPC,‏ SECOND_CLUSTER_NAME, עם איחוד זהויות של עומסי עבודה ל-GKE, נוצר ב-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 רק בפרויקט המארח של צי GKE 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. מפעילים את Cloud Service Mesh, את Resource Manager ואת Multi-cluster Service Discovery APIs, גם בפרויקט המארח של ה-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
    

הפעלת Multi-cluster Services בפרויקט המארח של ה-Fleet

  1. מפעילים את Multi-cluster Services בפרויקט המארח של ה-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 Service Agent בפרויקט של האשכול השני:

    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 בפרויקט המארח של ה-fleet את התפקיד "סוכן שירות של 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 בפרויקט צריך להיות תפקיד של משתמש ברשת בפרויקט שלו.

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

    • ‫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 בשם של מרחב השמות.

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