סקירה כללית
צירוף אשכול פירושו חיבור שלו אל Google Cloud על ידי רישום שלו בGoogle Cloud ניהול Fleet והתקנת תוכנת GKE attached clusters בו.
אפשר לצרף אשכול באמצעות ה-CLI של gcloud או Terraform. כדי ללמוד איך ליצור ולצרף אשכול EKS באמצעות Terraform, אפשר לעיין במאגר GitHub של דוגמאות לאשכולות GKE מצורפים.
הדף הזה מיועד לאדמינים ב-IT ולמפעילים שרוצים להגדיר, לנטר ולנהל תשתית ענן. מידע נוסף על תפקידים נפוצים ועל משימות לדוגמה שאנחנו מתייחסים אליהן בתוכן זמין במאמר תפקידים נפוצים של משתמשים ב-GKE ומשימות. Google Cloud
כדי לצרף אשכול EKS באמצעות gcloud, מבצעים את השלבים הבאים.
דרישות מוקדמות
מוודאים שהאשכול עומד בדרישות האשכול.
כשמצרפים את האשכול, צריך לציין:
- Google Cloud אזור אדמיניסטרטיבי נתמך ו
- גרסת פלטפורמה.
האזור הניהולי הוא Google Cloud אזור לניהול האשכול המצורף. אפשר לבחור כל אזור נתמך, אבל מומלץ לבחור את האזור הקרוב ביותר גיאוגרפית לאשכול. לא נשמרים נתוני משתמשים באזור הניהולי.
גרסת הפלטפורמה היא הגרסה של אשכולות GKE מצורפים שמותקנת באשכול. כדי לראות את כל הגרסאות הנתמכות, מריצים את הפקודה הבאה:
gcloud container attached get-server-config \
--location=GOOGLE_CLOUD_REGION
מחליפים את GOOGLE_CLOUD_REGION בשם המיקוםGoogle Cloud שממנו רוצים לנהל את האשכול.
מספור גרסאות הפלטפורמה
במסמכים האלה, הגרסה של אשכולות מצורפים ב-GKE נקראת גרסת הפלטפורמה, כדי להבדיל אותה מגרסת Kubernetes. באשכולות GKE מצורפים משתמשים באותה שיטה למספור גרסאות כמו ב-GKE – לדוגמה, 1.21.5-gke.1. כשמצרפים או מעדכנים את האשכול, צריך לבחור גרסת פלטפורמה שגרסת המשנה שלה זהה לגרסת Kubernetes של האשכול או נמוכה ממנה ברמה אחת. לדוגמה, אתם יכולים לצרף אשכול שמריץ Kubernetes בגרסה 1.22.* עם פלטפורמת אשכולות מצורפים של GKE בגרסה 1.21.* או 1.22.*.
כך תוכלו לשדרג את האשכול לגרסה המשנית הבאה לפני שתשדרגו את אשכולות GKE המצורפים.
צירוף אשכול EKS
כדי לצרף את אשכול EKS ל Google Cloud ניהול Fleet, מבצעים את השלבים הבאים:
מוודאים שבקובץ kubeconfig יש רשומה של האשכול שרוצים לצרף:
aws eks update-kubeconfig --region AWS_REGION \ --name EKS_CLUSTER_NAMEמאחזרים את כתובת ה-URL של מנפיק OIDC באמצעות הפקודה הבאה:
aws eks describe-cluster \ --region AWS_REGION \ --name EKS_CLUSTER_NAME \ --query "cluster.identity.oidc.issuer" \ --output textהפלט של הפקודה הזו הוא כתובת ה-URL של מנפיק OIDC. שומרים את הערך הזה לשימוש מאוחר יותר.
מריצים את הפקודה הזו כדי לחלץ את ההקשר של kubeconfig באשכול ולאחסן אותו במשתנה הסביבה
KUBECONFIG_CONTEXT:KUBECONFIG_CONTEXT=$(kubectl config current-context)משתמשים בפקודה
gcloud container attached clusters registerכדי לרשום את האשכול:gcloud container attached clusters register CLUSTER_NAME \ --location=GOOGLE_CLOUD_REGION \ --fleet-project=PROJECT_NUMBER \ --platform-version=PLATFORM_VERSION \ --distribution=eks \ --issuer-url=ISSUER_URL \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATHמחליפים את:
- AWS_REGION: האזור ב-AWS שבו נמצא אשכול ה-EKS
- CLUSTER_NAME: השם של האשכול. השם הזה יכול להיות זהה EKS_CLUSTER_NAME לזה שהשתמשתם בו בשלבים הקודמים. התווית CLUSTER_NAME צריכה להיות תואמת לתקן RFC 1123 לשמות תוויות.
- GOOGLE_CLOUD_REGION: Google Cloud האזור שבו מנהלים את האשכול
- PLATFORM_VERSION: הגרסה של אשכולות GKE מצורפים שבה רוצים להשתמש באשכול
- PROJECT_NUMBER: פרויקט המארח של ה-Fleet שבו האשכול יירשם
- ISSUER_URL: כתובת ה-URL של המנפיק שאוחזרה קודם
- KUBECONFIG_CONTEXT: ההקשר בקובץ kubeconfig לגישה לאשכול EKS, כפי שחולץ קודם
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig
אישור של Cloud Logging / Cloud Monitoring
כדי שאשכולות GKE מצורפים יוכלו ליצור ולהעלות יומנים ומדדים של המערכת אלGoogle Cloud, צריך לתת להם הרשאה.
כדי לתת לזהות של עומס העבודה ב-Kubernetes gke-system/gke-telemetry-agentהרשאה לכתוב יומנים ב- Google Cloud Logging ומדדים ב- Google Cloud Monitoring, מריצים את הפקודה הבאה:
gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
--member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter
מחליפים את GOOGLE_PROJECT_ID במזהה הפרויקט של האשכול. Google Cloud
הקישור הזה ב-IAM מעניק גישה לכל האשכולות בפרויקט Google Cloud project project להעלאת יומנים ומדדים. צריך להריץ אותה רק אחרי שיוצרים את האשכול הראשון בפרויקט.
הוספת הקישור הזה של IAM תיכשל אלא אם נוצר לפחות אשכול אחד בפרויקט Google Cloud . הסיבה לכך היא שמאגר הזהויות של עומסי העבודה שאליו הוא מתייחס (GOOGLE_PROJECT_ID.svc.id.goog) לא מוקצה עד ליצירת האשכול.