nomos 錯誤報告內容

nomos 指令列工具可協助處理 Config Sync 的常見管理工作,例如產生診斷封存檔。封存內容的確切輸出內容和版面配置可能會變更,且不視為 API。nomos 的程式碼位於 Config Sync 存放區

您可以執行 kubectl getkubectl logs,從叢集取得類似資訊,但 nomos bugreport 的優點是會建立 Config Sync 系統重要資訊的封存檔。與 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 version」會顯示 Config Sync 版本,也就是 nomos version 的輸出內容。
  2. Nomos 狀態會顯示 nomos status 狀態的輸出內容,例如已同步處理的提交內容和任何錯誤。
  3. Config Sync 自訂資源的相關資訊:
    1. 如果是叢集範圍的資源,例如 ConfigManagement 和 ClusterSelectors,則位於 raw/cluster-1/cluster/configmanagement/
    2. 如果是命名空間範圍內的資源,例如 RootSync、RepoSync 和 ResourceGroup,則位於 raw/cluster-1/namespaces/namespace-1
  4. 由 Config Sync 同步處理及管理的資源:
    1. 如果已啟用 RootSync 和 RepoSync API,則位於 ResourceGroup 的規格中。您可以取得這些資源的數量,以及種類、命名空間和名稱。
    2. 如果您未啟用 RootSync 和 RepoSync API,且在 ConfigManagement 物件 (已淘汰) 中指定 Git 欄位,則資源的完整內容會位於 ClusterConfigs 和 NamespaceConfigs 中。您應遷移 ConfigManagement 物件
  5. 所有 Config Sync Pod 的記錄都位於 raw/cluster-1/namespaces/pod-namespace-1/pod-name-1/container-name.txt 下方。
  6. 所有 Config Sync Pod 的完整內容:位於 raw/cluster-1/namespaces/pod-namespace-1/pods.txt 下方。
  7. 是否已啟用 Config Sync RootSync 和 RepoSync API (即使用多存放區模式)?
    1. 檢查 ConfigManagement 資源,如果看到 spec.enableMultiRepo: true,表示已啟用 RootSync 和 RepoSync API。
    2. 如果看到 RootSync、RepoSync 或協調器 Pod 等元件,表示您已啟用 RootSync 和 RepoSync API。
    3. 如果看到 git-importer Pod 等元件,表示 RootSync 和 RepoSync API 未啟用,您需要遷移 ConfigManagement 物件