במאמר הזה מוסבר איך לבדוק עומסי עבודה קיימים עם שמירת מצב (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.