במאמר הזה מוסבר איך לבדוק עומסי עבודה קיימים ללא שמירת מצב (stateless) שפועלים באשכול 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
בדיקת הפריסה
כדי לבקש מידע מפורט יותר על הרכיבים של משאב Deployment, מריצים פקודות שמטרגטות ישירות את הישות שרוצים לבדוק.
קבלת מידע על אובייקט Deployment
כדי לקבל מידע מפורט על האובייקט Deployment, מריצים את הפקודה:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe deployment DEPLOYMENT_NAME
מחליפים את מה שכתוב בשדות הבאים:
KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול שבו פועל הפריסה.
NAMESPACE: מרחב השמות. באשכולות משותפים, צריך להשתמש במרחב שמות של פרויקט. באשכולות רגילים, זה יכול להיות כל מרחב שמות.
DEPLOYMENT_NAME: השם של האובייקטDeployment.
הצגת ההגדרות הפעילות בפורמט YAML
כדי להציג את המניפסט של אובייקט Deployment, מריצים את הפקודה:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get deployments DEPLOYMENT_NAME -o yaml
הפקודה הזו מציגה את ההגדרות האישיות של האובייקט Deployment בפורמט YAML.
הצגת רשימה של פודים
כדי להציג את האובייקטים של Pod שנוצרו על ידי הפריסה, מריצים את הפקודה:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pods -l KEY=VALUE
בפקודה הזו, הדגל -l מציג את כל האובייקטים מסוג Pod עם התווית של צמד המפתח/ערך שצוין באשכול שצוין.
מחליפים את מה שכתוב בשדות הבאים:
KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול שבו פועל הפריסה.
NAMESPACE: מרחב השמות. באשכולות משותפים, צריך להשתמש במרחב שמות של פרויקט. באשכולות רגילים, זה יכול להיות כל מרחב שמות.
KEY: המפתח של התווית של צמד המפתח/ערך שהוגדרה בפריסה. לדוגמה, אם בשדה.template.metadata.labelsמוגדרת התוויתapp: myapp, המפתח הואapp.
VALUE: הערך של התווית של צמד מפתח/ערך שהוגדר בפריסה. לדוגמה, אם בשדה.template.metadata.labelsמוגדרת התוויתapp: myapp, הערך הואmy-app.
לדוגמה, אם תייגתם את האובייקט Deployment בתווית app: my-app, תצטרכו להריץ את הפקודה הבאה כדי לראות אובייקטים מסוג Pod עם התווית הזו:
kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
get pods -l app=my-app
קבלת מידע ספציפי על פודים
כדי לקבל מידע על אובייקט Pod ספציפי, מריצים את הפקודה:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pod POD_NAME
מחליפים את מה שכתוב בשדות הבאים:
KUBERNETES_CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של האשכול שבו פועל הפריסה.
NAMESPACE: מרחב השמות. באשכולות משותפים, צריך להשתמש במרחב שמות של פרויקט. באשכולות רגילים, זה יכול להיות כל מרחב שמות.
POD_NAME: השם של ה-pod שמנוהל על ידי הפריסה.