gcloud CLI を使用して Config Sync のステータスを表示する

このページでは、Google Cloud CLI コマンドを使用して Config Sync をモニタリングする方法について説明します。

  • gcloud alpha anthos config sync repo を使用して、複数のクラスタのリポジトリのステータスを一覧表示します。

  • gcloud alpha anthos config sync resources を使用して、Config Sync が管理するリソースを表示します。

Config Sync ダッシュボードでも同様の情報を確認できます。

始める前に

このページのコマンドを使用する前に、次の手順を完了します。

  1. Google Cloud CLI のコンポーネントを更新します。

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

  3. クラスタが GKE クラスタでない場合、プラットフォーム管理者は、登録済みクラスタの Connect Gateway を設定する必要があります。

  4. プロジェクトを設定します。

    gcloud config set project PROJECT_ID
    

    PROJECT_ID は、Config Sync が設定され、実行されているプロジェクト ID に置き換えます。

複数のクラスタの Config Sync のステータスを表示する

Config Sync をインストールしてプロジェクトの複数の登録済みクラスタに構成している場合は、gcloud alpha anthos config sync repo を使用して、クラスタ間で同期されているリポジトリのステータスを一覧表示し、Config Sync の問題をデバッグできます。

nomos status と比較すると、gcloud alpha anthos config sync repo はリポジトリごとにステータスをグループ化し、nomos status コマンドはクラスタごとにステータスをグループ化します。

リポジトリを一覧表示する

現在のプロジェクト内の登録済みクラスタに同期されている Git リポジトリのすべてのステータスを一覧表示するには、次のコマンドを実行します。

gcloud alpha anthos config sync repo list

出力は次のようになります。

┌─────────────────────────────────────────────────────────────────┬───────┬────────┬─────────┬───────┬─────────┬─────────────┐
│                       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 が調整されているクラスタの数です。

特定のステータスを持つリポジトリを一覧表示する

--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 は、前のセクションで説明した repo list コマンドの出力の URL に置き換えます。

--namespace--name を使用して、説明を取得するリポジトリを指定することもできます。

   gcloud alpha anthos config sync repo describe \
     --sync-namespace config-management-system --sync-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 │            │
   └───────┴───────────┴─────────┴───────────┴─────────┴────────────┘

Config Sync マネージド リソースを表示する

gcloud alpha anthos config sync resources を使用すると、クラスタ、グループ、種類、Namespace、名前、ステータス、またはこれらの属性の組み合わせでマネージド リソースをフィルタできます。

すべてのマネージド リソースを一覧表示する

   gcloud alpha anthos config sync resources list

このコマンドにより、現在のプロジェクト内の登録済みクラスタに同期されているすべてのマネージド リソースが一覧表示されます。出力は次のようになります。

┌───────────────────┬───────────────────────────┬──────────────────────────┬──────────────────┬───────────────────────────────────────────┬─────────┬───────────┐
│    CLUSTER_NAME   │           GROUP           │           KIND           │    NAMESPACE     │                    NAME                   │  STATUS │ CONDITION │
├───────────────────┼───────────────────────────┼──────────────────────────┼──────────────────┼───────────────────────────────────────────┼─────────┼───────────┤
│ cluster-1         │                           │ Namespace                │                  │ default                                   │ Current │           │
│ cluster-1         │ rbac.authorization.k8s.io │ RoleBinding              │ default          │ viewers                                   │ Current │           │
│ cluster-2         │                           │ Namespace                │                  │ gamestore                                 │ Current │           │
│ cluster-2         │ rbac.authorization.k8s.io │ RoleBinding              │ gamestore        │ gamestore-admin                           │ Current │           │
│ cluster-2         │ rbac.authorization.k8s.io │ RoleBinding              │ gamestore        │ gamestore-webstore-admin                  │ Current │           │
└───────────────────┴───────────────────────────┴──────────────────────────┴──────────────────┴───────────────────────────────────────────┴─────────┴───────────┘

出力の各行に、マネージド リソースとそれに対応するステータスが表示されます。

  • CLUSTER_NAME は、マネージド リソースの取得元のクラスタの名前です。
  • GROUP は、マネージド リソースのグループ属性です。
  • KIND は、マネージド リソースの種類属性です。
  • NAMESPACE は、マネージド リソースの Namespace です。
  • NAME は、マネージド リソースの名前です。
  • STATUS は、マネージド リソースの調整ステータスです。表示されるステータスのリストについては、Kubernetes Sig のドキュメントをご覧ください。
  • CONDITION は、マネージド リソースのステータスを説明するメッセージです。

単一クラスタのマネージド リソースを一覧表示する

クラスタごとにマネージド リソースを表示するには、gcloud コマンドを使用するか、Google Cloud コンソールでクラスタを表示します。

--cluster フラグを使用すると、特定のクラスタのマネージド リソースを一覧表示できます。たとえば、次のコマンドでは、cluster-1 という名前のクラスタのマネージド リソースを一覧表示します。

gcloud alpha anthos config sync resources list --cluster=cluster-1

出力は次のようになります。

┌───────────────────┬───────────────────────────┬──────────────────────────┬──────────────────┬───────────────────────────────────────────┬─────────┬───────────┐
│    CLUSTER_NAME   │           GROUP           │           KIND           │    NAMESPACE     │                    NAME                   │  STATUS │ CONDITION │
├───────────────────┼───────────────────────────┼──────────────────────────┼──────────────────┼───────────────────────────────────────────┼─────────┼───────────┤
│ cluster-1         │                           │ Namespace                │                  │ default                                   │ Current │           │
│ cluster-1         │ rbac.authorization.k8s.io │ RoleBinding              │ default          │ viewers                                   │ Current │           │
└───────────────────┴───────────────────────────┴──────────────────────────┴──────────────────┴───────────────────────────────────────────┴─────────┴───────────┘

次のステップ