במאמר הזה נסביר איך לבחור מחלקות מחשוב ספציפיות כדי להריץ עומסי עבודה עם דרישות חומרה ייחודיות באשכולות Autopilot של Google Kubernetes Engine (GKE). לפני שקוראים את המסמך הזה, חשוב להכיר את המושג סוגי מחשוב ב-GKE Autopilot.
סקירה כללית על מחלקות מחשוב בטייס אוטומטי
Autopilot מציע סוגי מחשוב שנועדו להריץ עומסי עבודה עם דרישות חומרה ספציפיות. הסוגים האלה של מחשוב שימושיים לעומסי עבודה כמו משימות של למידת מכונה ו-AI, או להפעלת מסדי נתונים עם תנועה גבוהה בזמן אמת.
הסוגים האלה של מחשוב הם קבוצת משנה של סדרות המכונות ב-Compute Engine, והם מציעים גמישות מעבר לסוג המחשוב הכללי שמוגדר כברירת מחדל ב-Autopilot.
לדוגמה, המחלקה Scale-Out משביתה את הריבוי נימים הסימולטני, כך שכל vCPU הוא ליבה פיזית אחת.
בהתאם לצרכים של ה-Pod שלכם, אתם יכולים להגדיר את ה-Pods הרגילים של Autopilot או את ה-Pods של Spot כך שיבקשו צמתים שמגובים על ידי מחלקות מחשוב כאלה. אפשר גם לבקש ארכיטקטורת CPU ספציפית, כמו Arm, בכיתות מחשוב שתומכות בארכיטקטורה הזו.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
- מוודאים שיש לכם אשכול GKE Autopilot שפועלת בו גרסה 1.24.1-gke.1400 של GKE ואילך.
בקשה של מחלקת מחשוב ב-Autopilot Pod
כדי להגדיר ל-Autopilot למקם את ה-Pods שלכם בסוג ספציפי של מחשוב, מציינים את התוויתcloud.google.com/compute-class ב-nodeSelector או ב-node affinity rule, כמו בדוגמאות הבאות:
nodeSelector
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: nodeSelector: cloud.google.com/compute-class: "COMPUTE_CLASS" containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi"
מחליפים את COMPUTE_CLASS בשם סוג המכונה בהתאם לתרחיש לדוגמה, למשל Scale-Out. אם בוחרים באפשרות Performance, אפשר גם לבחור סדרת מכונות של Compute Engine בבורר הצמתים.
אם לא מציינים סדרת מכונות, GKE משתמש בסדרת מכונות C4 בהתאם לזמינות האזורית. הוראות מפורטות מופיעות במאמר בנושא הפעלת עומסי עבודה עתירי CPU עם ביצועים אופטימליים.
nodeAffinity
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: terminationGracePeriodSeconds: 25 containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi" ephemeral-storage: "1Gi" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/compute-class operator: In values: - "COMPUTE_CLASS"
מחליפים את COMPUTE_CLASS בשם הסוג של המכונה הווירטואלית בהתאם לתרחיש לדוגמה, למשל Scale-Out. אם בוחרים באפשרות Performance, אפשר גם לבחור סדרת מכונות של Compute Engine בבורר הצמתים. אם לא מציינים סדרת מכונות, GKE משתמש בסדרת מכונות C4 בהתאם לזמינות האזורית. הוראות מפורטות מופיעות במאמר בנושא הפעלת עומסי עבודה שדורשים הרבה משאבי CPU עם ביצועים אופטימליים.
אפשר גם לבקש מחלקות מחשוב ספציפיות עבור Spot Pods.
ציון בקשות למשאבים
כשבוחרים מחלקה של מחשוב, חשוב לציין בקשות למשאבים עבור ה-Pods על סמך בקשות המשאבים המינימליות והמקסימליות של המחלקה שנבחרה. אם מספר הבקשות שלכם נמוך מהמינימום, Autopilot יגדיל את מספר הבקשות באופן אוטומטי. עם זאת, אם הבקשות שלכם גדולות מהמקסימום, Autopilot לא יפרוס את ה-Pods שלכם ויציג הודעת שגיאה.
בחירת ארכיטקטורת מעבד
חלק מסוגי המכונות תומכים בכמה ארכיטקטורות של מעבדים. לדוגמה, המחלקה Scale-Out תומכת בארכיטקטורות Arm ו-x86. אם לא מבקשים ארכיטקטורה ספציפית, Autopilot מקצה צמתים עם ארכיטקטורת ברירת המחדל של מחלקת המחשוב שצוינה. אם צריך להשתמש בארכיטקטורה אחרת עבור ה-Pods, צריך לציין את הארכיטקטורה הזו בבורר הצמתים או בכלל ההעדפה של הצמתים, לצד בקשת סוג המחשוב. סוג המחשוב שאתם מבקשים צריך לתמוך בארכיטקטורת המעבד שציינתם.
הוראות מפורטות זמינות במאמר פריסת Autopilot Pods בארכיטקטורת Arm.
המאמרים הבאים
- מידע נוסף על ארכיטקטורת אשכולות של Autopilot
- מידע נוסף על מחזור החיים של Pods
- מידע נוסף על סוגי המחשוב הזמינים ב-Autopilot
- מידע על בקשות ברירת המחדל, המינימום והמקסימום למשאבים בכל פלטפורמה