במאמר הזה מוסבר איך לשנות את גודלם של עומסי עבודה קיימים ללא מצב (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 יש התאמה אוטומטית לעומס, כך שלא צריך לעדכן את הפריסה באופן ידני כשהדרישה משתנה. כדי להגדיר שינוי אוטומטי של קנה המידה של הפודים בפריסה:
כדי להבטיח שהכלי 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: יעד ממוצע ניצול המעבד לבקשה, שמיוצג באחוזים, בכל הפודים.
MIN_NUMBER_REPLICAS: הגבול התחתון של מספר הפודים שהכלי לשינוי גודל אוטומטי יכול להקצות.
MAX_NUMBER_REPLICAS: המגבלה העליונה למספר הפודים שאפשר להקצות באמצעות קנה מידה אוטומטי.
בודקים את הסטטוס הנוכחי של הכלי לשינוי גודל אוטומטי של קבוצת 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בפריסה.