כשיוצרים אשכול Kubernetes עם בידוד פיזי ב-Google Distributed Cloud (GDC), מספר הצמתים וסוג הצמתים שמציינים יוצרים את מאגר הצמתים הראשון של האשכול. אתם יכולים לבצע את המשימות הבאות שקשורות למאגר צמתים עבור אשכול קיים, כשהדרישות שלו מבחינת מחשוב משתנות:
הוספת מאגר צמתים חדש: מוסיפים מאגרי צמתים חדשים ככל שהביקוש לעומסי העבודה של האשכול גדל.
הצגת מאגר צמתים: הצגת המאפיינים והמצב של מאגרי הצמתים הקיימים.
שינוי הגודל של מאגר צמתים: הגדלה או הקטנה ידנית של מאגרי הצמתים כדי להתאים לתנודות בתנועת עומסי העבודה.
מחיקה של מאגר צמתים: כדאי להסיר מאגרי צמתים אם הביקוש לעומסי העבודה באשכול יורד, או אם רוצים למחוק סוגי מכונות שכבר לא מתאימים לפעולות הקשורות למאגרים.
מידע נוסף על מאגרי צמתים באשכול זמין במאמר מידע על צמתים.
המסמך הזה מיועד למפתחי אפליקציות בקבוצת מפעיל האפליקציות ולאדמינים ב-IT בקבוצת אדמינים של הפלטפורמה, שאחראים על ניהול אשכולות Kubernetes בארגון שלהם. מידע נוסף זמין במאמר בנושא קהלים ב-GDC עם air gap.
לפני שמתחילים
כדי להשלים את המשימות שמתוארות במאמר הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
שליחת בקשה לתפקידים ב-IAM
כדי לקבל את ההרשאות שדרושות לניהול מאגרי צמתים באשכול Kubernetes, צריך להיות לכם תפקידים ספציפיים. התפקידים שנדרשים לכם תלויים בסוג האשכול שבו אתם עובדים: אשכול משותף בהיקף הארגון או אשכול רגיל בהיקף הפרויקט. מידע נוסף זמין במאמר בנושא הגדרות של אשכול Kubernetes.
תפקידים משותפים באשכול
כדי ליצור, למחוק, לערוך או לראות את מאגרי הצמתים של אשכול משותף, צריך לפנות לאדמין IAM בארגון ולבקש את התפקיד אדמין של אשכול משתמשים (user-cluster-admin). התפקיד הזה לא משויך למרחב שמות.
תפקידים רגילים באשכול
פנו לאדמין של IAM בפרויקט ובקשו ממנו להקצות לכם את התפקידים הבאים:
אדמין רגיל של אשכול (
standard-cluster-admin): יצירה, מחיקה, עריכה או צפייה במאגרי הצמתים של אשכול רגיל.Cluster Developer (
cluster-developer): create, delete, edit, or view a standard cluster. התפקיד הזה נדרש כדי להציג את פרטי מאגר הצמתים של האשכול במסוף 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חשוב להסיר את כל השדות של מאגר הצמתים שרוצים למחוק.
שומרים את הקובץ ויוצאים מהעורך.