בדף הזה יש סקירה כללית של תוויות אשכולות ותוויות מאגרי צמתים ב-Google Kubernetes Engine (GKE).
תוויות של אשכולות GKE ומאגרי צמתים, ותוויות של Kubernetes
התוויות של מאגר הצמתים ושל אשכול GKE שונות מהתוויות ב-Kubernetes. שתי מערכות התיוג פועלות באופן עצמאי, ולא מעבירות או משתפות תוויות.
תוויות של אשכולות GKE ושל מאגרי צמתים הן מטא-נתונים שרירותיים שמצורפים למשאבים. אפשר להשתמש בתוויות האלה כדי לעקוב אחרי מידע על החיוב והשימוש.
בנפרד, ב-Kubernetes, המערכת משתמשת בתוויות באופן פנימי כדי לשייך רכיבים ומשאבים של אשכול (לדוגמה, Pods וצמתים) אחד לשני ולנהל את מחזורי החיים של המשאבים. אפשר לערוך תוויות של Kubernetes באמצעות Kubernetes API. אפשר גם להשתמש ב-GKE API כדי לערוך תוויות Kubernetes בצמתים באמצעות יצירת אשכול או עדכון אשכול. מידע נוסף זמין במאמר עדכון של תוויות וכתמים של צומתי Kubernetes עבור מאגרי צמתים.
מהן תוויות של אשכולות?
תווית של אשכול היא צמד מפתח/ערך שאפשר להקצות ל Google Cloud אשכולות. הם עוזרים לכם לארגן את המשאבים האלה ולנהל את העלויות בקנה מידה נרחב, ברמת הפירוט שאתם צריכים. אפשר לצרף תוויות לכל משאב כדי לסנן את המשאבים לפי תוויות. המידע על התוויות מועבר למערכת החיוב, כך שתוכלו לפרט את החיובים לפי תוויות. בעזרת דוחות החיוב המובנים, אפשר לסנן ולקבץ את העלויות לפי תוויות משאבים. אפשר גם להשתמש בתוויות כדי להריץ שאילתות על ייצוא נתוני חיוב.
הדרישות לגבי תוויות של אשכולות
תוויות האשכולות שמוחלות על משאב צריכות לעמוד בדרישות הבאות:
- אפשר להוסיף עד 64 תוויות אשכול לכל משאב.
- כל תווית של אשכול צריכה להיות צמד מפתח/ערך.
- האורך המינימלי של המפתחות הוא תו אחד, והאורך המקסימלי הוא 63 תווים. המפתחות לא יכולים להיות ריקים. הערכים יכולים להיות ריקים, והאורך המקסימלי שלהם הוא 63 תווים.
- המפתחות והערכים יכולים להכיל רק אותיות קטנות, ספרות, קווים תחתונים ומקפים. כל התווים צריכים להיות בקידוד UTF-8, ומותר להשתמש בתווים בינלאומיים. המפתחות צריכים להתחיל באות קטנה או בתו בינלאומי.
- החלק של המפתח בתווית של אשכול חייב להיות ייחודי בתוך משאב יחיד. עם זאת, אפשר להשתמש באותו מפתח עם כמה משאבים.
המגבלות האלה חלות על המפתח והערך של כל תווית אשכול, וגם על המשאבים Google Cloud הבודדים שיש להם תוויות אשכול. אין הגבלה על מספר התוויות של אשכולות שאפשר להחיל על כל המשאבים בפרויקט.
שימושים נפוצים בתוויות של אשכולות
ריכזנו כאן כמה תרחישי שימוש נפוצים בתוויות של אשכולות:
תוויות של צוותים או מרכזי עלות: אפשר להוסיף תוויות לפי צוות או מרכז עלות כדי להבחין בין אשכולות שנמצאים בבעלות של צוותים שונים (לדוגמה,
team:researchו-team:analytics). אפשר להשתמש בסוג הזה של תוויות לצורך הנהלת חשבונות או תקצוב.תוויות של אשכול רכיבים: לדוגמה,
component:redis,component:frontend,component:ingestו-component:dashboard.תוויות של סביבה או של אשכול בשלב מסוים: לדוגמה,
environment:productionו-environment:test.תוויות של אשכולות מדינה: לדוגמה,
state:active,state:readytodeleteו-state:archive.תוויות של קבוצות בעלות: משמשות לזיהוי הצוותים שאחראים על הפעולות, לדוגמה:
team:shopping-cart.
- פירוט החיוב: אפשר להשתמש בתוויות של מאגרי צמתים כדי לפרט את החיובים לפי מאגר צמתים. מידע נוסף מפורט במאמר צפייה בפירוט של עלויות אשכול.
אנחנו לא ממליצים ליצור מספר גדול של תוויות ייחודיות, למשל עבור חותמות זמן או ערכים נפרדים לכל קריאה ל-API. הבעיה בגישה הזו היא שאם הערכים משתנים לעיתים קרובות או אם יש מפתחות שמבלגנים את הקטלוג, קשה לסנן את המשאבים ולדווח עליהם בצורה יעילה.
תוויות ותגים
אפשר להשתמש בתוויות כאנוטציות שאפשר להריץ עליהן שאילתות לגבי משאבים, אבל אי אפשר להשתמש בהן כדי להגדיר תנאים במדיניות. תגים מאפשרים להגדיר תנאי לאישור או לדחייה של כללי מדיניות אם תג ספציפי מצורף או לא מצורף למשאב, וכך מספקים שליטה פרטנית בכללי המדיניות. מידע נוסף מופיע במאמר סקירה כללית על תגים.
תוויות שהוחלו באופן אוטומטי
GKE מחיל באופן אוטומטי כמה תוויות על משאבי האשכול.
לדוגמה, GKE מחיל תוויות על מכונות וירטואליות של Compute Engine, על דיסקים לאחסון מתמיד ועל מאיצים (TPU).
בטבלה הבאה מפורטות התוויות ש-GKE מוסיף באופן אוטומטי למשאבים:
| תווית | משאבים שמוחלים |
|---|---|
goog-gke-node |
מכונה וירטואלית ב-Compute Engine שמהווה בסיס לצומת GKE. |
goog-gke-volume |
דיסק אחסון מתמיד (persistent disk) ב-Compute Engine שמחובר למכונה וירטואלית בבסיס צומת GKE. |
goog-gke-tpu |
Cloud TPU ב-GKE. |
goog-k8s-cluster-name |
מכונה וירטואלית ב-Compute Engine ודיסקים מתמידים שמצורפים למכונה וירטואלית שמהווה בסיס לצומת GKE. |
goog-k8s-cluster-location |
מכונה וירטואלית ב-Compute Engine ודיסקים מתמידים שמצורפים למכונה וירטואלית שמהווה בסיס לצומת GKE. |
goog-k8s-node-pool-name |
מכונות וירטואליות של Compute Engine ודיסקי האתחול שלהן שמהווים בסיס לצומת GKE. |
goog-fleet-project |
מכונה וירטואלית ב-Compute Engine ודיסקים קשיחים שמצורפים למכונה וירטואלית שמהווה בסיס לצומת GKE, אם האשכול רשום ב-Fleet. |
goog-gke-accelerator-type |
מאגר צמתים של GKE. |
goog-gke-tpu-node-pool-type |
מאגר צמתים של GKE. |
goog-gke-node-pool-provisioning-model |
מאגר צמתים של GKE. |
אל תערכו או תמחקו תוויות שמורות. כל שינוי שתבצעו בתוויות שמורות יתעדכן אוטומטית.
הפצה של תוויות
ב-GKE, אפשר להחיל תוויות על אשכולות ועל מאגרי צמתים במצב Standard. כשנותנים תווית לאשכול, התווית מועברת לכל המשאבים הנפרדים באשכול, כמו צמתים, מכונות ודיסקים מתמידים. כשמגדירים תווית למאגר צמתים, התווית מועברת לכל המשאבים האישיים של מאגר הצמתים, כמו מופעים ודיסקים קשיחים קבועים. באשכולות רגילים, אם יש סתירה בין תוויות האשכול לבין תוויות מאגר הצמתים, למשל אם מפתח התווית זהה אבל הערך שונה, תוויות מאגר הצמתים מבטלות את תוויות האשכול.
כל התוויות שאתם מוסיפים לאשכולות או למאגרי הצמתים מועברות באמצעות תהליך רקע שפועל מדי שעה. יכול להיות שיעבור עד שעה מרגע הוספת התווית ועד שהיא תופיע בכל המשאבים שמשויכים לאותו אשכול. בנוסף, התוויות מועברות רק למכונות Compute Engine ולדיסקים לאחסון מתמיד שמצורפים למכונות Compute Engine. משאבים אחרים כמו עומסי עבודה, כללי העברה, כתובות IP ודיסקים קשיחים קבועים שלא צורפו לא מקבלים תווית.
באשכולות Standard, כשמחילים תוויות של אשכולות ומאגרי צמתים על משאבי Compute Engine, אפשר לשנות את תוויות המשאבים באופן ידני בלי ש-GKE יבצע התאמה של השינויים האלה. באשכולות במצב Autopilot, אי אפשר לשנות ידנית את התוויות במשאבי Compute Engine כי GKE מנהל את הצמתים בשבילכם. עם זאת, מומלץ לנהל את התוויות האלה דרך GKE. תוויות קיימות במשאבי Compute Engine האלה לא יוסרו על ידי GKE, אלא אם הן סותרות את התוויות שמוחלות באופן אוטומטי.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
קבלת טביעת אצבע של תווית לבקשות API
אם אתם משתמשים במסוף Google Cloud או ב-CLI של gcloud, אתם יכולים לדלג על השלב הזה.
כשמעדכנים או מוסיפים תוויות לאשכול באמצעות GKE API, צריך לספק את טביעת האצבע העדכנית של התוויות באשכול עם הבקשה כדי למנוע התנגשויות עם בקשות אחרות.
כדי לקבל את טביעת האצבע של התווית העדכנית של האשכול, מריצים בקשת GET לאשכול המתאים. לדוגמה:
GET https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster
הפלט אמור להיראות כך:
200 OK
{
"name": "mycluster",
"description": "production-cluster",
"initialNodeCount": 3,
...
"resourceLabels": {
"environment": "production",
...
},
"labelFingerprint": "p1ty_9HoBk0="
}
בפלט הזה, המאפיין labelFingerprint הוא טביעת האצבע של תווית האשכול.
יצירת אשכול עם תוויות
אפשר ליצור אשכולות Autopilot ואשכולות רגילים עם תוויות באמצעות ה-CLI של gcloud, מסוף Google Cloud , GKE API או Terraform.
gcloud
מריצים את הפקודה הבאה כדי ליצור אשכול Autopilot עם תוויות:
gcloud container clusters create-auto CLUSTER_NAME \
--labels=KEY=VALUE
לחלופין, מריצים את הפקודה הבאה כדי ליצור אשכול רגיל עם תוויות:
gcloud container clusters create CLUSTER_NAME \
--labels=KEY=VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
KEY: המפתח של צמד המפתח/ערך של התווית. -
VALUE: הערך של צמד המפתח/ערך של התווית.
המסוף
כדי להוסיף תוויות כשיוצרים את האשכול:
נכנסים לדף Create an Autopilot cluster במסוף Google Cloud .
כניסה לדף Create an Autopilot cluster
אפשר גם ליצור אשכול רגיל כדי להשלים את המשימה הזו.
מגדירים את האשכול.
בחלונית הניווט, בקטע Cluster, לוחצים על Metadata.
לוחצים על add הוספת תווית.
הוספת תוויות.
לוחצים על יצירה.
API
כדי לכלול תווית כשיוצרים את האשכול, צריך לציין את האובייקט resourceLabels בתוך האובייקט cluster שמספקים ל-projects.zones.clusters.create.
Terraform
כדי ליצור אשכול Autopilot עם תוויות באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
כדי ליצור אשכול רגיל עם תוויות באמצעות Terraform, אפשר לעיין בדוגמה הבאה:
מידע נוסף על שימוש ב-Terraform זמין במאמר תמיכה ב-Terraform ל-GKE.
הוספה או עדכון של תוויות לצבירי נתונים קיימים
אפשר להוסיף או לעדכן תוויות עבור קלאסטרים קיימים של Autopilot ושל Standard באמצעות ה-CLI של gcloud,Google Cloud המסוף או GKE API.
gcloud
מריצים את הפקודה הבאה:
gcloud container clusters update CLUSTER_NAME \
--location =CONTROL_PLANE_LOCATION \
--update-labels=KEY=VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים. -
KEY: המפתח של צמד המפתח/ערך של התווית. -
VALUE: הערך של צמד המפתח/ערך של התווית.
עדכון התווית יגרום להחלפת התוויות הקיימות באשכול. אם לקלאסטר יש תוויות קיימות שאתם רוצים לשמור, אתם צריכים לכלול את התוויות האלה יחד עם התוויות החדשות שאתם רוצים להוסיף.
המסוף
כדי להוסיף או לעדכן תוויות:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
בדף פרטי האשכול, מסמנים את תיבות הסימון לצד אשכול אחד או יותר שרוצים לשנות.
לוחצים על תוויות.
להוסיף או לעדכן תוויות.
לוחצים על Save.
API
שולחים POSTבקשה לשיטה resourceLabels של האשכול עם טביעת האצבע העדכנית ורשימה מלאה של התוויות להחלה.
בדומה למטא-נתונים ולתגים, אם לאשכול יש תוויות קיימות שאתם רוצים לשמור, אתם צריכים לכלול את התוויות האלה בבקשה יחד עם התוויות החדשות שאתם רוצים להוסיף.
לדוגמה, קטע הקוד הבא שולח בקשה לשיטה resourceLabels:
POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels
{
"resourceLabels": {
"environment": "production",
"an-existing-tag": ""
},
"labelFingerprint": "42WmSpB8rSM="
}
הסרת תוויות של אשכולות
אפשר להסיר תוויות מאשכולות Autopilot ומאשכולות רגילים באמצעות ה-CLI של gcloud, מסוף Google Cloud או GKE API.
gcloud
מריצים את הפקודה update עם הדגל --remove-labels:
gcloud container clusters update CLUSTER_NAME \
--remove-labels=KEYS
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
KEYS: רשימה מופרדת בפסיקים של מפתחות של התוויות שרוצים להסיר.
המסוף
כדי להסיר תוויות:
עוברים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, מסמנים את התיבות לצד האשכולות שרוצים לשנות.
לוחצים על תוויות.
לצד השדה ערך של התוויות שרוצים למחוק, לוחצים על delete מחיקת פריט.
לוחצים על Save.
API
שולחים בקשת POST אל ה-method resourceLabels עבור האשכול המתאים. מציינים את labelsFingerprint הנוכחי ומספקים רשימה ריקה של תוויות כדי להסיר את כל התוויות, או מספקים רשימה של התוויות שרוצים לשמור ומשמיטים את התוויות שרוצים להסיר. לדוגמה:
Request
POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels
{
"resourceLabels": { },
"labelFingerprint": "42WmSpB8rSM="
}
יצירת מאגר צמתים רגיל עם תוויות
אתם יכולים ליצור מאגר צמתים עם תוויות באשכול רגיל באמצעות ה-CLI של gcloud, מסוף Google Cloud או GKE API.
gcloud
מריצים את הפקודה הבאה:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--labels=KEY=VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים. -
CLUSTER_NAME: שם האשכול. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים. -
KEY: המפתח של צמד המפתח/ערך של התווית. -
VALUE: הערך של צמד המפתח/ערך של התווית.
API
כדי לכלול תווית כשיוצרים מאגר צמתים, צריך לציין את האובייקט resourceLabels בתוך אובייקט מאגר הצמתים שמספקים ל-projects.zones.clusters.nodePools.create.
המסוף
כדי להוסיף תוויות למאגר צמתים חדש, מבצעים את הפעולות הבאות:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
בדף פרטי האשכול, לוחצים על השם של האשכול שרוצים לשנות.
לוחצים על add_box הוספת מאגר צמתים.
מגדירים את מאגר הצמתים החדש.
בחלונית הניווט, לוחצים על מטא-נתונים.
לוחצים על add הוספת תווית.
הוספת תוויות.
לוחצים על יצירה.
הוספה או עדכון של תוויות למאגר צמתים קיים
אפשר להוסיף או לעדכן תוויות למאגרי צמתים קיימים באמצעות ה-CLI של gcloud, Google Cloud המסוף או GKE API.
השינוי הזה מחייב ליצור מחדש את הצמתים, מה שעלול לשבש את עומסי העבודה הפעילים. פרטים על השינוי הספציפי הזה מופיעים בשורה המתאימה בטבלה שינויים ידניים שיוצרים מחדש את הצמתים באמצעות אסטרטגיית שדרוג צמתים בלי להתחשב במדיניות התחזוקה. מידע נוסף על עדכוני צמתים זמין במאמר תכנון שיבושים בעדכון צמתים.
gcloud
מריצים את הפקודה הבאה:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--labels=KEY=VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים -
CLUSTER_NAME: שם האשכול. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים. -
KEY: המפתח של צמד המפתח/ערך של התווית. -
VALUE: הערך של צמד המפתח/ערך של התווית.
עדכון התווית מחליף את כל התוויות הקיימות במאגר הצמתים. אם למאגר הצמתים יש תוויות קיימות שרוצים לשמור, צריך לכלול את התוויות האלה יחד עם התוויות החדשות שרוצים להוסיף.
API
כדי לכלול תווית כשמשנים את מאגר הצמתים, צריך לציין את האובייקט resourceLabels
בתוך אובייקט מאגר הצמתים שמספקים ל-projects.zones.clusters.nodePools.update.
המסוף
כדי להוסיף או לעדכן תוויות:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שמכיל את מאגר הצמתים שרוצים לשנות.
בקטע Node Pools (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לשנות.
לוחצים על editעריכה.
בקטע תוויות, מוסיפים או מעדכנים תוויות.
לוחצים על Save.
הסרת תוויות של מאגר צמתים
אפשר להסיר תוויות ממאגרי צמתים באמצעות ה-CLI של gcloud, Google Cloud המסוף או GKE API.
gcloud
מריצים את הפקודה הבאה:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--labels=KEY=VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים. -
CLUSTER_NAME: שם האשכול. -
CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים. -
KEY: המפתח של צמד המפתח/ערך של התווית. -
VALUE: הערך של צמד המפתח/ערך של התווית.
עדכון התווית מחליף את כל התוויות הקיימות במאגר הצמתים. אם למאגר הצמתים יש תוויות קיימות שרוצים לשמור, צריך להחריג את התוויות שרוצים להסיר. כדי להסיר את כל התוויות, משתמשים ב---labels= בלי צמדי מפתח/ערך.
API
כדי לכלול תווית כשמשנים את מאגר הצמתים, צריך לציין את האובייקט resourceLabels בתוך אובייקט מאגר הצמתים שמספקים ל-projects.zones.clusters.nodePools.update.
כדי להסיר את כל התוויות, צריך לספק רשימה ריקה של תוויות. כדי לשמור תוויות, צריך לספק רשימה של התוויות שרוצים לשמור. משמיטים את התוויות שרוצים להסיר.
המסוף
כדי להסיר תוויות ממאגר צמתים:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שמכיל את מאגר הצמתים שרוצים לשנות.
בקטע Node Pools (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לשנות.
לצד השדה ערך של התוויות שרוצים למחוק, לוחצים על delete מחיקת פריט.
לוחצים על Save.