疑難排解簡介

如果您在使用 Config Sync 時遇到困難,本頁面將介紹一些常見工具和程序,協助您找出並解決問題。

升級至支援的版本

建議您升級 Config Sync支援版本。 升級通常可以解決常見問題,並提供最新功能。

使用 nomos 指令列工具

nomos 指令列工具可提供有關 Config Sync 設定的重要洞察資料。嘗試判斷問題來源或需要與 Cloud 客戶服務團隊合作時,以下各節所述的指令特別實用。

查看 Config Sync 狀態

nomos status 指令會提供匯總資料和錯誤,協助您瞭解 Config Sync 安裝作業的狀況。nomos status 提供下列資訊:

  • 每個叢集的安裝狀態
  • 同步處理錯誤 (包括從 Git 讀取資料,以及協調變更)

建立錯誤報告

如果 Config Sync 發生問題,需要 Cloud Customer Care 協助,您可以使用 nomos bugreport 指令提供有價值的偵錯資訊。

這項指令會產生含有時間戳記的 ZIP 檔案,其中包含 kubectl 環境中 Kubernetes 叢集的相關資訊。這個檔案也包含 Config Sync Pod 的記錄。不包含透過 Config Sync 同步處理的資源資訊。

查看總覽資訊主頁

Config Sync 資訊主頁會顯示 Config Sync 管理的套件狀態,以及這些套件中資源的狀態。瀏覽這個資訊主頁,有助於快速瞭解 Config Sync 安裝狀態,並找出有問題的套件。

  • 如要存取資訊主頁,請前往 Google Cloud 控制台的「Features」(功能) 專區,然後點選「Config」(設定) 頁面:

    前往「設定」

使用監控和記錄分析功能

監控 Config Sync 並查看記錄檔,有助於判斷錯誤來源,並深入瞭解任何非預期行為。

瞭解 Config Sync 指標

使用 Config Sync 指標,瞭解 Config Sync 的健康狀態。

監控 RootSync 和 RepoSync 物件

使用 Google Cloud 控制台或 Google Cloud CLI 安裝 Config Sync 時,系統會自動為您建立 RootSync 物件。設定從多個存放區同步處理時,您可以建立 RepoSync 物件,其中包含命名空間存放區的設定資訊。

監控這些物件可揭露有關 Config Sync 狀態的寶貴資訊。詳情請參閱「監控 RootSync 和 RepoSync 物件」。

使用服務水準指標 (SLI)

如要在 Config Sync 無法正常運作時收到通知,請使用 Config Sync SLI

查詢記錄

您可以使用記錄檔探索工具,擷取、查看及分析 Config Sync 的記錄資料。這些記錄可能包含有價值的歷來資料,而當運算子或協調器 Pod 重新啟動時,nomos bugreport 不會擷取這些資料。如需有助於診斷問題的查詢範例,請參閱「查詢 Config Sync 記錄」。

使用 kubectl 指令列工具檢查資源

Config Sync 由多個自訂資源組成,您可以使用 kubectl 指令查詢這些資源。這些指令可協助您瞭解每個 Config Sync 物件的狀態。

您應瞭解 Config Sync 管理的 Kubernetes 資源相關資訊:

  • config-management-system 是用來執行 Config Sync 所有核心系統元件的命名空間。
  • configmanagement.gke.ioconfigsync.gke.io 是我們用於所有自訂資源的 API 群組。

範例

以下各節說明如何使用 kubectl 指令檢查 Config Sync。

列出自訂資源

  • 如要取得自訂資源的完整清單,請執行下列指令:

    kubectl api-resources | grep -E "configmanagement.gke.io|configsync.gke.io"
    
  • 如要使用個別自訂資源,請執行下列指令:

    kubectl get RESOURCE -o yaml.
    

    RESOURCE 替換為要查詢的資源名稱。

    舉例來說,您可以透過下列指令的輸出內容,檢查 RootSync 物件的狀態:

    kubectl get rootsync -n config-management-system -o yaml
    

檢查物件的符記註解

您可能想知道 Config Sync 上次更新受管理 Kubernetes 物件的時間。每個受管理物件都會註解 Git 提交的雜湊,表示上次修改時間,以及包含修改內容的設定路徑。

舉例來說,如要取得名為 namespace-readers 的 ClusterRoleBinding 註解,請執行下列指令:

kubectl get clusterrolebinding namespace-readers

輸出結果會與下列內容相似:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    configmanagement.gke.io/source-path: cluster/namespace-reader-clusterrolebinding.yaml
    configmanagement.gke.io/token: bbb6a1e2f3db692b17201da028daff0d38797771
  name: namespace-readers
...

詳情請參閱「標籤和註解」。

閱讀其他疑難排解文件

如果問題仍未解決,下列資源或許能提供協助:

  • 如果收到錯誤訊息,請參閱錯誤參考資料頁面,瞭解如何解決錯誤。

  • 檢查問題是否由已知問題造成。

  • 如果特定領域發生問題,目錄中「依問題類型排解問題」部分列出的目標疑難排解指南或許能提供協助。

後續步驟

  • 如果無法在文件中找到問題的解決方案,請參閱「取得支援」一文,瞭解如何取得進一步協助,包括下列主題的建議: