בדיקת עומסי עבודה עם שמירת מצב

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

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

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

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

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

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

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

בקשו מהאדמין של הפרויקט ב-IAM להקצות לכם את התפקידים הבאים במרחב השמות של הפרויקט, בהתאם למשימה שאתם צריכים לבצע:

  • צפייה בעומסי עבודה (workload-viewer): צפייה בכל עומסי העבודה שנפרסו באשכול משותף.
  • אדמין של מרחב שמות (namespace-admin): יצירה, מחיקה, עריכה או צפייה בעומסי עבודה במרחב שמות של פרויקט אשכול משותף.

התפקידים האלה קשורים למרחב השמות של הפרויקט.

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

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

הכנת הסביבה

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

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

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

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

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

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

המסוף

  • בתפריט הניווט, לוחצים על Kubernetes Engine > Workloads.

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

    • שם
    • סוג
    • מספר הפודים
    • אשכול Kubernetes
    • תאריך השינוי האחרון

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

kubectl

  • מריצים את הפקודה הבאה כדי להציג את כל ה-pods בפרויקט:

    kubectl get pods -n PROJECT_NAMESPACE
    

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

    NAME                        READY   STATUS    RESTARTS   AGE
    nginx-workload-ah-aa-1228   1/1     Running   0          12h
    nginx-workload-ah-ab-6784   1/1     Running   0          11h
    nginx-workload-ah-ac-0045   1/1     Running   0          12h
    

בדיקת משאב של StatefulSet

כדי לבקש מידע מפורט יותר על הרכיבים של משאב StatefulSet, מריצים פקודות שמטרגטות ישירות את הישות שרוצים לבדוק.

קבלת מידע על אובייקט StatefulSet

כדי לקבל מידע מפורט על האובייקט StatefulSet, מריצים את הפקודה:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe statefulset STATEFULSET_NAME

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

  • ‫KUBERNETES_CLUSTER_KUBECONFIG: קובץ kubeconfig של האשכול שמריץ את האובייקט StatefulSet.

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

  • ‫STATEFULSET_NAME: השם של האובייקט StatefulSet.

הצגת ההגדרות הפעילות בפורמט YAML

כדי להציג את ההגדרות הפעילות של המשאב StatefulSet בפורמט YAML, מריצים את הפקודה:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get statefulset STATEFULSET_NAME -o yaml

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

  • ‫KUBERNETES_CLUSTER_KUBECONFIG: קובץ kubeconfig של האשכול שמריץ את האובייקט StatefulSet.

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

  • ‫STATEFULSET_NAME: השם של האובייקט StatefulSet.

הצגת רשימה של פודים

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

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pods -l app=APP_NAME

בפקודה הזו, הדגל -l מציג את כל האובייקטים מסוג Pod שמתויגים בתווית APP_NAME.

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

  • ‫KUBERNETES_CLUSTER_KUBECONFIG: קובץ kubeconfig של האשכול שמריץ את האובייקט StatefulSet.

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

  • ‫APP_NAME: השם של האפליקציה עם שמירת המצב שמנוהלת על ידי האובייקט StatefulSet.

קבלת מידע ספציפי על פודים

כדי לקבל מידע על Pod ספציפי באשכול, מריצים את הפקודה:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pod POD_NAME

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

  • ‫KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול שבו פועל ה-Pod.

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

  • ‫POD_NAME: שם ה-pod שמנוהל על ידי האובייקט StatefulSet.

הצגת רשימה של PVC

כדי להציג את רשימת האובייקטים של PersistentVolumeClaim (PVC) באשכול, מריצים את הפקודה:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pvc

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

  • ‫KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול שמריץ את ה-PVC.

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

קבלת מידע ספציפי על PVC

כדי לקבל מידע על PersistentVolumeClaim (PVC) ספציפי באשכול, מריצים את הפקודה:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pvc PVC_NAME

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

  • ‫KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול שבו פועל ה-PVC.

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

  • ‫PVC_NAME: השם של ה-PVC שהוגדר לאובייקט StatefulSet.

קבלת מידע על המערכת הסולארית

כדי לקבל מידע על PersistentVolume (PV) ספציפי באשכול, מריצים את הפקודה:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pv PV_NAME

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

  • ‫KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול שבו פועל ה-PV.

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

  • ‫PV_NAME: השם של ה-PV שהוגדר לאובייקט StatefulSet.

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