במאמר הזה מוסבר איך לבדוק עומסי עבודה קיימים ללא מצב (stateless) שפועלים באשכול Kubernetes עם בידוד פיזי (air-gapped) ב-Google Distributed Cloud (GDC). עומסי עבודה בלי שמירת מצב מאפשרים להפעיל את פריסת האפליקציה בלי לאחסן נתונים או את מצב האפליקציה. אתם יכולים להשתמש במסוף GDC או ב-kubectl CLI כדי לראות את עומסי העבודה חסרי הסטטוס, ולעקוב אחרי השימוש במשאבים והתקינות של עומסי העבודה.
המסמך הזה מיועד למפתחים בקבוצת מפעילים של אפליקציות, שאחראים על ניהול עומסי עבודה של אפליקציות בארגון שלהם. מידע נוסף זמין במאמר בנושא קהלים ב-GDC עם air gap.
לפני שמתחילים
כדי להשלים את המשימות שמתוארות במאמר הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
כדי לקבל את ההרשאות שנדרשות לצפייה בעומסי עבודה בלי שמירת מצב ולבדיקה שלהם, צריך להיות לכם תפקידים ספציפיים. התפקידים שאתם צריכים תלויים בסוג האשכול שבו אתם עובדים: אשכול משותף בהיקף הארגון או אשכול רגיל בהיקף הפרויקט. מידע נוסף זמין במאמר בנושא הגדרות של אשכול Kubernetes.
תפקידים משותפים באשכול
כדי לקבל את ההרשאות שדרושות לכם, אתם צריכים לבקש מאדמין ה-IAM של הפרויקט להקצות לכם את התפקידים הבאים במרחב השמות של הפרויקט, בהתאם למשימה שאתם רוצים לבצע:
- Workload Viewer (
workload-viewer): צפייה בכל עומסי העבודה שנפרסו באשכול משותף. - אדמין במרחב שמות (
namespace-admin): יצירה, מחיקה, עריכה או צפייה בעומסי עבודה במרחב שמות של פרויקט באשכול משותף.
התפקידים האלה קשורים למרחב השמות של הפרויקט.
תפקידים רגילים באשכול
כדי ליצור, למחוק, לערוך או להציג עומסי עבודה באשכול רגיל, צריך לבקש מאדמין IAM בפרויקט להקצות לכם את התפקיד מפתח אשכול (cluster-developer). התפקיד הזה משויך למרחב השמות של הפרויקט.
הכנת הסביבה
כדי להריץ פקודות מול אשכול Kubernetes באמצעות ה-API, צריך לוודא שיש לכם את המשאבים הבאים:
מאתרים את שם אשכול Kubernetes או שואלים חבר בקבוצת האדמינים של הפלטפורמה מה שם האשכול.
נכנסים לחשבון ויוצרים את קובץ ה-kubeconfig לאשכול Kubernetes.
משתמשים בנתיב kubeconfig של אשכול Kubernetes כדי להחליף את
KUBERNETES_CLUSTER_KUBECONFIGבהוראות האלה.
הצגת עומסי עבודה של קונטיינרים בפרויקט
כדי לראות את עומסי העבודה של הקונטיינרים בפרויקט, מבצעים את הפעולות הבאות:
המסוף
בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Workloads (עומסי עבודה).
אפשר לראות פרטים על עומסי העבודה של הקונטיינר, כמו:
- שם
- סוג
- מספר התרמילים
- אשכול Kubernetes
- תאריך השינוי האחרון
עומסי העבודה של הקונטיינרים מאורגנים לפי אשכול Kubernetes שאליו הם שייכים. בוחרים באפשרות אשכול בתפריט הנפתח כדי לשנות את ההקשר של האשכול.
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: הערך של התווית בצמד מפתח/ערך שהוגדר בפריסה. לדוגמה, אם התוויתapp: myappמוגדרת בשדה.template.metadata.labels, הערך הוא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 שמנוהל על ידי הפריסה.