התאמת עומסי עבודה בלי שמירת מצב

במאמר הזה מוסבר איך לשנות את גודלם של עומסי עבודה קיימים ללא מצב (stateless) שפועלים באשכול Kubernetes עם מרווח אוויר (air-gapped) ב-Google Distributed Cloud ‏(GDC). צריך לשנות את גודל הפודים שפועלים בעומסי העבודה חסרי הסטטוס בהתאם לדרישות של עומס העבודה של הקונטיינרים.

המסמך הזה מיועד למפתחים בקבוצת מפעילים של אפליקציות שאחראים על ניהול עומסי עבודה של אפליקציות בארגון שלהם. מידע נוסף זמין במאמר בנושא קהלים ב-GDC עם air gap.

לפני שמתחילים

כדי להשלים את המשימות שמתוארות במאמר הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.

שליחת בקשה לתפקידי IAM

כדי לקבל את ההרשאות שדרושות לכם להרחבת עומסי עבודה חסרי מצב, אתם צריכים לקבל תפקידים ספציפיים. התפקידים שאתם צריכים תלויים בסוג האשכול שבו אתם עובדים: אשכול שיתופי בהיקף הארגון או אשכול רגיל בהיקף הפרויקט. למידע נוסף, קראו את המאמר הגדרות של אשכול Kubernetes.

תפקידים משותפים באשכול

כדי ליצור, למחוק, לערוך או להציג עומסי עבודה באשכול משותף, צריך לבקש מאדמין IAM בפרויקט להקצות לכם את התפקיד אדמין של מרחב שמות (namespace-admin). התפקיד הזה משויך למרחב השמות של הפרויקט.

תפקידים רגילים באשכול

כדי ליצור, למחוק, לערוך או להציג עומסי עבודה באשכול רגיל, צריך לבקש מאדמין IAM בפרויקט להקצות לכם את התפקיד מפתח אשכול (cluster-developer). התפקיד הזה משויך למרחב השמות של הפרויקט.

הכנת הסביבה

כדי להריץ פקודות מול אשכול Kubernetes באמצעות ה-API, צריך לוודא שיש לכם את המשאבים הבאים:

  • מאתרים את שם אשכול Kubernetes או שואלים חבר בקבוצת האדמינים של הפלטפורמה מה שם האשכול.

  • נכנסים לחשבון ויוצרים את קובץ ה-kubeconfig לאשכול Kubernetes.

  • משתמשים בנתיב kubeconfig של אשכול Kubernetes כדי להחליף את KUBERNETES_CLUSTER_KUBECONFIG בהוראות האלה.

שינוי קנה מידה של פריסה

משתמשים בפונקציונליות של שינוי קנה המידה של Kubernetes כדי לשנות את קנה המידה של מספר הפודים שפועלים בפריסה בצורה מתאימה.

שינוי אוטומטי של מספר העותקים של הפודים בפריסה

ב-Kubernetes יש התאמה אוטומטית לעומס, כך שלא צריך לעדכן את הפריסה באופן ידני כשהדרישה משתנה. כדי להגדיר שינוי אוטומטי של קנה המידה של הפודים בפריסה:

  1. כדי להבטיח שהכלי Horizontal Pod Autoscaler יוכל למדוד את אחוז המעבד בצורה מתאימה, צריך להגדיר את בקשת משאב המעבד בפריסה.

  2. מגדירים את הכלי האוטומטי לשינוי גודל של פודים אופקיים בפריסה:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        -n NAMESPACE \
        autoscale deployment DEPLOYMENT_NAME \
        --cpu-percent=CPU_PERCENT \
        --min=MIN_NUMBER_REPLICAS \
        --max=MAX_NUMBER_REPLICAS
    

    מחליפים את מה שכתוב בשדות הבאים:

    • KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול.

    • NAMESPACE: מרחב השמות. במקרה של אשכולות משותפים, צריך להשתמש במרחב שמות של פרויקט. במקרים של אשכולות רגילים, אפשר להשתמש בכל מרחב שמות.

    • DEPLOYMENT_NAME: השם של הפריסה שרוצים להגדיר לה שינוי גודל אוטומטי.

    • CPU_PERCENT: יעד ממוצע ניצול המעבד לבקשה, שמיוצג באחוזים, בכל הפודים.

    • MIN_NUMBER_REPLICAS: הגבול התחתון של מספר הפודים שהכלי לשינוי גודל אוטומטי יכול להקצות.

    • MAX_NUMBER_REPLICAS: המגבלה העליונה למספר הפודים שאפשר להקצות באמצעות קנה מידה אוטומטי.

  3. בודקים את הסטטוס הנוכחי של הכלי לשינוי גודל אוטומטי של קבוצת Pods אופקית:

    kubectl get hpa
    

    הפלט אמור להיראות כך:

    NAME              REFERENCE                          TARGET    MINPODS   MAXPODS   REPLICAS   AGE
    DEPLOYMENT_NAME   Deployment/DEPLOYMENT_NAME/scale   0% / 50%  1         10        1          18s
    

שינוי קנה המידה של הפודים בפריסה באופן ידני

אם אתם מעדיפים לשנות את גודל הפריסה באופן ידני, מריצים את הפקודה:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    scale deployment DEPLOYMENT_NAME \
    --replicas NUMBER_OF_REPLICAS

מחליפים את מה שכתוב בשדות הבאים:

  • KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול.

  • NAMESPACE: מרחב השמות. במקרה של אשכולות משותפים, צריך להשתמש במרחב שמות של פרויקט. במקרים של אשכולות רגילים, אפשר להשתמש בכל מרחב שמות.

  • DEPLOYMENT_NAME: השם של הפריסה שבה רוצים להגדיר שינוי גודל אוטומטי.

  • DEPLOYMENT_NAME: מספר האובייקטים המשוכפלים Pod בפריסה.

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