查看多个集群中的 Config Sync 状态

如果您在项目中的多个已注册集群上安装和配置 Config Sync,则可以使用 gcloud alpha anthos config sync repo 列出跨集群同步的代码库的状态并调试 Config Sync 问题。与 nomos status 相比,gcloud alpha anthos config sync repo 按代码库对状态进行分组,而 nomos status 命令按集群对状态进行分组。

准备工作

在使用 gcloud alpha anthos config sync repo 之前,请完成以下步骤:

  1. 通过运行以下命令来更新 gcloud 命令行工具组件:

    gcloud components update
    
  2. 注册集群(如果尚未注册)。 如果您通过控制台安装并配置了 Config Sync,则可以跳过此步骤。

  3. 平台管理员需要为注册的集群设置 Connect Gateway

  4. 运行以下命令来设置项目:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替换为设置和运行 Config Sync 的项目 ID。

基本用法

列出所有代码库

   gcloud alpha anthos config sync repo list

此命令列出同步到当前项目中任何已注册集群的 Git 代码库的所有状态。输出内容类似如下:

┌─────────────────────────────────────────────────────────────────┬───────┬────────┬─────────┬───────┬─────────┬─────────────┐
│                       SOURCE                                    │ TOTAL │ SYNCED │ PENDING │ ERROR │ STALLED │ RECONCILING │
├─────────────────────────────────────────────────────────────────┼───────┼────────┼─────────┼───────┼─────────┼─────────────┤
│ https://source.developers.google.com/p/test/r/test//@main       │ 2     │ 2      │ 0       │ 0     │ 0       │ 0           │
│ https://source.developers.google.com/p/test/r/dev//@main        │ 2     │ 1      │ 0       │ 0     │ 1       │ 0           │
│ https://source.developers.google.com/p/test/r/staging//@main    │ 1     │ 0      │ 0       │ 1     │ 0       │ 0           │
└─────────────────────────────────────────────────────────────────┴───────┴────────┴─────────┴───────┴─────────┴─────────────┘

输出的每一行描述了代码库及其在各个集群中的相应状态:

  • TOTAL 表示代码库同步到的集群数量。
  • SYNCED 表示此代码库成功同步的集群数量。
  • PENDING 表示此代码库待同步的集群数量。
  • ERROR 表示此代码库在同步期间遇到一些错误的集群数量。
  • STALLED 表示同步此代码库的 Deployment 已停止的集群数量。
  • RECONCILING 表示同步此代码库的 Deployment 正在进行调整的集群数量。

列出具有 ERROR 状态的代码库

您还可以使用 --status 标志列出具有特定状态的代码库。支持的值为 syncedpendingerrorstalledreconciling。例如,通过运行以下命令来列出存在错误的代码库:

gcloud alpha anthos config sync repo list --status=error

输出内容类似如下:

┌─────────────────────────────────────────────────────────────────┬───────┬────────┬─────────┬───────┬─────────┬─────────────┐
│                       SOURCE                                    │ TOTAL │ SYNCED │ PENDING │ ERROR │ STALLED │ RECONCILING │
├─────────────────────────────────────────────────────────────────┼───────┼────────┼─────────┼───────┼─────────┼─────────────┤
│ https://source.developers.google.com/p/test/r/staging//@main    │ 1     │ 0      │ 0       │ 1     │ 0       │ 0           │
└─────────────────────────────────────────────────────────────────┴───────┴────────┴─────────┴───────┴─────────┴─────────────┘

描述代码库

使用 describe 命令来查看有关您的代码库状态的详细信息:

   gcloud alpha anthos config sync repo describe \
     --source URL

URL 替换为上一部分中描述的 list 命令的输出中的网址。

您还可以使用 --namespace--name 指定要描述的代码库。

   gcloud alpha anthos config sync repo describe \
     --namespace config-management-system --name root-sync

默认情况下,它会输出代码库状态以及已应用但未协调的任何代管式资源。

   [
     {
       "clusters": [
         "cluster-1",
         "cluster-2",
       ],
       "commit": "32293c90a63efba3121c7648048fcd3e85043a34",
       "errors": [],
       "source": "https://source.developers.google.com/p/test/r/test//@main",
       "status": "SYNCED"
     }
   ]

您还可以使用 --managed-resources 标志来控制要查看的代管式资源。支持的值为 allcurrentinprogressnotfoundfailed(默认值)或 unknown。您可以使用以下命令查看所有代管式资源:

   gcloud alpha anthos config sync repo describe \
     --namespace config-management-system --name root-sync \
     --managed-resources all

输出内容类似如下:

   [
     {
       "clusters": [
         "cluster-1",
         "cluster-2",
       ],
       "commit": "32293c90a63efba3121c7648048fcd3e85043a34",
       "errors": [],
       "source": "https://source.developers.google.com/p/test/r/test//@main",
       "status": "SYNCED"
     }
   ]
   ┌────────────────────────────────────────────────────────────────┐
   │                       managed_resources                        │
   ├───────┬───────────┬─────────┬───────────┬─────────┬────────────┤
   │ GROUP │    KIND   │   NAME  │ NAMESPACE │  STATUS │ CONDITIONS │
   ├───────┼───────────┼─────────┼───────────┼─────────┼────────────┤
   │       │ Namespace │ default │           │ Current │            │
   │       │ ConfigMap │ foo     │ default   │ Current │            │
   └───────┴───────────┴─────────┴───────────┴─────────┴────────────┘