监控 RootSync 和 RepoSync 对象

本页面介绍了监控 RootSync 和 RepoSync 对象时可以使用的不同方式。

查看日志

本部分介绍如何查看 RootSync 和 RepoSync 对象的日志。 查看日志可发现有关潜在错误的信息。

  • 如需查看 RootSync 调节器的日志,请运行以下命令:

    kubectl logs -n config-management-system deployment/root-reconciler CONTAINER_NAME
    

    CONTAINER_NAME 替换为以下某个值:

    • git-syncgit-sync 容器将配置从 Git 代码库拉取到协调器容器可以读取的本地目录。

    • hydration-controllerhydration-controller 容器渲染从代码库中提取的任何 Helm 或 Kustomize 配置,然后将渲染的配置保存在共享卷中以供 reconciler 容器进一步处理。

    • otel-agentotel-agent 容器是一个用于检索和导出 Config Sync 指标的 OpenTelemetry 代理。

    • reconcilerreconciler 容器会将这些配置应用到集群。

  • 如需查看 RepoSync 调节器的日志,请运行以下命令:

    kubectl logs -n config-management-system deployment/ns-reconciler-NAMESPACE CONTAINER_NAME
    

    请替换以下内容:

    • NAMESPACE:您在其中创建了命名空间代码库的命名空间。
    • CONTAINER_NAMEgit-synchydration-controllerotel-agentreconciler

查看已同步的提交

您可以检查哪个提交已同步到集群。

  • 如需查看 RootSync 的同步提交,请运行以下命令:

    kubectl get rootsync root-sync -n config-management-system
    
  • 要查看 RepoSync 的同步提交,请运行以下命令:

    kubectl get reposync repo-sync -n NAMESPACE
    

    NAMESPACE 替换为在其中创建了命名空间代码库的命名空间。

这些命令的输出会显示来源提交和同步提交的值。例如,如果您运行了 RepoSync 的命令,则会看到类似于以下内容的输出:

NAME        RENDERINGCOMMIT                            SOURCECOMMIT                               SYNCCOMMIT
root-sync   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72

RENDERINGCOMMIT 列中的值是 hydration-controller 处理的提交。如果不需要渲染,则该值与 SOURCECOMMIT 列相同。SOURCECOMMIT 列中的值是 Git 代码库中应同步到集群的提交。SYNCCOMMIT 列中的值是部署到集群的提交。如果 SOURCECOMMITSYNCCOMMIT 列中的两个值相同,则预期提交已部署到集群。

查看对象详情

如需查看 RootSync 和 RepoSync 对象的详情,请使用 kubectl describe。该命令可以为您提供潜在错误的更多信息。

  • 如需查看 RootSync 对象的详情,请运行以下命令:

    kubectl describe rootsync root-sync -n config-management-system
    
  • 如需查看 RepoSync 对象的详情,请运行以下命令:

    kubectl describe reposync repo-sync -n NAMESPACE
    

    NAMESPACE 替换为在其中创建了命名空间代码库的命名空间。

查看资源是否准备就绪

如需了解同步到集群的资源是否准备就绪,请查看协调状态。例如,如果您查看协调状态,则系统可以显示同步的 Deployment 是否已准备好处理流量。

对于同步到集群的 Git 代码库,所有资源的协调状态会汇总到一个名为 ResourceGroup 的资源中。对于每个 RootSync 或 RepoSync 对象,系统会生成一个 ResourceGroup 来捕获应用于集群的资源集,并汇总其状态。

  • 如需查看 RootSync 对象的协调状态,请运行以下命令:

    kubectl get resourcegroup.kpt.dev root-sync -n config-management-system -o yaml
    
  • 如需查看 RepoSync 对象的协调状态,请运行以下命令:

    kubectl get resourcegroup.kpt.dev repo-sync -n NAMESPACE -o yaml
    

    NAMESPACE 替换为在其中创建了命名空间代码库的命名空间。

在输出中,您会看到所有 ResourceGroup 资源状态。例如,以下输出显示名为 nginx-deployment 的 Deployment 已准备就绪:

resourceStatuses:
- group: apps
  kind: Deployment
  name: nginx-deployment
  namespace: default
  status: Current

后续步骤