מידע על מאגרי צמתים
מאגר צמתים הוא קבוצה של צמתים באותו אשכול, שלכולם יש את אותה הגדרה.
בדרך כלל, מגדירים מאגרי צמתים נפרדים כשרוצים להשתמש בתרמילים עם דרישות שונות של משאבים.
לדוגמה, תרמילי apigee-cassandra דורשים אחסון מתמשך, בעוד שתרמילי Apigee Hybrid אחרים לא דורשים זאת.
במאמר הזה מוסבר איך להגדיר מאגרי צמתים ייעודיים להתקנה היברידית.
שימוש ב-nodeSelectors שמוגדרים כברירת מחדל
השיטה המומלצת היא להגדיר שתי קבוצות ייעודיות של צמתים: אחת בשביל פודים של Cassandra ואחת בשביל כל שאר הפודים של זמן הריצה. אם משתמשים בהגדרות ברירת המחדל של nodeSelector, תוכנת ההתקנה תקצה את ה-pods של Cassandra למאגר צמתים stateful בשם apigee-data, ואת כל שאר ה-pods למאגר צמתים stateless בשם apigee-runtime. כל מה שצריך לעשות הוא ליצור מאגרי צמתים עם השמות האלה, ו-Apigee hybrid יטפל בפרטים של תזמון הפודים בשבילכם:
| שם ברירת המחדל של מאגר הצמתים | תיאור |
|---|---|
apigee-data |
מאגר צמתים עם שמירת מצב. |
apigee-runtime |
מאגר צמתים ללא שמירת מצב. |
בהמשך מוצגת הגדרת ברירת המחדל של nodeSelector. המאפיין apigeeData
מציין מאגר צמתים עבור קבוצות ה-Pod של Cassandra. apigeeRuntime מציין את מאגר הצמתים של כל שאר הפודים. אפשר לשנות את הגדרות ברירת המחדל האלה בקובץ השינויים, כמו שמוסבר בהמשך המאמר:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
כדי לוודא שה-Pods מתוזמנים בצמתים הנכונים, צריך ליצור שני מאגרי צמתים עם השמות apigee-data ו-apigee-runtime.
המאפיין requiredForScheduling
בקטע ההגדרות nodeSelector יש מאפיין בשם requiredForScheduling:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
אם הערך מוגדר ל-false, הפודים הבסיסיים יתוזמנו בין אם מאגרי הצמתים מוגדרים עם השמות הנדרשים ובין אם לא. כלומר, אם שכחתם ליצור מאגרי צמתים או אם בטעות נתתם למאגר צמתים שם שאינו apigee-runtime או apigee-data, ההתקנה של סביבת זמן הריצה ההיברידית תצליח. מערכת Kubernetes
תחליט איפה להריץ את הפודים.
אם מגדירים את requiredForScheduling ל-true (ברירת המחדל), ההתקנה תיכשל אלא אם יש מאגרי צמתים שתואמים למפתחות ולערכים המוגדרים של nodeSelector.
שימוש בשמות מותאמים אישית של מאגרי צמתים
אם אתם לא רוצים להשתמש במאגרי צמתים עם שמות ברירת המחדל, אתם יכולים ליצור מאגרי צמתים עם שמות בהתאמה אישית ולציין את השמות האלה בקטע nodeSelector. לדוגמה, בהגדרה הבאה, פודים של Cassandra מוקצים למאגר בשם my-cassandra-pool, וכל שאר הפודים מוקצים למאגר בשם my-runtime-pool:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "my-runtime-pool" apigeeData: key: "cloud.google.com/gke-nodepool" value: "my-cassandra-pool"
שינוי מאגר הצמתים לרכיבים ספציפיים ב-GKE
אפשר גם לעקוף את ההגדרות של מאגר הצמתים ברמת הרכיב הבודד. לדוגמה, ההגדרה הבאה מקצה את מאגר הצמתים עם הערך apigee-custom לרכיב runtime:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-custom
אפשר לציין מאגר צמתים מותאם אישית בכל אחד מהרכיבים הבאים:
istiomartsynchronizerruntimecassandraudcalogger
הגדרת מאגר הצמתים ב-GKE וב-Google Distributed Cloud
בפלטפורמות GKE ו-Google Distributed Cloud (GDC), למאגרי הצמתים צריך להיות שם ייחודי שאתם מציינים כשאתם יוצרים את המאגרים, ומערכות GKE/GDC מתייגות אוטומטית כל צומת בתווית הבאה:
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
אם יוצרים מאגרי צמתים בשמות apigee-data ו-apigee-runtime, לא צריך לבצע הגדרות נוספות. אם רוצים להשתמש בשמות צמתים בהתאמה אישית, אפשר לעיין במאמר בנושא שימוש בשמות מותאמים אישית של מאגרי צמתים.
הגדרת מאגר צמתים בפלטפורמות אחרות של Kubernetes.
מידע על תיוג וניהול של מאגרי צמתים זמין במסמכי התיעוד של פלטפורמת Kubernetes.
מאגרי הצמתים מתייגים אוטומטית את צמתי העובדים כברירת מחדל, אבל אפשר גם לתייג את צמתי העובדים באופן ידני באמצעות השלבים הבאים:
- מריצים את הפקודה הבאה כדי לקבל רשימה של צמתי העובדים באשכול:
kubectl -n APIGEE_NAMESPACE get nodes
אם אתם משתמשים בתוויות מותאמות אישית של מאגר צמתים, ודאו שכל צמד מפתח/ערך הוא ייחודי. לדוגמה:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "pool1-key" value: "pool1-label" apigeeData: key: "pool2-key" value: "pool2-label"שינוי ברירת המחדל של מאגר הצמתים לרכיבים ספציפיים
אפשר גם לעקוף את ההגדרות של מאגר הצמתים ברמת הרכיב הבודד. לדוגמה, ההגדרה הבאה מקצה את מאגר הצמתים עם הערך
apigee-customלרכיבruntime:runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
אפשר לציין מאגר צמתים מותאם אישית בכל אחד מהרכיבים הבאים:
apigeeingressgatewaycassandraloggermartmetricsruntimesynchronizerudca