RootSync オブジェクトと RepoSync オブジェクトをモニタリングする

このページでは、RootSync オブジェクトと RepoSync オブジェクトをモニタリングするさまざまな方法について説明します。

ログの表示

このセクションでは、RootSync オブジェクトと RepoSync オブジェクトのログを表示する方法について説明します。ログを確認すると、潜在的なエラーに関する情報を確認できます。

  • RootSync リコンサイラのログを表示するには、次のコマンドを実行します。

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

    CONTAINER_NAME は次のいずれかの値に置き換えます。

    • git-sync: git-sync コンテナは、構成ファイルを Git リポジトリから pull し、リコンサイラ コンテナから読み取り可能なローカル ディレクトリに保存します。

    • hydration-controller: hydration-controller コンテナは、リポジトリから pull された Helm または Kustomize 構成をレンダリングし、reconciler コンテナでさらに処理するために、その構成を共有ボリュームに保存します。

    • otel-agent: otel-agent コンテナは、Config Sync の指標の取得とエクスポートを行う OpenTelemetry エージェントです。

    • reconciler: reconciler コンテナは構成ファイルをクラスタに適用します。

  • RepoSync リコンサイラのログを表示するには、次のコマンドを実行します。

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

    次のように置き換えます。

    • NAMESPACE: 名前空間リポジトリを作成した Namespace。
    • CONTAINER_NAME: git-synchydration-controllerotel-agentreconciler のいずれか。

同期された commit の確認

クラスタと同期した commit を確認できます。

  • RootSync の同期された commit を表示するには、次のコマンドを実行します。

    kubectl get rootsync root-sync -n config-management-system
    
  • RepoSync の同期された commit を表示するには、次のコマンドを実行します。

    kubectl get reposync repo-sync -n NAMESPACE
    

    NAMESPACE は、名前空間リポジトリを作成した Namespace に置き換えます。

これらのコマンドの出力には、元の commit の値と同期された commit の値が表示されます。たとえば RepoSync のコマンドを実行すると、次のような出力が表示されます。

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

RENDERINGCOMMIT 列の値は、hydration-controller によって処理される commit です。レンダリングの必要がない場合、値は SOURCECOMMIT 列と同じです。SOURCECOMMIT 列の値は、クラスタと同期する必要がある Git リポジトリからの commit です。SYNCCOMMIT 列の値は、クラスタにデプロイされている commit です。SOURCECOMMIT 列と SYNCCOMMIT 列の 2 つの値が同じ場合は、想定された commit がクラスタにデプロイ済みです。

オブジェクトの詳細の表示

RootSync オブジェクトと RepoSync オブジェクトの詳細を表示するには、kubectl describe を使用します。このコマンドにより、潜在的なエラーに関する詳細情報が提供されます。

  • RootSync オブジェクトの詳細を表示するには、次のコマンドを実行します。

    kubectl describe rootsync root-sync -n config-management-system
    
  • RepoSync オブジェクトの詳細を表示するには、次のコマンドを実行します。

    kubectl describe reposync repo-sync -n NAMESPACE
    

    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 は、名前空間リポジトリを作成した Namespace に置き換えます。

出力には、ResourceGroup のすべてのリソースのステータスが表示されます。たとえば、次の出力は、nginx-deployment という名前の Deployment の準備ができていることを示しています。

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

次のステップ