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

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

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

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

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

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

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

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

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

  • Workload Viewer (workload-viewer): view all workloads deployed to a shared cluster.
  • אדמין במרחב שמות (namespace-admin): יצירה, מחיקה, עריכה או צפייה בעומסי עבודה במרחב שמות של פרויקט באשכול משותף.

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

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

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

הכנת הסביבה

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

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

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

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

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

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

המסוף

  • בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Workloads (Kubernetes Engine > עומסי עבודה).

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

    • שם
    • סוג
    • מספר הפודים
    • אשכול 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 של האשכול שבו פועל הפוד.

  • ‫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.

קבלת מידע על PV

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

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

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

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

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

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

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