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

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

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

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

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

בקשת תפקידים ב-IAM

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

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

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

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

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

הכנת הסביבה

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

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

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

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

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

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

התאמה אוטומטית לעומס של Pods ב-Deployment

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

  1. כדי לוודא שה-Horizontal Pod Autoscaler יכול למדוד כראוי את אחוז המעבד (CPU), מגדירים את בקשת משאבי המעבד (CPU) בפריסה.

  2. מגדירים את ה-Horizontal Pod Autoscaler בפריסה:

    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: היעד הממוצע של ניצול המעבד (CPU) שצריך לבקש, מיוצג באחוזים, בכל ה-pods.

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

    • ‫MAX_NUMBER_REPLICAS: הגבול העליון של מספר ה-Pod-ים שהמידרוג האוטומטי יכול להקצות.

  3. בודקים את הסטטוס הנוכחי של ה-Horizontal Pod Autoscaler:

    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 בפריסה.

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