כפי שראיתם בסקירה הכללית על יצירת צי, אשכולות GKE מקומיים ב-VMware וב-Bare Metal, ואשכולות מרובי ענן (גם ב-AWS וגם ב-Azure) נרשמים אוטומטית לצי הפרויקטים שלכם בזמן יצירת האשכול. עם זאת, צריך לרשום ידנית אשכולות GKE ב- Google Cloud ואשכולות Kubernetes של צד שלישי (אשכולות מצורפים) כדי להוסיף אותם לצי. תוכלו למצוא פרטים נוספים על אפשרויות שונות לרישום במאמר בנושא סקירה כללית על יצירת Fleet.
בדף הזה מתוארות הדרישות המוקדמות לרישום ידני של כל אשכול Kubernetes ל- Google Cloud Fleet. יש גם דרישות נפרדות ספציפיות לאשכולות GKE ב- Google Cloud ולאשכולות מצורפים. אחרי שתסיימו את המדריך הזה, תצטרכו לפעול לפי ההוראות לסוג האשכול שאתם רוצים לרשום.
לפני שמתחילים, מומלץ לעיין בההגבלות הכלליות על רישום אשכולות.
התקנה של כלי שורת הפקודה
ודאו שכלי שורת הפקודה הבאים מותקנים. אם אתם משתמשים ב-Cloud Shell כסביבת המעטפת שלכם לאינטראקציה עם Google Cloud, הכלים האלה מותקנים אצלכם.
התקנת Google Cloud CLI
Google Cloud CLI הוא ממשק שורת הפקודה (CLI) של Google Cloud. אפשר לרשום אשכולות באמצעות Google Cloud CLI או, בהתאם לסוג האשכול, באמצעות כלים אחרים כמו Terraform או מסוף Google Cloud . עם זאת, גם אם לא משתמשים בו לרישום אשכולות, gcloud נדרש או שימושי עבור רבים משלבי ההגדרה האחרים במדריך הזה.
אם הוא לא מותקן, מתקינים את Google Cloud CLI לפי הוראות ההתקנה. מומלץ להשתמש בגרסה העדכנית ביותר של Google Cloud CLI. כדי לרשום אשכולות, צריך גרסה 361.0.0 ואילך, וכדי להשתמש בפקודות הרישום שאינן מדור קודם ל-GKE, צריך גרסה 423.0.0 ואילך, עם רכיב אלפא או בטא מותקן.
מריצים את הפקודה הבאה כדי להתחבר אל Google Cloud:
gcloud auth login
(אופציונלי) אם אתם מתכננים לנסות תכונות אלפא או בטא, ודאו שהרכיב
gcloud betaמותקן אצלכם:gcloud components install beta
התקנת kubectl
למרות שלא צריך את kubectl כדי לרשום אשכול, יכול להיות שתצטרכו אותו כדי להעניק את ההרשאות הנדרשות של בקרת גישה מבוססת-תפקידים (RBAC) למשתמש שרושם את האשכול (אם הוא לא הבעלים של האשכול), וגם להגדרות אחרות שספציפיות לפלטפורמה. צריך להשתמש בגרסה של Google Kubernetes Engine (GKE) שהיא kubectl לפחות הגרסה המינימלית הנתמכת של Kubernetes.
מומלץ להתקין את kubectl באמצעות Google Cloud CLI.
כדי לבדוק את הגרסה של kubectl:
kubectl version
גרסת הלקוח מצוינת על ידי gitVersion בפלט.
כדי להתקין את kubectl:
gcloud components install kubectl
הפעלת ממשקי ה-API
צריך להפעיל את ממשקי ה-API הבאים בפרויקט המארח של Fleet:
container.googleapis.comgkeconnect.googleapis.com-
gkehub.googleapis.com, שנקרא גם Fleet API. זהו השירות של Google Cloud שמטפל ברישום האשכולות ובחברות ב-Fleet. cloudresourcemanager.googleapis.com
ל-Pods באשכול שרוצים לרשום צריכה להיות גישה לכתובות googleapis.com ו-gkeconnect.googleapis.com, ישירות או באמצעות שרת proxy מוגדר.
אם רוצים להפעיל את Workload Identity ב-Fleet במהלך הרישום, צריך להפעיל גם את האפשרויות הבאות:
iam.googleapis.com
למשתמשים שאינם בעלי הפרויקט צריך לתת את ההרשאה serviceusage.services.enable כדי שיוכלו להפעיל ממשקי API.
gcloud
כדי להפעיל את ממשקי ה-API האלה, מריצים את הפקודה הבאה:
gcloud services enable \
--project=FLEET_HOST_PROJECT_ID \
container.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
cloudresourcemanager.googleapis.com \
iam.googleapis.com
where:
- FLEET_HOST_PROJECT_ID הוא מזהה הפרויקט ב- Google Cloud שבו רוצים לרשום את האשכולות. איך מוצאים את הערך הזה
אם אתם לא רוצים להפעיל את Workload Identity בצי, אתם יכולים להשמיט את iam.googleapis.com.
כדי לראות את רשימת ממשקי ה-API שכבר הפעלתם בפרויקטים, פועלים לפי ההוראות שבקטע Listing Services במסמכי התיעוד של Service Usage.
מתן הרשאות גישה
חשוב לוודא שיש לכם הרשאות גישה מתאימות כדי לרשום אשכול. כדי לרשום אשכול ב-Fleet, צריך הרשאה לרשום את האשכול ב-Fleet והרשאות אדמין באשכול עצמו.
מתן הרשאות לרישום אשכול
כדי לרשום אשכול, צריך הרשאות IAM בפרויקט המארח של ה-Fleet. אם יש לכם את התפקיד roles/owner בפרויקט המארח של Fleet, הוא מוקצה לכם באופן אוטומטי ויש לכם את כל הרשאות הגישה שאתם צריכים כדי לבצע את כל משימות הרישום.
אם אין לכם roles/owner בפרויקט, אתם צריכים לקבל תפקידי IAM ספציפיים כדי שתוכלו לקשר אשכולות ל-Google, באופן הבא:
כדי לרשום אשכול ב-Workload Identity של Fleet לצורך אימות ב-Google, צריך רק את תפקיד ה-IAM הבא:
roles/gkehub.admin
חלק מאפשרויות הרישום מחוץ ל- Google Cloud מחייבות להגדיר חשבון שירות שהאשכול ישתמש בו כדי לבצע אימות ל-Google במקום Workload Identity. כדי לרשום את האשכול ולנהל את חשבון השירות הזה, צריך את קבוצת התפקידים הבאה:
roles/gkehub.adminroles/iam.serviceAccountAdminroles/iam.serviceAccountKeyAdminroles/resourcemanager.projectIamAdmin
רשימה של ההרשאות המפורטות שכלולות בתפקידים gkehub מופיעה במאמר תפקידי IAM ב-Connect.
gcloud
כדי להקצות תפקיד IAM למשתמש, מריצים את הפקודה הבאה:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
--member user:GCP_EMAIL_ADDRESS \
--role=ROLE
where:
- FLEET_HOST_PROJECT_ID הוא מזהה הפרויקט ב- Google Cloud שבו רוצים לרשום את האשכולות. איך מוצאים את הערך הזה
- GCP_EMAIL_ADDRESS הוא החשבון שבו המשתמש משתמש כדי להיכנס ל- Google Cloud.
- ROLE הוא תפקיד ה-IAM שרוצים להעניק, למשל
roles/gkehub.admin.
מידע נוסף על הקצאת תפקידי IAM זמין במאמר הענקה, שינוי וביטול גישה למשאבים בחומרי העזר של IAM.
הענקת הרשאות אדמין של אשכול
בנוסף להרשאות שנדרשות כדי לרשום אשכול, אתם צריכים גם הרשאות אדמין באשכול עצמו. בהתאם למיקום האשכול, אפשר להקצות את ההרשאה הזו באמצעות תפקידי IAM או בקרת גישה מבוססת-תפקידים (RBAC) של Kubernetes.
אשכולות GKE ב- Google Cloud
אם אתם משתמשים באשכולות GKE ב- Google Cloud בלבד, תוכלו להוסיף את תפקיד ה-IAM הבא כדי לקבל הרשאות אדמין באשכול, אם עדיין אין לכם אותו (סביר להניח שחשבון המשתמש שלכם כולל אותו אם יצרתם את האשכול):
roles/container.admin
תפקיד ה-IAM הזה כולל את תפקיד ה-RBAC של Kubernetes cluster-admin. בסביבות אחרות של אשכולות, צריך להעניק את תפקיד ה-RBAC הזה באמצעות kubectl, כמו שמתואר בקטע הבא.
מידע נוסף על הקשר בין תפקידי IAM לבין תפקידי RBAC ב-GKE זמין במסמכי GKE.
מקבצים מחוץ Google Cloud
כדי לצרף אשכולות של צד שלישי מחוץ ל- Google Cloud, צריך לוודא שלמשתמש שרושם את האשכול יש תפקיד cluster-admin ב-Kubernetes RBAC.
kubectl
אם יצרתם את האשכול, סביר להניח שיש לכם את התפקיד הזה. כדי לוודא זאת, מריצים את הפקודה הבאה:
kubectl auth can-i '*' '*' --all-namespaces
אם אתם או משתמש אחר צריכים את התפקיד, יוצרים משאב ClusterRoleBinding באשכול:
kubectl create clusterrolebinding BINDING_NAME --clusterrole cluster-admin --user USER
where:
- BINDING_NAME הוא שם שאתם בוחרים למשאב ClusterRoleBinding.
- USER היא הזהות שמשמשת לאימות מול האשכול.
מה השלב הבא?
פועלים לפי מדריך הדרישות המוקדמות לסוג האשכול שרוצים לרשום:
- דרישות מוקדמות לאשכולות GKE ב- Google Cloud
- דרישות מוקדמות לאשכולות EKS
- דרישות מוקדמות לאשכולות AKS
- דרישות מוקדמות לסוגים אחרים של אשכולות מצורפים