תוכן דוח על באג של nomos

כלי שורת הפקודה nomos עוזר לבצע משימות אדמיניסטרטיביות נפוצות ב-סנכרון תצורות, למשל ליצור ארכיון אבחון. הפלט והפריסה המדויקים של הארכיון עשויים להשתנות, והם לא נחשבים ל-API. הקוד של nomos זמין במאגר סנכרון תצורות.

אפשר לקבל מידע דומה מהאשכול על ידי הפעלת הפקודה kubectl get או kubectl logs, אבל היתרון של nomos bugreport הוא שהוא יוצר ארכיון של מידע חשוב על מערכת סנכרון תצורות. כשפונים אל Google Cloud התמיכה, כדאי לספק את nomos bugreportהפלט.

אפשר גם להשתמש בפלט של nomos bugreport לניפוי באגים או לתמיכה פנימית.

מבנה קובץ הפלט nomos bugreport נראה כך:

- raw/
  - cluster/
    - configmanagement/
  - namespaces/
    - config-management-monitoring/
    - config-management-system/
    - gatekeeper-system/
    - resource-group-system/
    - kube-system/
- processed/
  - status.txt
  - version.txt

המידע שאפשר לקבל מ-nomos bugreport:

  1. הגרסה של Nomos מציגה את הגרסה של סנכרון תצורות, הפלט של nomos version.
  2. בסטטוס של Nomos מוצג הפלט של nomos status status, למשל, איזו התחייבות מסונכרנת ושגיאות כלשהן.
  3. מידע על משאבים מותאמים אישית של סנכרון תצורות:
    1. משאבים בהיקף אשכול כמו ConfigManagement ו-ClusterSelectors נמצאים כאן: raw/cluster-1/cluster/configmanagement/.
    2. לגבי שמות שמוגבלים למרחב שמות, כמו RootSync,‏ RepoSync ו-ResourceGroup, המיקום הוא: raw/cluster-1/namespaces/namespace-1.
  4. משאבים שמסונכרנים ומנוהלים על ידי Config Sync:
    1. אם הפעלתם את ממשקי ה-API של RootSync ו-RepoSync, המידע הזה נמצא במפרט של ResourceGroup. תוכלו לקבל את מספר המשאבים האלה, ואת הסוג, מרחב השמות והשם שלהם.
    2. אם לא הפעלתם את ממשקי ה-API של RootSync ו-RepoSync וציינתם שדות git באובייקט ConfigManagement (הוצא משימוש), התוכן המלא של המשאבים נמצא ב-ClusterConfigs וב-NamespaceConfigs. צריך להעביר את אובייקט ConfigManagement.
  5. היומנים של כל ה-Pods של סנכרון תצורות נמצאים ב-raw/cluster-1/namespaces/pod-namespace-1/pod-name-1/container-name.txt.
  6. התוכן המלא של כל ה-Pods של סנכרון התצורות: בקטע raw/cluster-1/namespaces/pod-namespace-1/pods.txt.
  7. האם ממשקי ה-API של סנכרון תצורות RootSync ו-RepoSync מופעלים (כלומר, נעשה שימוש במצב multi-repo) או לא?
    1. בודקים את המשאב ConfigManagement. אם מופיע spec.enableMultiRepo: true, סימן שממשקי ה-API של RootSync ו-RepoSync מופעלים.
    2. אם אתם רואים רכיבים כמו RootSync,‏ RepoSync או reconciler Pods, סימן שהפעלתם את ממשקי ה-API של RootSync ו-RepoSync.
    3. אם אתם רואים רכיבים כמו git-importer Pod, סימן שהממשקי API של RootSync ו-RepoSync לא מופעלים, ואתם צריכים להעביר את אובייקט ConfigManagement.