כשיוצרים אשכול Kubernetes עם בידוד פיזי ב-Google Distributed Cloud (GDC), מספר הצמתים וסוג הצמתים שמציינים יוצרים את מאגר הצמתים הראשון של האשכול. אתם יכולים לבצע את המשימות הבאות שקשורות למאגר צמתים עבור אשכול קיים, כשהדרישות שלו מבחינת מחשוב משתנות:
הוספת מאגר צמתים חדש: מוסיפים מאגרי צמתים חדשים ככל שהביקוש לעומסי העבודה של האשכול גדל.
הצגת מאגר צמתים: אפשר לראות את המאפיינים והמצב של מאגרי הצמתים הקיימים.
שינוי הגודל של מאגר צמתים: הגדלה או הקטנה ידנית של מאגרי הצמתים כדי להתאים לתנודות בתנועת עומסי העבודה.
מחיקת מאגר צמתים: כדאי להסיר מאגרי צמתים אם הביקוש לעומסי העבודה באשכול יורד, או אם רוצים למחוק סוגי מכונות שכבר לא מתאימים לפעולות הקשורות למאגר.
מידע נוסף על מאגרי צמתים באשכול זמין במאמר מידע על צמתים.
המסמך הזה מיועד למפתחי אפליקציות בקבוצת מפעיל האפליקציות ולאדמינים ב-IT בקבוצת אדמינים של הפלטפורמה, שאחראים על ניהול אשכולות Kubernetes בארגון שלהם. מידע נוסף זמין במאמר בנושא קהלים ב-GDC עם air gap.
לפני שמתחילים
כדי להשלים את המשימות שמתוארות במאמר הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
כדי לקבל את ההרשאות שדרושות לניהול מאגרי צמתים באשכול Kubernetes, צריך להיות לכם תפקידים ספציפיים. התפקידים שנדרשים לכם תלויים בסוג האשכול שבו אתם עובדים: אשכול משותף בהיקף הארגון או אשכול רגיל בהיקף הפרויקט. מידע נוסף זמין במאמר בנושא הגדרות של אשכול Kubernetes.
תפקידים משותפים באשכול
כדי ליצור, למחוק, לערוך או לראות את מאגרי הצמתים של אשכול משותף, צריך לפנות לאדמין IAM בארגון ולבקש את התפקיד אדמין של אשכול משתמשים (user-cluster-admin). התפקיד הזה לא קשור למרחב שמות.
תפקידים סטנדרטיים באשכול
פנו לאדמין של IAM בפרויקט כדי לבקש את התפקידים הבאים:
אדמין רגיל של אשכול (
standard-cluster-admin): יצירה, מחיקה, עריכה או צפייה במאגרי הצמתים של אשכול רגיל.מפתח אשכול (
cluster-developer): יצירה, מחיקה, עריכה או צפייה באשכול רגיל. התפקיד הזה נדרש כדי להציג את פרטי מאגר הצמתים של האשכול במסוף GDC.
התפקידים האלה קשורים למרחב השמות של הפרויקט.
הכנת הסביבה
כדי להריץ פקודות מול אשכול Kubernetes באמצעות ה-API, צריך לוודא שיש לכם את המשאבים הבאים:
מאתרים את שם אשכול Kubernetes או שואלים את אחד מחברי קבוצת האדמינים של הפלטפורמה מה שם האשכול.
משתמשים בשם של אשכול Kubernetes כדי להחליף את
KUBERNETES_CLUSTER_NAMEבהוראות האלה.נכנסים לחשבון ויוצרים את קובץ ה-kubeconfig של שרת ה-API לניהול עבור אשכול Kubernetes.
משתמשים בנתיב kubeconfig של שרת ה-API לניהול כדי להחליף את
MANAGEMENT_API_SERVERבהוראות האלה.
הוספת מאגר צמתים
כדי להוסיף מאגר צמתים לאשכול Kubernetes קיים, מבצעים את השלבים הבאים:
המסוף
בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.
אשכולות רגילים הם בהיקף הפרויקט, ואשכולות משותפים הם בהיקף הארגון. בוחרים את ההיקף הנכון כדי לראות את הסוג המתאים של אשכול Kubernetes.
בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters.
לוחצים על האשכול ברשימת האשכולות. יוצג הדף Cluster details.
בוחרים באפשרות Node pools > Add node pool (מאגרי צמתים > הוספת מאגר צמתים).
נותנים שם למאגר הצמתים. אי אפשר לשנות את השם אחרי שיוצרים את מאגר הצמתים.
מציינים את מספר צמתי העובדים שרוצים ליצור במאגר הצמתים.
בוחרים את סוג המכונה שהכי מתאים לדרישות של עומס העבודה. סוגי המכונות מוצגים בהגדרות הבאות:
- סוג המכונה
- vCPU
- זיכרון
לוחצים על Save.
API
פותחים את מפרט המשאב המותאם אישית
ClusterבאמצעותkubectlCLI בעורך האינטראקטיבי:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERמחליפים את מה שכתוב בשדות הבאים:
-
KUBERNETES_CLUSTER_NAME: שם האשכול. -
KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. במקרה של אשכולות משותפים, צריך להשתמש במרחב השמותplatform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול. -
MANAGEMENT_API_SERVER: נתיב kubeconfig של שרת ה-API האזורי שבו מתארח אשכול Kubernetes.
-
מוסיפים רשומה חדשה בקטע
nodePools:nodePools: # Several lines of code are omitted here. - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEMEמחליפים את מה שכתוב בשדות הבאים:
-
MACHINE_TYPE: סוג המכונה של צמתי העובדים במאגר הצמתים. אפשר לראות את סוגי המכונות הזמינים כדי להבין אילו אפשרויות זמינות להגדרה. -
NODE_POOL_NAME: שם מאגר הצמתים. -
NUMBER_OF_WORKER_NODES: מספר צמתי העובדים שיוקצו במאגר הצמתים. -
TAINTS: ההכתמות שיחולו על הצמתים במאגר הצמתים הזה. זהו שדה אופציונלי. -
LABELS: התוויות שיוחלו על הצמתים במאגר הצמתים הזה. הוא מכיל רשימה של צמדי מפתח/ערך. השדה הזה אופציונלי. -
GPU_PARTITION_SCHEME: סכמת החלוקה של ה-GPU, אם מריצים עומסי עבודה של GPU. לדוגמה,mixed-2. אם השדה הזה לא מוגדר, ה-GPU לא מחולק למחיצות. לרשימת פרופילים זמינים של Multi-Instance GPU (MIG), אפשר לעיין במאמר בנושא פרופילים נתמכים של MIG.
-
שומרים את הקובץ ויוצאים מהעורך.
הצגת מאגרי הצמתים
כדי לראות את מאגרי הצמתים הקיימים באשכול Kubernetes, מבצעים את השלבים הבאים:
המסוף
בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.
אשכולות רגילים הם בהיקף הפרויקט, ואשכולות משותפים הם בהיקף הארגון. בוחרים את ההיקף הנכון כדי לראות את הסוג המתאים של אשכול Kubernetes.
בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters.
לוחצים על האשכול ברשימת האשכולות. יוצג הדף Cluster details.
בוחרים באפשרות Node pools (מאגרי צמתים).
מוצגת רשימה של מאגרי הצמתים שפועלים באשכול. בדף הזה אפשר לנהל את מאגרי הצמתים של האשכול.
API
כדי לראות את מאגרי הצמתים של אשכול Kubernetes ספציפי:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatusesמחליפים את מה שכתוב בשדות הבאים:
-
KUBERNETES_CLUSTER_NAME: שם האשכול. -
KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. במקרה של אשכולות משותפים, צריך להשתמש במרחב השמותplatform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול.
הפלט אמור להיראות כך:
[ { "conditions": [ { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "NodepoolReady", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "ReconciliationCompleted", "status": "False", "type": "Reconciling" } ], "name": "worker-node-pool", "readyNodes": 3, "readyTimestamp": "2023-08-31T18:59:46Z", "reconcilingNodes": 0, "stalledNodes": 0, "unknownNodes": 0 } ]-
שינוי הגודל של מאגרי צמתים
אפשר לשנות את הגודל של מאגרי צמתים באשכול Kubernetes באופן ידני על ידי הגדלה או הקטנה של המאגר. אי אפשר לבחור צומת ספציפי להסרה כשמצמצמים את מספר הצמתים במאגר.
כדי לשנות את גודל מאגר הצמתים באשכול קיים, מבצעים את השלבים הבאים:
המסוף
בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.
אשכולות רגילים הם בהיקף הפרויקט, ואשכולות משותפים הם בהיקף הארגון. בוחרים את ההיקף הנכון כדי לראות את הסוג המתאים של אשכול Kubernetes.
במרכז הבקרה, בוחרים את הפרויקט שבו נמצא האשכול שרוצים לערוך.
בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters.
בוחרים את שם האשכול שאליו משויך מאגר הצמתים. יופיע הדף Cluster details.
לוחצים על הכרטיסייה Node pools (מאגרי צמתים).
לוחצים על סמל edit העריכה של מאגר הצמתים שרוצים לשנות את הגודל שלו. מוצגת ההנחיה עריכת מאגר הצמתים.
מעדכנים את השדה מספר הצמתים כך שישקף את מספר הצמתים החדש שנדרש במאגר הצמתים. אתם יכולים להגדיל או להקטין את מספר הצמתים בהתאם לדרישות של עומס העבודה.
לוחצים על Save.
חוזרים לכרטיסייה Node pools (מאגרי צמתים) של האשכול ומוודאים שמאגר הצמתים שגודלו שונה נמצא בסטטוס
Readyוכולל את מספר הצמתים הנכון. יכול להיות שיחלפו כמה דקות עד שמספר הצמתים במאגר יגדל בהתאם למפרט.
API
פותחים את
Clusterהמפרט של המשאב המותאם אישית באמצעות ה-CLI של kubectl בעורך האינטראקטיבי:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERמחליפים את מה שכתוב בשדות הבאים:
-
KUBERNETES_CLUSTER_NAME: שם האשכול שמארח את מאגר הצמתים. -
KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. במקרה של אשכולות משותפים, צריך להשתמש במרחב השמותplatform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול. -
MANAGEMENT_API_SERVER: נתיב kubeconfig של שרת ה-API האזורי שבו מתארח אשכול Kubernetes.
-
מעדכנים את השדה
nodeCountשל מאגר הצמתים כדי לשנות את הגודל:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODESמחליפים את
NUMBER_OF_WORKER_NODESבמספר המעודכן של צמתי העובדים שצריך להקצות במאגר הצמתים.שומרים את הקובץ ויוצאים מהעורך.
כדי לוודא שהשלמתם את שינוי גודל הצומת, בודקים את ההגדרות של מאגר הצמתים:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE -o json \ --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatusesמוודאים שהמספר
readyNodesמשקף את מספר הצמתים שהגדרתם עבור מאגר הצמתים. יכול להיות שיחלפו כמה דקות עד שמאגר הצמתים יתרחב בהתאם למפרט שלכם.
מחיקת מאגר צמתים
כשמוחקים מאגר צמתים, הצמתים והמסלולים אליהם נמחקים. הצמתים האלה מוציאים ומזמנים מחדש את כל הפודים שפועלים בהם. אם ל-Pods יש בוררי צמתים ספציפיים, יכול להיות שהם יישארו במצב שבו אי אפשר לתזמן אותם אם אין צומת אחר באשכול שעומד בקריטריונים.
לפני שמוחקים מאגר צמתים, חשוב לוודא שיש לפחות שלושה צמתי עובדים כדי להבטיח שלקלאסטר יש מספיק נפח אחסון לחישוב כדי לפעול בצורה יעילה.
כדי למחוק מאגר צמתים, מבצעים את השלבים הבאים:
המסוף
בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.
אשכולות רגילים הם בהיקף הפרויקט, ואשכולות משותפים הם בהיקף הארגון. בוחרים את ההיקף הנכון כדי לראות את הסוג המתאים של אשכול Kubernetes.
בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters.
לוחצים על האשכול שמארח את מאגר הצמתים שרוצים למחוק.
בוחרים באפשרות Node pools (מאגרי צמתים).
לוחצים על delete מחיקה לצד מאגר הצמתים שרוצים למחוק.
API
פותחים את
Clusterהמפרט של המשאב המותאם אישית באמצעות ה-CLI של kubectl בעורך האינטראקטיבי:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERמחליפים את מה שכתוב בשדות הבאים:
-
KUBERNETES_CLUSTER_NAME: שם האשכול. -
KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. במקרה של אשכולות משותפים, צריך להשתמש במרחב השמותplatform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול. -
MANAGEMENT_API_SERVER: נתיב kubeconfig של שרת ה-API האזורי שבו מתארח אשכול Kubernetes.
-
מסירים את הרשומה של מאגר הצמתים מהקטע
nodePools. לדוגמה, בקטע הקוד הבא, צריך להסיר את השדותmachineTypeName,nameו-nodeCount:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3חשוב להסיר את כל השדות של מאגר הצמתים שרוצים למחוק.
שומרים את הקובץ ויוצאים מהעורך.