בחירת סוגי מחשוב ל-Pods של Autopilot

במאמר הזה נסביר איך לבחור מחלקות מחשוב ספציפיות כדי להריץ עומסי עבודה עם דרישות חומרה ייחודיות באשכולות 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 לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

בקשה של מחלקת מחשוב ב-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.

המאמרים הבאים