בדף הזה מוסבר על תוויות של אשכולות ושל מאגרי צמתים ב-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 ודיסקי אחסון מתמידים (persistent disk) שמצורפים למכונה וירטואלית שמהווה בסיס לצומת GKE. |
goog-k8s-cluster-location |
מכונה וירטואלית של Compute Engine ודיסקים לאחסון מתמיד שמחוברים למכונה וירטואלית שנמצאת בבסיס של צומת GKE. |
goog-k8s-node-pool-name |
מכונות וירטואליות של Compute Engine ודיסקי האתחול שלהן, שעומדים בבסיס של צומת GKE. |
goog-fleet-project |
מכונה וירטואלית ב-Compute Engine ודיסקי אחסון מתמידים (persistent disk) שמחוברים למכונה וירטואלית בבסיס של צומת GKE, אם האשכול רשום ב-Fleet. |
goog-gke-accelerator-type |
מאגר צמתים של GKE. |
goog-gke-tpu-node-pool-type |
מאגר צמתים של GKE. |
goog-gke-node-pool-provisioning-model |
מאגר צמתים של GKE. |
goog-gke-node-pool-protection-tier |
מאגר צמתים של GKE. |
אל תערכו או תמחקו תוויות שמורות. כל שינוי שתבצעו בתוויות שמורות יתעדכן אוטומטית.
הפצה של תוויות
ב-GKE, אפשר להחיל תוויות על אשכולות ועל מאגרי צמתים במצב Standard. כשנותנים תווית לאשכול, התווית מועברת לכל המשאבים הנפרדים של האשכול, כמו צמתים, מכונות ודיסקי אחסון מתמידים (persistent disks). כשמגדירים תווית למאגר צמתים, התווית מועברת לכל המשאבים האישיים של מאגר הצמתים, כמו מופעים ודיסקי אחסון מתמידים (persistent disk). באשכולות Standard, אם יש התנגשות בין תוויות האשכול לתוויות של מאגר הצמתים, למשל כשמפתח התווית זהה אבל הערך שונה, תוויות מאגר הצמתים מבטלות את תוויות האשכול.
כל התוויות שמוסיפים לאשכולות או למאגרי הצמתים מופצות באמצעות תהליך ברקע שפועל מדי שעה. יכולה לעבור עד שעה עד שתווית תופיע בכל המשאבים שמשויכים לאשכול מסוים. בנוסף, תוויות מועברות רק למכונות של Compute Engine ולדיסקים לאחסון מתמיד שמצורפים למכונות של Compute Engine. משאבים אחרים כמו עומסי עבודה, כללי העברה, כתובות IP ו-Persistent Disks לא מחוברים לא מתויגים.
באשכולות במצב 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: הערך של צמד המפתח/ערך של התווית.
המסוף
כדי להוסיף תוויות כשיוצרים את האשכול:
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על Create, ובקטע Standard או Autopilot לוחצים על Configure.
מגדירים את האשכול.
בחלונית הניווט, לוחצים על הגדרות מתקדמות ואז מבצעים אחת מהפעולות הבאות:
- Autopilot: מרחיבים את Metadata, לוחצים על add Add label ומוסיפים את התוויות.
- רגיל: בשורה מאפייני מטא-נתונים, לוחצים על edit עריכת ההגדרה, לוחצים על add הוספת תווית, מוסיפים את התוויות ולוחצים על שמירה.
לוחצים על יצירה.
API
כדי לכלול תווית כשיוצרים את האשכול, מציינים את האובייקט resourceLabels בתוך האובייקט cluster שמספקים ל-projects.zones.clusters.create.
Terraform
כדי ליצור אשכול Autopilot עם תוויות באמצעות Terraform, אפשר להיעזר בדוגמה הבאה:
כדי ליצור אשכול Standard עם תוויות באמצעות 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 של האשכול עם טביעת האצבע העדכנית ורשימה מלאה של התוויות להחלה.
בדומה למטא-נתונים ולתגים, אם לאשכול יש תוויות קיימות שרוצים לשמור, צריך לכלול את התוויות האלה בבקשה יחד עם התוויות החדשות שרוצים להוסיף.
לדוגמה, קטע הקוד הבא שולח בקשה ל-method 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 ובמצב Standard באמצעות ה-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="
}
יצירת מאגר צמתים רגיל עם תוויות
אתם יכולים ליצור מאגר צמתים עם תוויות באשכול Standard באמצעות ה-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 .
בדף Cluster details, לוחצים על שם האשכול שרוצים לשנות.
לוחצים על הכרטיסייה Nodes (צמתים).
לוחצים על add_box Create user-managed node pool (יצירת מאגר צמתים בניהול המשתמש).
מגדירים את מאגר הצמתים החדש.
בחלונית הניווט, לוחצים על מטא-נתונים.
לוחצים על 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 Delete item ליד השדה Value של התוויות שרוצים למחוק.
לוחצים על Save.