במאמר הזה נסביר איך לבחור סוגים ספציפיים של מחשוב כדי להריץ עומסי עבודה עם דרישות חומרה ייחודיות באשכולות Autopilot של Google Kubernetes Engine (GKE). לפני שקוראים את המסמך הזה, חשוב להכיר את המושג סוגי מחשוב ב-GKE Autopilot.
סקירה כללית על מחלקות מחשוב בטייס אוטומטי
ב-Autopilot יש סוגי מחשוב שנועדו להריץ עומסי עבודה עם דרישות חומרה ספציפיות. הסוגים האלה של מחשוב שימושיים לעומסי עבודה כמו משימות של למידת מכונה ו-AI, או להפעלת מסדי נתונים עם תנועה גבוהה בזמן אמת.
הסוגים האלה של מחשוב הם קבוצת משנה של סדרות המכונות ב-Compute Engine, והם מציעים גמישות מעבר לסוג המחשוב הכללי שמוגדר כברירת מחדל בטייס האוטומטי.
לדוגמה, המחלקה Scale-Out משביתה את הריבוי נימים הסימולטני, כך שכל vCPU הוא ליבה פיזית אחת.
בהתאם לצרכים של ה-Pod שלכם, אתם יכולים להגדיר את ה-Pods הרגילים של Autopilot או את ה-Pods של Spot כך שיבקשו צמתים שמגובים על ידי מחלקות המחשוב האלה. אפשר גם לבקש ארכיטקטורת CPU ספציפית, כמו Arm, בכיתות מחשוב שתומכות בארכיטקטורה הזו.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-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 או בכלל זיקה של צומת, כמו בדוגמאות הבאות:
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 שלכם ויציג הודעת שגיאה.
בחירת ארכיטקטורת CPU
חלק מסוגי המחשוב תומכים בכמה ארכיטקטורות של מעבדים. לדוגמה, המחלקה Scale-Out תומכת בארכיטקטורות Arm ו-x86. אם לא מבקשים ארכיטקטורה ספציפית, Autopilot מקצה צמתים עם ארכיטקטורת ברירת המחדל של מחלקת המחשוב שצוינה. אם צריך להשתמש בארכיטקטורה אחרת עבור ה-Pods, צריך לציין את הארכיטקטורה הזו בבורר הצמתים או בכלל ההעדפה של הצמתים, לצד בקשת סוג המחשוב. הסוג של המכונה הווירטואלית שאתם מבקשים צריך לתמוך בארכיטקטורת המעבד שציינתם.
הוראות מפורטות זמינות במאמר פריסת Autopilot Pods בארכיטקטורת Arm.
המאמרים הבאים
- מידע נוסף על ארכיטקטורת אשכולות של Autopilot
- מידע נוסף על מחזור החיים של Pods
- מידע נוסף על סוגי המחשוב הזמינים ב-Autopilot
- מידע על בקשות ברירת המחדל, המינימום והמקסימום למשאבים בכל פלטפורמה