בדף הזה מוסבר איך ליצור מלאי של אשכולות עבור Fleet קיים. מלאי של אשכולות ב-Fleet מאפשר לכם לעבוד עם שילובים בקוד פתוח ועם שילובים של צד שלישי שמשתמשים במפרט ClusterProfile.
מלאי של אשכולות הוא המקבילה בקוד פתוח לצי: קבוצה לוגית של אשכולות Kubernetes ומשאבים אחרים שאפשר לנהל יחד. המפרט של ClusterProfile מכיל מידע שהוא קבוצת משנה של המידע ב-Fleet.
תכונת הסנכרון ClusterProfile היא סנכרון חד-כיווני בין Fleet לבין מלאי של אשכולות. כשהסנכרון של ClusterProfile מופעל, ה-Fleet הוא מקור האמת, וכל שינוי ב-Fleet מוחל אוטומטית על מלאי האשכולות באמצעות הסנכרון של ClusterProfile. שינויים שמבוצעים ישירות במשאבי פרופיל האשכול לא חלים על צי המכונות.
לפני שמתחילים
חשוב לוודא שפעלתם לפי דרישות הסף הכלליות לעבודה עם צי רכבים.
יוצרים Fleet או בוחרים Fleet קיים לעבודה.
הפעלת סנכרון של ClusterProfile
סנכרון ClusterProfile מופעל מול אשכול אחד בצי. האשכול הזה נקרא אשכול מרכזי, ואפשר להשתמש בו כדי להפעיל בקרי ריבוי אשכולות שזקוקים למידע על שאר האשכולות ב-Fleet. דוגמאות לבקרי ריבוי אשכולות כוללות בקרי Argo CD ומתזמר ריבוי אשכולות. מומלץ לא להריץ עומסי עבודה אחרים באשכול המרכזי.
כדי להפעיל סנכרון של ClusterProfile באשכול, מוסיפים את התווית
fleet-clusterinventory-management-cluster=true. אפשר לבצע את הפעולות הבאות:
- יוצרים אשכול חדש לשימוש כאשכול מרכזי. בקטע הבא מוסבר איך מפעילים סנכרון של ClusterProfile באשכול חדש.
- מזהים אשכול ב-Fleet לשימוש כאשכול Hub. בקטע הבא מוסבר איך מפעילים סנכרון של ClusterProfile באשכול קיים.
אחרי שמפעילים את תכונת הסנכרון ClusterProfile ל-Fleet, נוצר באופן אוטומטי פרופיל אשכול לכל אשכול ב-Fleet באמצעות ה-API של ClusterProfile. פרופילי האשכול האלה נוצרים, מתעדכנים ונמחקים באופן אוטומטי כשמבצעים שינויים ב-Fleet.
הפעלת סנכרון של ClusterProfile באשכול חדש
כדי ליצור אשכול עבור אשכול ה-hub ולהפעיל סנכרון של ClusterProfile, משתמשים בפקודה הבאה:
gcloud container clusters create CLUSTER --location LOCATION --enable-fleet
--labels=fleet-clusterinventory-management-cluster=true
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
כברירת מחדל, פרופילי אשכול נוצרים במרחב השמות fleet-cluster-inventory. כדי לשנות את מרחב השמות, מציינים את התווית fleet-clusterinventory-namespace.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
- NAMESPACE: מרחב השמות שבו נוצרים פרופילי האשכול.
אם לא מציינים את השם, פרופילי האשכול נוצרים במרחב השמות
fleet-cluster-inventory.
הפעלת סנכרון של ClusterProfile באשכול קיים
כדי להפעיל סנכרון של ClusterProfile באשכול קיים, משתמשים בפקודה הבאה:
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-management-cluster=true
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
כברירת מחדל, פרופילי אשכול נוצרים במרחב השמות fleet-cluster-inventory. כדי לשנות את מרחב השמות, מציינים את התווית fleet-clusterinventory-namespace.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
- NAMESPACE: מרחב השמות שבו נוצרים פרופילי האשכול.
אם לא מציינים את השם, פרופילי האשכול נוצרים במרחב השמות
fleet-cluster-inventory.
מוודאים שהסנכרון של ClusterProfile מופעל
מוודאים שסנכרון ClusterProfile מופעל. לשם כך, בודקים שאשכול ה-Hub כולל את התווית fleet-clusterinventory-management-cluster = true. כדי לעשות זאת, משתמשים בפקודה הבאה:
gcloud container clusters describe CLUSTER --location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
הפלט אמור להיראות כך:
resourceLabels:
fleet-clusterinventory-management-cluster: 'true'
אימות המשאבים של פרופיל האשכול שנוצר
מריצים את הפקודה הבאה כדי לוודא שמשאבי פרופיל האשכול נוצרו באשכול המרכזי:
gcloud container clusters get-credentials CLUSTER --location LOCATION
kubectl get clusterprofiles -n fleet-cluster-inventory
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
הפלט אמור להיראות כך:
NAME AGE
cluster-1-us-west1 10s
cluster-2-us-west1 20s
הפלט הזה צריך לכלול פרופיל אשכול לכל אשכול בצי.
הפורמט של שם פרופיל האשכול הוא
MEMBERSHIP-LOCATION.
צפייה בתוכן של פרופיל האשכול
כדי להציג את התוכן של פרופיל האשכול עבור אשכול ספציפי, משתמשים בפקודה הבאה:
kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
הפלט אמור להיראות כך:
apiVersion: multicluster.x-k8s.io/v1alpha1
kind: ClusterProfile
metadata:
annotations:
fleet.gke.io/membershipName: projects/123456789/locations/us-west1/memberships/cluster-1
labels:
x-k8s.io/cluster-manager: gke-fleet
name: cluster-1-us-west1
namespace: fleet-cluster-inventory
השבתת הסנכרון של ClusterProfile
כדי להשבית את הסנכרון של ClusterProfile במרכז של צי האשכולות, מסירים את התווית fleet-clusterinventory-management-cluster:
gcloud container clusters update CLUSTER --location LOCATION \
--remove-labels=fleet-clusterinventory-management-cluster
מחליפים את מה שכתוב בשדות הבאים:
- CLUSTER: השם של
google_container_clusterהמשאב. - LOCATION: המיקום שבו נוצר האשכול.
המאמרים הבאים
- פרטים על שילוב של סנכרון ClusterProfile עם Argo CD זמינים במאמר Argo CD ClusterProfile Syncer.
- כלי האורקסטרציה מרובה האשכולות משתמש בפרופילים של אשכולות. הוא עוזר לתזמן פריסות של כמה אשכולות וכמה אזורים. פרטים נוספים מופיעים במאמר סקירה כללית על Multi-Cluster Orchestrator.