複数のクラスタの 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. 次のコマンドを実行して、Google Cloud CLI コンポーネントを更新します。

    gcloud components update
    
  2. まだ行っていない場合はクラスタを登録します。Console を使用して Config Sync をインストールして構成した場合は、この手順をスキップできます。

  3. 登録済みクラスタが GKE クラスタでない場合、プラットフォーム管理者がクラスタの 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 コマンドの出力の URL に置き換えます。

--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 │            │
   └───────┴───────────┴─────────┴───────────┴─────────┴────────────┘