הדף הזה מיועד לאדמינים של פלטפורמות שרוצים להגדיר ולנהל את השימוש בצי של צוות.
לפני שקוראים את הדף הזה, חשוב לוודא שאתם מכירים את ניהול צוותים ב-Fleet.
סקירה כללית על הגדרת צוות
אפשר להגדיר צוותים באמצעות Google Cloud CLI, Google Cloud המסוף או Terraform.
התהליך הכללי להגדרת צוות הוא כזה:
- בוחרים או יוצרים את צי הרכבים שרוצים להגדיר בו גישה לצוות, ומוודאים שיש לכם את ההרשאות וה-API הנכונים כדי להשלים את ההגדרה.
- (אופציונלי אבל מומלץ) מגדירים ב-קבוצות Google בקרת גישה לאשכולות של צי המחשבים.
- קובעים אילו משתמשים יהיו בצוות. צוות יכול לכלול קבוצות Google (מומלץ) ו/או חשבונות נפרדים.
- בוחרים את רמת הגישה למשאבים של הצי ולמשאבים של הצוות שרוצים להעניק לכל אחד מחברי הצוות.
- יוצרים היקף צוות לצוות.
- מוסיפים אחד או יותר (או את כל) האשכולות של חברי הצי להיקף הצוות.
- הגדרת מרחבי שמות ברמת הצי ושיוך שלהם להיקף הצוות.
- (אופציונלי) משתמשים ב-סנכרון תצורות כדי לסנכרן משאבי Kubernetes עם היקפים ומרחבי שמות של צוותים.
לאחר מכן, הצוות יכול לקבל פרטי כניסה כדי לגשת לאשכולות באמצעות Connect Gateway.
הגדרת Google Cloud CLI
גם אם יוצרים היקפי צוות באמצעות מסוף Google Cloud , יכול להיות שעדיין צריך להגדיר את ה-CLI של gcloud כדי להשלים כמה דרישות מוקדמות במהלך הגדרת צי המכשירים, כמו הפעלת ממשקי API נדרשים.
מוודאים שיש לכם את הגרסה העדכנית של Google Cloud CLI, כולל רכיב האלפא של Google Cloud CLI. כדי להשתמש בפקודות לניהול צוותים של צי רכבים, צריך לפחות גרסה 419.0.0.
מריצים את הפקודה הבאה כדי להתחבר אל Google Cloud:
gcloud auth loginמאותחלים את ה-CLI של gcloud לשימוש בפרויקט המארח של צי המכונות שבחרתם, או מריצים את הפקודה הבאה כדי להגדיר את פרויקט המארח של צי המכונות כברירת מחדל:
gcloud config set project PROJECT_IDאפשר להשתמש בדגל
--projectעם כל אחת מהפקודות הבאות כדי לציין פרויקט אחר של מארח צי, אם צריך.
הגדרת כל המכשירים בארגון
בוחרים את צי הרכבים שבו רוצים להגדיר צוות חדש או יוצרים צי רכבים חדש. הנחיות ודוגמאות שיעזרו לכם לבנות את צי הרכבים זמינות במאמר דוגמאות לצי רכבים ובמדריכים אחרים בסדרה תכנון צי הרכבים.
כדי ליצור צי חדש עם שם בפרויקט שעדיין לא הוגדר בו צי, מריצים את הפקודה הבאה (קודם צריך להגדיר את Google Cloud CLI):
gcloud container fleet create \
--display-name=NAME \
--project=FLEET_HOST_PROJECT_ID
אם לא מציינים display-name, צי חדש נוצר עם שם תצוגה שמוגדר כברירת מחדל על סמך שם פרויקט המארח של הצי.
התפקידים שצריך ב-IAM
אם אין לכם roles/owner בפרויקט המארח של צי המכונות, אתם צריכים roles/gkehub.admin כדי ליצור ולהגדיר מרחבי שמות והיקפי צוות. בעלי הפרויקט יכולים להקצות את התפקיד הזה באמצעות הפקודה הבאה:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member user:USER_EMAIL_ADDRESS \
--role='roles/gkehub.admin'
הפעלת ממשקי ה-API
מוודאים שכל ממשקי ה-API הנדרשים מופעלים בפרויקט המארח של צי הרכבים, כולל GKE API:
gcloud services enable --project=PROJECT_ID \
gkehub.googleapis.com \
container.googleapis.com \
connectgateway.googleapis.com \
cloudresourcemanager.googleapis.com \
iam.googleapis.com \
container.googleapis.com
אם תשביתו את GKE API אחרי שתגדירו ניהול צוותים בצי, חלק מהתכונות ימשיכו לפעול, אבל לא תוכלו לעדכן או ליצור היקפי צוותים או מרחבי שמות בצי.
הגדרת אשכולות לבקרת גישה באמצעות קבוצות Google
אפשר להגדיר את הגישה של צוותים לאשכולות של חברי צי באמצעות RBAC על בסיס משתמש-למשתמש, בלי להגדיר אשכולות נוספים. עם זאת, מומלץ לתת לחברי צוות גישה לאשכולות על סמך החברות שלהם בקבוצה ב-Google של הצוות. הרשאה שמבוססת על חברות בקבוצה מאפשרת לכם לא להגדיר הרשאה נפרדת לכל חשבון, וכך לנהל את המדיניות בצורה פשוטה יותר ולבצע ביקורת בקלות. בנוסף, לא צריך להוסיף או להסיר משתמשים בנפרד מאשכולות כשהם מצטרפים לצוות או עוזבים אותו. כדי לוודא שהאשכולות שרוצים להקצות להיקפי צוות יכולים להשתמש בקבוצות Google עם Connect Gateway לצורך בקרת גישה, אפשר להיעזר במדריכים הבאים:
- עבור אשכולות GKE ב- Google Cloud, פועלים לפי ההוראות במאמר הגדרת קבוצות Google ל-RBAC.
- לקלאסטרים של חברי צי מחוץ Google Cloud, פועלים לפי ההוראות במאמר הגדרת Connect Gateway באמצעות קבוצות Google.
הגדרת צוות חדש
בהוראות הבאות מוסבר איך ליצור היקף חדש של צוות בשביל צוות.
בחירת הרשאות גישה לצוות
קודם כול, מחליטים או מגלים מי המשתמשים שמרכיבים את הצוות. חלק חשוב בהגדרת הצוות הוא הענקת גישה לחברי הצוות לצי, כולל היכולת לראות את האשכולות במסוף Google Cloud ואת היומנים בהיקף הצוות. בהתאם לתפקיד של חבר הצוות, יכול להיות שתרצו להעביר אליו את היכולת ליצור מרחבי שמות בהיקף הצוות שלו (אפשרות שזמינה ב-gkehub.ScopeAdmin או ב-gkehub.ScopeEditor), או לאפשר לו לעדכן את הקישורים של תפקידי RBAC (רק ב-gkehub.ScopeAdmin).
כדי לפשט את ההגדרה הזו, ניהול צוותים בצי מספק שלוש דמויות מוגדרות מראש עם הרשאות לבחירה, שכוללות קבוצה מלאה של הרשאות IAM ו-Kubernetes RBAC שאדמין, עורך או צופה בהיקף הצוות עשויים להזדקק להן בעבודה עם ההיקף שלהם. אפשר גם לבחור פרסונה של תפקיד בהתאמה אישית עם הרשאות RBAC בהתאמה אישית באשכול. אחר כך תוכלו להקצות את הפרופילים האלה לחברי הצוות כשאתם מגדירים את הצוות, כמו שמתואר בקטע הבא.
בטבלה הבאה מוצגות ההרשאות מכל סוג שמוענקות לכל פרסונה:
| תיאור | סוג | פרסונה של אדמין עם היקף | פרסונה של עורך ההיקף | פרסונה של צופה בהיקף | פרסונה של תפקיד בהתאמה אישית |
|---|---|---|---|---|---|
גישה להיקף הצוות ולמרחבי השמות שלו. |
קישור IAM בהיקף הצוות | roles/gkehub.scopeAdmin | roles/gkehub.scopeEditor | roles/gkehub.scopeViewer | roles/gkehub.scopeViewer |
גישה לפרויקט המארח של הצי, כולל מדדים, פעולות ארוכות טווח ושער Connect. |
קישור IAM בפרויקט המארח של ה-Fleet | roles/gkehub.scopeEditorProjectLevel | roles/gkehub.scopeEditorProjectLevel | roles/gkehub.scopeViewerProjectLevel | roles/gkehub.scopeEditorProjectLevel |
גישה לקטגוריית היומנים בהיקף הצוות. |
קישור IAM בפרויקט המארח של ה-Fleet (עם תנאי שלפיו המשאב שאליו ניגשים הוא שם הקטגוריה). | roles/logging.viewAccessor | roles/logging.viewAccessor | roles/logging.viewAccessor | roles/logging.viewAccessor |
גישה למשאבי Kubernetes באשכולות של ההיקף. |
קישור RBAC בהיקף שחל על מרחבי השמות של היקף הצוות. | תפקיד ברירת המחדל ב-Kubernetes: אדמין | תפקיד ברירת המחדל של Kubernetes: עריכה | תפקיד ברירת המחדל ב-Kubernetes: view | User-defined ClusterRole |
כמו שצוין בקטע הקודם, מומלץ להעניק לחברי הצוות גישה למשאבים שלהם על סמך חברות בקבוצה ב-Google, למרות שניהול הצוות מאפשר גם להעניק גישה למשתמשים בודדים.
אם הפרופילים האלה לא מתאימים לצרכים שלכם, אתם יכולים גם לקשר תפקידים ב-IAM (באמצעות gcloud container fleet scopes add-iam-policy-binding) וב-RBAC (באמצעות gcloud container fleet scopes rbacrolebindings create) באופן פרטני. במסמכי העזר של Google Cloud CLI מפורטות פקודות נוספות שאפשר להשתמש בהן כדי לנהל את הקישורים האלה.
הגדרת היקף צוות
gcloud
יצירת היקף צוות
כדי ליצור היקף חדש של צוות בצי, מריצים את הפקודה הבאה, כאשר SCOPE_NAME הוא השם הייחודי שבוחרים להיקף החדש:
gcloud container fleet scopes create SCOPE_NAME
הוספת אשכולות להיקף של צוות
אפשר להוסיף להיקפי צוות רק חברים קיימים בצי. ההוראות האלה מניחות שהאשכול שרוצים להוסיף להיקף כבר שייך לצי. אם אתם צריכים להוסיף את האשכול ל-Fleet, אתם יכולים להיעזר בהוראות ליצירת Fleet שמתאימות לסוג האשכול שלכם במאמר יצירת Fleet כדי לרשום את האשכול. מוודאים שהאשכול החדש שרשמתם מוגדר לשימוש בקבוצות Google לצורך בקרת גישה, כמו שמתואר למעלה.
אפשר להוסיף אשכול שהוא חבר ב-Fleet לכל מספר של היקפי צוות בפרויקט המארח של ה-Fleet.
כדי להוסיף אשכול להיקף של צוות, מריצים את הפקודה הבאה:
gcloud container fleet memberships bindings create BINDING_NAME \
--membership MEMBERSHIP_NAME \
--scope SCOPE_NAME \
--location MEMBERSHIP_LOCATION
מחליפים את מה שכתוב בשדות הבאים:
- BINDING_NAME: שם שמייצג את הקשר בין האשכול לבין היקף הצוות. מומלץ להשתמש ב- MEMBERSHIP_NAME-SCOPE_NAME.
- MEMBERSHIP_NAME: המזהה הייחודי של האשכול ב-Fleet (בדרך כלל שם האשכול).
- (optional) MEMBERSHIP_LOCATION: מיקום החברות באשכול. אם לא מציינים את הערך, הוא יהיה
global, שהוא ברירת המחדל לרישום של אשכולות.
יצירת מרחבי שמות של צי
כדי ליצור מרחב שמות בהיקף של צוות, מריצים את הפקודה הבאה:
gcloud container fleet scopes namespaces create NAMESPACE_NAME --scope=SCOPE_NAME
מחליפים את מה שכתוב בשדות הבאים:
- NAMESPACE_NAME: השם הייחודי שבחרתם למרחב השמות ב-Fleet. מוודאים ש-NAMESPACE_NAME לא מתנגש עם ההגבלות על מתן שמות למרחבי שמות של צי.
- SCOPE_NAME: ההיקף של הצוות שבו רוצים להשתמש במרחב השמות.
הפקודה הזו יוצרת מרחב שמות של Kubernetes בשם NAMESPACE_NAME בכל אשכול בהיקף הצוות. חברי הצוות יכולים להשתמש ב-NAMESPACE_NAME כמו בכל מרחב שמות אחר של Kubernetes אחרי שמעניקים להם גישה להיקף שלהם. אם כבר יש לכם מרחב שמות קיים של Kubernetes בשם NAMESPACE_NAME בהיקף של הצוות, הוא נחשב לחלק ממרחב השמות החדש של הצי. הפעולה הזו נקראת לפעמים הוספה של מרחב השמות.
הענקת גישה לחברי הצוות להיקף הצוות
שימוש בתפקידים מוגדרים מראש
בשלב הבא, מוודאים שקבוצות Google הרלוונטיות כוללות את הרשאות ה-IAM וה-RBAC המתאימות שמוגדרות לעבודה עם ההיקף החדש:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--role=ROLE --group=TEAM_EMAIL --project PROJECT_ID
- PROJECT_ID הוא המזהה של פרויקט המארח של הצי.
- TEAM_EMAIL היא כתובת האימייל של קבוצה ב-Google של צוות.
- SCOPE_ID הוא המזהה של ההיקף שנוצר
- ROLE היא הפרסונה של ההרשאה שיש לקבוצה בהיקף הצוות. הערכים האפשריים של הפרמטר הזה הם
admin(היקף אדמין),edit(היקף עריכה) אוview(היקף צפייה).
אם אתם צריכים להעניק למשתמש מסוים גישה להיקף, מריצים במקום זאת את הפקודה הבאה, כאשר USER_EMAIL היא כתובת האימייל של מזהה Google של המשתמש:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--role=ROLE --user=USER_EMAIL --project PROJECT_ID
שימוש בתפקידים בהתאמה אישית
כדי להשתמש בתפקיד בהתאמה אישית, קודם צריך להוסיף את התפקיד בהתאמה אישית לתכונת הצי rbacrolebindingactuation:
gcloud container fleet rbacrolebindingactuation update --allowed-custom-roles CUSTOM_ROLE --project PROJECT_ID
בשלב הבא, מוודאים שקבוצות Google הרלוונטיות כוללות את הרשאות ה-IAM וה-RBAC המתאימות שמוגדרות לעבודה עם ההיקף החדש:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--custom-role=CUSTOM_ROLE --group=TEAM_EMAIL --project PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: המזהה של פרויקט המארח של ה-Fleet.
- TEAM_EMAIL: כתובת האימייל של קבוצה ב-Google של צוות.
- SCOPE_ID : המזהה של היקף ההרשאות שנוצר.
- CUSTOM_ROLE: Kubernetes ClusterRole שהתווסף לרשימת ההיתרים בתכונה
rbacrolebindingactuation. כדי שהתכונה תפעל כמצופה, ה-ClusterRole צריך להתקיים בכל אשכול שנוסף להיקף. עם זאת, המשאבים עדיין נוצרים גם כש-ClusterRole לא קיים.
אם אתם צריכים להעניק למשתמש מסוים גישה להיקף, מריצים במקום זאת את הפקודה הבאה, כאשר USER_EMAIL היא כתובת האימייל של מזהה Google של המשתמש:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--custom-role=CUSTOM_ROLE --user=USER_EMAIL --project PROJECT_ID
המסוף
יצירת היקף צוות
אחרי שבוחרים את פרויקט המארח של צי הרכבים, עוברים לקטע Teams במסוף Google Cloud .
בראש הדף, לוחצים על יצירת היקף צוות.
בדף Team Basics (פרטים בסיסיים על הצוות), בשדה Name (שם), מזינים שם ייחודי להיקף הצוות. לא תוכלו לשנות את השם הזה אחרי שתיצרו את ההיקף של הצוות.
כדי להוסיף חברים לצוות להיקף, לוחצים על הוספת חבר לצוות.
- בקטע סוג, בוחרים באפשרות משתמש כדי להוסיף חבר צוות בודד, או באפשרות קבוצה כדי להוסיף קבוצה ב-Google (מומלץ).
- בקטע משתמש או קבוצה, מקלידים את כתובת האימייל של חבר הצוות או של הקבוצה.
- בשדה Role, בוחרים באפשרות Scope Admin, Scope Editor או Scope Viewer, כדי להגדיר כמה קישורי IAM ו-RBAC בהיקף ובצי. כמו שמתואר במאמר בחירת הרשאות גישה לצוות.
כדי ליצור את היקף הצוות בלי להוסיף אשכולות ומרחבי שמות בשלב הזה, לוחצים על יצירת היקף צוות. אחרת, ממשיכים לקטע הבא כדי להוסיף אשכולות להיקף.
הוספת אשכולות להיקף הצוות
כדי לשייך אשכול להיקף צוות, האשכול צריך להיות חבר קיים ב-Fleet. אם אתם צריכים להוסיף את האשכול ל-Fleet, אתם יכולים להיעזר בהוראות ליצירת Fleet שמתאימות לסוג האשכול שלכם במאמר יצירת Fleet כדי לרשום את האשכול. מוודאים שהאשכול החדש שרשמתם מוגדר לשימוש בקבוצות Google לצורך בקרת גישה, כמו שמתואר למעלה.
אפשר להוסיף אשכול של חברי Fleet לכל מספר של היקפי צוות בפרויקט המארח של ה-Fleet, וכך לאפשר לצוותים שונים להריץ עומסי עבודה באותו אשכול.
- בדף Team Basics (הגדרות בסיסיות של הצוות), אחרי שמוסיפים את חברי הצוות להיקף, לוחצים על Continue (המשך).
- בדף Clusters (אשכולות), אפשר לבחור את האשכולות של צי המכוניות שרוצים לשייך להיקף הצוות הזה. בתפריט הנפתח Clusters (אשכולות), מסמנים את האשכולות שרוצים להוסיף ולוחצים על OK (אישור).
יצירת מרחבי שמות של צי
חברי הצוות יכולים להשתמש במרחבי שמות של צי כמו בכל מרחב שמות אחר של Kubernetes. כשיוצרים מרחב שמות של צי, נוצר מרחב שמות תואם של Kubernetes בכל האשכולות בהיקף הצוות, אם הוא עדיין לא קיים.
- בדף Clusters (אשכולות), אחרי שמוסיפים אשכולות להיקף הצוות, לוחצים על Continue (המשך).
- בדף Namespaces (מרחבי שמות), לוחצים על Add Namespace (הוספת מרחב שמות).
- בשדה Name, מזינים שם ייחודי למרחב השמות בתוך צי המכונות, או את השם של מרחב שמות קיים אם רוצים להוסיף אותו. מוודאים שהשם לא מתנגש עם ההגבלות על שמות של מרחבי שמות של צי.
- כדי להוסיף עוד מרחבי שמות של צי, חוזרים על השלב הקודם.
- כדי ליצור את היקף הצוות, לוחצים על יצירת היקף צוות. אחרי שיוצרים את היקף הצוות, אפשר להציג ולערוך אותו לפי הצורך. לשם כך, לוחצים על השם שלו בקטע צוותים.
Terraform
בקטע הזה נסביר איך להגדיר צוות חדש באמצעות Terraform. מידע נוסף ודוגמאות נוספות זמינים במאמרי העזרה של המשאבים הבאים:
google_gke_hub_scopegoogle_gke_hub_membership_bindinggoogle_gke_hub_namespacegoogle_gke_hub_scope_rbac_role_bindinggoogle_gke_hub_feature_rbacrolebindingactuation
יצירת היקף צוות
כדי ליצור היקף צוות, אפשר להשתמש בבלוק הבא בהגדרות של Terraform.
resource "google_gke_hub_scope" "TF_SCOPE_RESOURCE_NAME" {
scope_id = "SCOPE_NAME"
}
מחליפים את מה שכתוב בשדות הבאים:
- TF_SCOPE_RESOURCE_NAME: השם שבוחרים כדי לזהות באופן ייחודי את משאב Terraform
google_gke_hub_scopeשנוצר על ידי הבלוק הזה. - SCOPE_NAME: שם ייחודי לזיהוי ההיקף של הצוות.
הוספת אשכולות להיקף
אפשר להוסיף להיקפי צוות רק חברים קיימים בצי. אם אתם צריכים להוסיף את האשכול לצי שלכם, אתם יכולים לפעול לפי ההוראות שמתאימות לסוג האשכול במאמר יצירת צי כדי לרשום את האשכול. מוודאים שהאשכול החדש שרשמתם מוגדר לשימוש בקבוצות Google לצורך בקרת גישה, כמו שמתואר למעלה.
כדי להוסיף אשכול להיקף של צוות, משתמשים בבלוק הבא בהגדרה:
resource "google_gke_hub_membership_binding" "TF_MEMBERSHIP_BINDING_RESOURCE_NAME" {
membership_binding_id = "BINDING_NAME"
scope = SCOPE_NAME
membership_id = MEMBERSHIP_NAME
location = "MEMBERSHIP_LOCATION"
}
מחליפים את מה שכתוב בשדות הבאים:
- TF_MEMBERSHIP_BINDING_RESOURCE_NAME: שם לזיהוי משאב
google_gke_hub_membership_bindingשנוצר על ידי הבלוק הזה. - BINDING_NAME: שם שמייצג את הקשר בין האשכול לבין ההיקף. מומלץ להשתמש ב- MEMBERSHIP_NAME-SCOPE_NAME.
- SCOPE_NAME: השם של היקף הצוות.
- MEMBERSHIP_NAME: המזהה הייחודי של האשכול ב-Fleet (בדרך כלל שם האשכול).
- MEMBERSHIP_LOCATION: המיקום של החברות באשכול.
יצירת מרחבי שמות של צי
חברי הצוות יכולים להשתמש במרחבי שמות של צי כמו בכל מרחב שמות אחר של Kubernetes. אתם יכולים ליצור מרחב שמות חדש או להוסיף מרחב שמות קיים. כשיוצרים מרחב שמות של צי, נוצר מרחב שמות תואם של Kubernetes בכל האשכולות בהיקף הצוות, אם הוא עדיין לא קיים.
כדי ליצור מרחב שמות של צי, משתמשים בבלוק הבא בהגדרות:
resource "google_gke_hub_namespace" "TF_NAMESPACE_RESOURCE_NAME" {
scope_namespace_id = "NAMESPACE_NAME"
scope_id = SCOPE_NAME
scope = SCOPE_NAME
}
מחליפים את מה שכתוב בשדות הבאים:
- TF_NAMESPACE_RESOURCE_NAME: שם לזיהוי משאב
google_gke_hub_namespaceשנוצר על ידי הבלוק הזה. - NAMESPACE_NAME: שם ייחודי שבחרתם למרחב השמות של ה-Fleet. מוודאים שהשם הזה לא סותר את ההגבלות על שמות של מרחבי שמות של צי.
- SCOPE_NAME: השם של היקף הצוות שבו נוצר מרחב השמות של ה-Fleet.
הענקת גישה להיקף
שימוש בתפקידים מוגדרים מראש
כמו שמתואר בסעיף הקודם, אפשר להעניק לחברי הצוות גישה להיקף שלהם באמצעות פרופילים של הרשאות שכוללים הרשאות IAM ו-RBAC. לדוגמה, הנה הגדרה להענקת גישה למשתמש מסוים להיקף צוות:
module "TF_SCOPE_RESOURCE_NAME_USER_EMAIL" {
source = "terraform-google-modules/kubernetes-engine/google//modules/fleet-app-operator-binding"
scope_id = "SCOPE_NAME"
user = "USER_EMAIL"
role = "ROLE"
}
מחליפים את מה שכתוב בשדות הבאים:
- TF_SCOPE_RESOURCE_NAME: שם ההיקף.
- BINDING_NAME: שם שייצג את הקישור הזה.
- SCOPE_NAME: השם של ההיקף של הצוות.
- USER_EMAIL: כתובת האימייל של המשתמש.
- ROLE: הפרסונה שרוצים להעניק למשתמש, שיכולה להיות
ADMIN,EDITאוVIEW.
כדי להעניק לקבוצת Google גישה להיקף הצוות, משתמשים ב-group במקום ב-user בהגדרה הקודמת, ומשתמשים בכתובת האימייל של קבוצת Google של הצוות.
שימוש בתפקידים בהתאמה אישית
כדי להשתמש בתפקיד בהתאמה אישית, קודם צריך להוסיף את התפקיד בהתאמה אישית לתכונת הצי rbacrolebindingactuation:
resource "google_gke_hub_feature" "rbacrolebindingactuation" {
name = "rbacrolebindingactuation"
location = "global"
spec {
rbacrolebindingactuation {
allowed_custom_roles = ["CUSTOM_ROLE"]
}
}
}
ההגדרה הבאה מעניקה למשתמשים בודדים גישת RBAC להיקף של צוות:
resource "google_gke_hub_scope_rbac_role_binding" "BINDING_NAME" {
scope_id = "SCOPE_NAME"
user = "USER_EMAIL"
role {
custom_role = "CUSTOM_ROLE"
}
depends_on = [google_gke_hub_feature.rbacrolebindingactuation]
}
מחליפים את מה שכתוב בשדות הבאים:
- BINDING_NAME: שם שייצג את הקישור הזה.
- SCOPE_NAME: השם של ההיקף של הצוות.
- USER_EMAIL: כתובת האימייל של המשתמש.
- CUSTOM_ROLE: Kubernetes ClusterRole שנוסף לרשימת ההיתרים בתכונה
rbacrolebindingactuation. כדי שהתכונה תפעל כמצופה, ה-ClusterRole צריך להתקיים בכל אשכול שנוסף להיקף. עם זאת, המשאבים עדיין נוצרים גם כש-ClusterRole לא קיים.
נדרשות הרשאות נוספות ב-IAM ברמת הפרויקט וברמת ההיקף, ואפשר להוסיף אותן באמצעות דוגמאות לקישור אופרטור ב-Terraform.
גישה למרחבי שמות של צי רכבים
אחרי שההגדרה מסתיימת, חברי הצוות יכולים לגשת למרחבי השמות בהיקף שלהם על ידי קבלת פרטי הכניסה הרלוונטיים לאשכול. כדי לקבל פרטי כניסה לאשכול שהוא חבר ב-Fleet באמצעות Connect Gateway, מריצים את הפקודה הבאה, כאשר MEMBERSHIP_NAME הוא השם של החברות ב-Fleet של האשכול:
gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
פרטים נוספים זמינים במאמר בנושא שימוש ב-Connect Gateway.
ניהול היקפי הצוות
משתמשים בפקודות הבאות כדי לנהל את היקפי הצוות.
gcloud
הצגת היקפי הצוות
כדי להציג רשימה של כל ההיקפים בצי, מריצים את הפקודה הבאה:
gcloud container fleet scopes list
כדי להציג רשימה של כל ההיקפים שמשויכים לאשכול, מריצים את הפקודה הבאה:
gcloud container fleet memberships bindings list --membership MEMBERSHIP_NAME
הסרת אשכולות מהיקפי צוות
כדי להסיר אשכול מההיקף, מריצים את הפקודה הבאה:
gcloud container fleet memberships bindings delete BINDING_NAME --membership MEMBERSHIP_NAME
מחיקת היקף צוות
כדי למחוק היקף מהצי, מריצים את הפקודה הבאה:
gcloud container fleet scopes delete SCOPE_NAME
המסוף
הצגת היקפי הצוות
כדי לראות את כל ההיקפים בצי, בוחרים את פרויקט המארח של הצי ועוברים לקטע Teams במסוף Google Cloud .
בדף צוותים מוצגת רשימה של כל היקפי הצוות שנוצרו עבור צי הרכבים שלכם. לכל היקף, אפשר לראות סיכום של ניצול המשאבים שלו במהלך התקופה שצוינה, וגם את העלות החודשית המשוערת, מספר השגיאות ומספר ההפעלות מחדש של הקונטיינר.
כדי לראות מדדי ניצול שקשורים לעלויות, לוחצים על Cost Optimization.
הצגת פרטים על היקף הצוות
לכל היקף צוות אפשר לראות פרטים, כולל התוויות שמשויכות להיקף הזה, חברי הצוות ויומנים בהיקף הצוות.
- בדף צוותים, לוחצים על היקף הצוות שרוצים לראות את הפרטים שלו.
- בכרטיסייה Team (צוות), אפשר לראות את תוויות ההיקף, אם יש כאלה, ולצפות בחברי הצוות.
- לוחצים על הכרטיסייה Monitoring כדי לראות את מדדי ניצול המשאבים של הצוות.
- לוחצים על הכרטיסייה Clusters (אשכולות) כדי לראות את האשכולות של היקף הצוות.
- לוחצים על הכרטיסייה Namespaces כדי לראות את מרחבי השמות של הצי בטווח של הצוות הזה.
- לוחצים על הכרטיסייה יומנים כדי לראות יומנים של היקף הצוות.
הוספה או מחיקה של אשכולות בהיקף של צוות
כדי להוסיף או למחוק אשכולות בהיקף צוות קיים:
נכנסים לדף Teams במסוף Google Cloud :
בוחרים את היקף הצוות שבו רוצים להוסיף או למחוק אשכולות. בכרטיסייה אשכולות מוצגת רשימה של האשכולות שמוגדרים כרגע בהיקף.
כדי להוסיף אשכולות להיקף הצוות:
- בראש הדף, לוחצים על הוספת אשכולות.
- בתפריט הנפתח Clusters (אשכולות), בוחרים את האשכולות שרוצים להוסיף להיקף ולוחצים על OK (אישור).
- לוחצים על עדכון היקף הצוות.
כדי למחוק אשכולות מההיקף של הצוות:
- לוחצים על הכרטיסייה Clusters (אשכולות) שבה מוצגת רשימה של האשכולות שמוגדרים כרגע בהיקף.
- לוחצים על סמל האשפה לצד האשכול שרוצים למחוק, ואז לוחצים על הסרה כדי לאשר את המחיקה.
מחיקת היקף הרשאות
נכנסים לדף Teams במסוף Google Cloud :
בוחרים את היקף הנבחרת שרוצים למחוק.
כדי למחוק את ההיקף, בחלק העליון של הדף לוחצים על מחיקה.
כדי לאשר את המחיקה, מזינים את שם ההיקף ולוחצים שוב על מחיקה.
ניהול מרחבי שמות של צי
gcloud
אפשר להשתמש בפקודות הבאות כדי לנהל מרחבי שמות בהיקף של צוות.
הצגת רשימה של מרחבי שמות של צי
כדי לראות את כל מרחבי השמות שנוצרו באמצעות fleet scopes namespaces create בהיקף מסוים, מריצים את הפקודה הבאה:
gcloud container fleet scopes namespaces list --scope=SCOPE_NAME
מחיקת מרחב שמות של צי
כדי למחוק מרחב שמות של צי, מריצים את הפקודה הבאה:
gcloud container fleet scopes namespaces delete NAMESPACE_NAME --scope=SCOPE_NAME
חשוב לדעת: מה שקורה כשמוחקים מרחב שמות של צי תלוי באופן שבו הוספתם את מרחב השמות:
- אם יצרתם מרחב שמות חדש של צי: הפקודה הזו מוחקת את מרחב השמות של הצי. התהליך גם מוחק את כל מרחבי השמות של Kubernetes שנוצרו כתוצאה מיצירת מרחב השמות של ה-Fleet, יחד עם עומסי העבודה שלהם.
- אם הפעלתם מרחב שמות קיים של Kubernetes: הפקודה הזו מוחקת את מרחב השמות של ה-Fleet. מרחב השמות המקורי שצירופתם לא נמחק.
המסוף
כדי לנהל מרחבי שמות של ציוד בטווח הצוות:
נכנסים לדף Teams במסוף Google Cloud :
בוחרים את היקף הנבחרת שרוצים לנהל את מרחבי השמות של הצי שלה.
הצגת רשימה של מרחבי שמות של צי
בהיקף הצוות, בוחרים בכרטיסייה Namespaces (מרחבי שמות) שבה מוצגת רשימה של מרחבי השמות שנוצרו בהיקף הזה.
הצגת פרטי מרחב השמות
לכל מרחב שמות של צי, אפשר לראות את התוויות שמשויכות למרחב השמות הזה, ואת עומסי העבודה והיומנים שסוננו לפי מרחב השמות.
- בוחרים בכרטיסייה Namespaces (מרחבי שמות) שבה מוצגת רשימה של מרחבי השמות של הצי שנוצרו בהיקף הצוות.
- לוחצים על מרחב השמות של הצי שרוצים לראות את הפרטים שלו.
- בכרטיסייה פרטים אפשר לראות את מרחב השמות של הצי ואת תוויות ההיקף.
- כדי לראות את עומסי העבודה במרחב השמות הזה, לוחצים על View Workloads (הצגת עומסי עבודה).
- בדף Workloads (עומסי עבודה), אפשר לראות את עומסי העבודה שכבר סוננו לפי מרחב השמות והאשכולות שמשויכים להיקף הצוות של מרחב השמות הזה.
- בכרטיסייה יומנים, אפשר לצפות ביומנים של היקף הצי לפי מרחב שמות.
הוספת מרחבי שמות של צי לצוות
- כדי להוסיף מרחב שמות חדש של צי, בחלק העליון של הדף, לוחצים על הוספת מרחבי שמות.
- מזינים את השם של מרחב השמות החדש של הצי, ומוודאים שהשם לא סותר את ההגבלות על שמות של מרחבי שמות של צי. כדי להוסיף עוד מרחבי שמות, לוחצים על הוספת מרחב שמות.
- לוחצים על עדכון היקף הצוות.
מחיקת מרחב שמות של צי
- בוחרים בכרטיסייה Namespaces (מרחבי שמות) שבה מוצגת רשימה של מרחבי השמות של הצי שנוצרו בהיקף הצוות.
- לוחצים על סמל האשפה לצד מרחב השמות שרוצים למחוק.
- כדי לאשר את המחיקה, מזינים את שם מרחב השמות ולוחצים שוב על מחיקה.
חשוב לזכור שהתוצאה של הפעולה הזו תלויה באופן שבו הוספתם את מרחב השמות:
- אם יצרתם מרחב שמות חדש של צי: מרחב השמות של הצי נמחק. כל מרחבי השמות של Kubernetes שנוצרו כתוצאה מיצירת מרחב השמות של הצי גם נמחקים, יחד עם עומסי העבודה שלהם.
- אם הפעלתם מרחב שמות קיים של Kubernetes: מרחב השמות של ה-Fleet נמחק. עם זאת, מרחב השמות המקורי שצירופתם לא נמחק.
עדכון השם של מרחב שמות של צי
אי אפשר לערוך מרחב שמות של צי אחרי שהוא נוצר. אם אתם צריכים לעדכן את השם של מרחב השמות של צי, אתם צריכים למחוק את מרחב השמות וליצור מרחב שמות חדש בהיקף של הצוות.
ניהול הגישה של הצוות
gcloud
הצגת חברי הצוות
כדי לראות את רשימת כל חברי הצוות שקיבלו גישה להיקף הצוות באמצעות הפקודה add-app-operator-binding, יחד עם פרופילי ההרשאות שלהם, משתמשים בפקודה הבאה:
gcloud beta container fleet scopes list-app-operator-bindings SCOPE_NAME
מחליפים את מה שכתוב בשדות הבאים:
- SCOPE_NAME: המזהה הייחודי של היקף ההרשאות של הצוות.
הסרה של חברי צוות
כדי להסיר את גישת ההיקף של חבר צוות (שניתנה באמצעות add-app-operator-binding), משתמשים בפקודה הבאה:
gcloud beta container fleet scopes remove-app-operator-binding SCOPE_NAME \
--group=TEAM_EMAIL
או
gcloud beta container fleet scopes remove-app-operator-binding SCOPE_NAME \
--user=USER_EMAIL
מחליפים את מה שכתוב בשדות הבאים:
- SCOPE_NAME: המזהה הייחודי של היקף ההרשאות של הצוות.
- TEAM_EMAIL או USER_EMAIL: כתובת האימייל של הקבוצה או המשתמש שרוצים להסיר מהצוות.
אם חבר הצוות קיבל גישה באמצעות הפקודה rbacrolebindings create, צריך להשתמש בפקודה rbacrolebindings delete כדי להסיר את חבר הצוות.
עדכון הגישה להיקף הצוות
כדי לעדכן את הגישה להיקף הקבוצה (לדוגמה, כדי להעניק לחברי הקבוצה תפקיד אחר, או כדי לעדכן את כתובת האימייל של הקבוצה), צריך להסיר את חבר הקבוצה מההיקף כמו שמתואר בקטע הקודם, ואז להעניק לו גישה שוב עם הפרטים החדשים.
אם חבר הצוות קיבל גישה באמצעות הפקודה rbacrolebindings create, אפשר להשתמש בפקודה rbacrolebindings update במקום זאת כדי לעדכן את הגישה של החבר.
המסוף
הוספה או הסרה של חברי צוות
כדי לנהל את חברי הצוות בהיקף הצוות:
נכנסים לדף Teams במסוף Google Cloud :
בוחרים את היקף הנבחרת שרוצים לנהל את המשתמשים שלה.
כדי להוסיף חברי צוות חדשים להיקף:
- בראש הדף, לוחצים על הוספת חברים לצוות. פועלים לפי ההוראות המפורטות בקטע יצירת היקף צוות.
- לוחצים על עדכון היקף הצוות.
כדי להסיר חברי צוות מההיקף:
- בכרטיסייה Team (צוות), לוחצים על סמל האשפה לצד שם חבר הצוות שרוצים להסיר מהיקף הצוות.
- לוחצים על מחיקה כדי לאשר את המחיקה.
אי אפשר לערוך את הפרטים של חברי הצוות במסוף Google Cloud . כדי לעדכן את הגישה להיקף במסוף Google Cloud (לדוגמה, כדי להעניק לחברי הצוות תפקיד שונה, או כדי לעדכן את כתובת האימייל של הקבוצה), צריך להסיר את חבר הצוות מההיקף ולהוסיף אותו שוב עם הפרטים החדשים.
הגבלות על שמות של מרחבי שמות של מכשירים
השמות הבאים הם שמורים ואסור להשתמש בהם כשיוצרים מרחב שמות של צי בטווח של צוות:
defaultkube-systemgke-connectkube-node-leasekube-publicistio-systemgatekeeper-systemasm-systemconfig-management-systemanthos-credsanthos-identity-servicecapi-kubeadm-bootstrap-systemcapi-systemcert-managergke-managed-metrics-servergke-systemconfig-management-monitoringistio-gatewayknative-servingresource-group-systemgke-mcsappdevexperiencevm-systemgmp-systemgmp-publicgke-gmp-systemgke-managed-filestorecsiapigeeapigee-system
ניהול תוויות
כדי לעזור לכם לזהות ולנהל את ההיקפים, אתם יכולים להשתמש ב-Google Cloud CLI כדי ליצור ולנהל תוויות למרחבי השמות של צי המכונות ולהיקפים של הצוות.
תוויות שמוסיפים להיקף של צוות עוברות בירושה לכל מרחבי השמות של הצי בהיקף, כלומר הן מצורפות לכל מרחבי השמות של Kubernetes באשכולות של ההיקף. תוויות שמוסיפים ישירות למרחב שמות של Fleet מצורפות רק למרחבי השמות התואמים של Kubernetes. אם לתווית בהיקף צוות ולתווית במרחב שמות של צי יש מפתח זהה, התווית בהיקף צוות מקבלת עדיפות.
אפשר לעבוד על כמה צמדי מפתח/ערך בו-זמנית על ידי הוספת רשימה של צמדי מפתח/ערך שמופרדים בפסיקים.
ניהול תוויות של מרחבי שמות בצי
יצירת מרחב שמות של צי עם תוויות
כדי ליצור מרחב שמות של Fleet עם תוויות, מריצים את הפקודה הבאה:
gcloud container fleet scopes namespaces create NAMESPACE_NAME \
--scope SCOPE_NAME \
--namespace-labels KEY=VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_NAME: השם הייחודי שבחרתם למרחב השמות ב-Fleet. -
SCOPE_NAME: ההיקף של הצוות שבו רוצים להשתמש במרחב השמות. -
KEY: המפתח של צמד המפתח/ערך של התווית. -
VALUE: הערך של צמד המפתח/ערך של התווית.
הוספה או עדכון של תוויות למרחבי שמות קיימים של צי
כדי להוסיף או לעדכן תוויות במרחב שמות קיים, מריצים את הפקודה הבאה:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--update-namespace-labels KEY=VALUE
מחיקת תוויות של מרחבי שמות בצי
כדי למחוק תווית ספציפית של מרחב שמות ב-Fleet, מריצים את הפקודה הבאה:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--remove-namespace-labels KEY
מחליפים את KEY ברשימה מופרדת בפסיקים של המפתחות של התוויות שרוצים להסיר.
כדי למחוק את כל תוויות מרחב השמות של הצי, מריצים את הפקודה הבאה:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--clear-namespace-labels
ניהול תוויות בהיקף הצוות
יצירת היקף צוות עם תוויות
כדי ליצור היקף עם תווית, מריצים את הפקודה הבאה:
gcloud container fleet scopes create SCOPE_NAME \
--namespace-labels KEY=VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
SCOPE_NAME: השם הייחודי שבחרתם לצוות החדש. -
KEY: המפתח של צמד המפתח/ערך של התווית. -
VALUE: הערך של צמד המפתח/ערך של התווית.
הוספה או עדכון של תוויות להיקפי צוות קיימים
כדי להוסיף או לעדכן תוויות להיקף קיים, מריצים את הפקודה הבאה:
gcloud container fleet scopes update SCOPE_NAME \
--update-namespace-labels KEY=VALUE
מחיקת תוויות בהיקף הצוות
כדי למחוק תוויות ספציפיות, מריצים את הפקודה הבאה:
gcloud container fleet scopes update SCOPE_NAME \
--remove-namespace-labels KEY
מחליפים את KEY ברשימה מופרדת בפסיקים של המפתחות של התוויות שרוצים להסיר.
כדי למחוק את כל התוויות, מריצים את הפקודה הבאה:
gcloud container fleet scopes update SCOPE_NAME \
--clear-namespace-labels
מה השלב הבא?
- במאמר שימוש בסקירה הכללית של הצוות מוסבר איך אפשר לראות מדדים ברמת הצוות ומידע נוסף שספציפי לצוות.
- איך משתמשים ב-סנכרון תצורות כדי לסנכרן משאבי Kubernetes עם היקפי צוות ומרחבי שמות