RootSync オブジェクトと RepoSync オブジェクトをモニタリングする
このページでは、RootSync オブジェクトと RepoSync オブジェクトをモニタリングするさまざまな方法について説明します。たとえば、信頼できる情報源の最新の commit がクラスタに適用され、正常に調整されているかを確認することができます。
ログの表示
このセクションでは、RootSync オブジェクトと RepoSync オブジェクトのログを表示する方法について説明します。ログを確認すると、潜在的なエラーに関する情報を確認できます。
RootSync または RepoSync Reconciler のログを表示するには、次のコマンドを実行します。
kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
次のように置き換えます。
RECONCILER_NAME
: RootSync オブジェクトまたは RepoSync オブジェクトの Reconciler 名。RootSync
の場合、Reconciler の名前はroot-reconciler-ROOT_SYNC_NAME
です。RootSync の名前がroot-sync
の場合はroot-reconciler
です。RepoSync
の場合、Reconciler の名前はns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
またはns-reconciler-NAMESPACE
(RepoSync の名前がrepo-sync
の場合)です。ここで、NAMESPACE
は RepoSync オブジェクトを作成した Namespace です。
CONTAINER_NAME
: コンテナ名。git-sync
:git-sync
コンテナは、構成ファイルを Git リポジトリから pull し、リコンサイラ コンテナから読み取り可能なローカル ディレクトリに保存します。oci-sync
:oci-sync
コンテナは、Reconciler コンテナが読み取り可能なローカル ディレクトリに、OCI イメージの構成ファイルを pull します。helm-sync
:helm-sync
コンテナは、Reconciler コンテナが読み取り可能なローカル ディレクトリに、Helm チャートの構成ファイルを pull します。hydration-controller
:hydration-controller
コンテナは、リポジトリから pull された Helm または Kustomize 構成をレンダリングし、reconciler
コンテナでさらに処理できるように、その構成を共有ボリュームに保存します。reconciler
:reconciler
コンテナは構成ファイルをクラスタに適用します。otel-agent
:otel-agent
コンテナは、OpenTelemetry エージェントで、Config Sync の指標の取得とエクスポートを行います。
同期された commit を表示する
クラスタと同期された commit を確認するには、RootSync オブジェクトまたは RepoSync オブジェクトの .status.sync
フィールドを確認します。
RootSync オブジェクトの同期された commit を表示するには、次のコマンドを実行します。
kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
ROOT_SYNC_NAME
は、RootSync オブジェクトの名前に置き換えます。RepoSync オブジェクトの同期された commit を表示するには、次のコマンドを実行します。
kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE
次のように置き換えます。
REPO_SYNC_NAME
: RepoSync オブジェクトの名前。REPO_SYNC_NAMESPACE
: Namespace リポジトリを作成した Namespace。
これらのコマンドの出力には、元の commit の値と同期された commit の値が表示されます。たとえば RepoSync のコマンドを実行すると、次のような出力が表示されます。
NAME RENDERINGCOMMIT SOURCECOMMIT SYNCCOMMIT
root-sync 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72
RENDERINGCOMMIT
列の値は、hydration-controller
によって処理される commit です。レンダリングの必要がない場合、値は SOURCECOMMIT
列と同じです。SOURCECOMMIT
列の値は、クラスタと同期する必要がある信頼できる情報源からの commit です。SYNCCOMMIT
列の値は、クラスタにデプロイされている commit です。SOURCECOMMIT
列と SYNCCOMMIT
列の 2 つの値が同じ場合は、想定された commit がクラスタにデプロイ済みです。
commit のリソースが調整されていることを確認する
RootSync オブジェクトまたは RepoSync オブジェクトごとに、信頼できる情報源で宣言されたマネージド リソースの調整ステータスを取得する一意の ResourceGroup オブジェクトがあります。ResourceGroup オブジェクトは、RootSync オブジェクトまたは RepoSync オブジェクトと同じ Namespace と名前を使用します。たとえば、Namespace config-management-system
に root-sync
という名前の RootSync オブジェクトがある場合、対応する ResourceGroup オブジェクトも Namespace config-management-system
の root-sync
を使用します。最新の commit が正常に適用されると、ResourceGroup オブジェクトには、最新の commit のマネージド リソースのグループ、種類、Namespace、名前が含まれます。
次のコマンドを実行して ResourceGroup オブジェクトを取得できます。
RootSync オブジェクトの ResourceGroup オブジェクトを取得するには:
kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
RepoSync オブジェクトの ResourceGroup オブジェクトを取得するには:
kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
次のように置き換えます。
ROOT_SYNC_NAME
: 検索する ResourceGroup オブジェクトの名前。REPO_SYNC_NAME
: 検索する ResourceGroup オブジェクトの名前。REPO_SYNC_NAMESPACE
: 検索する ResourceGroup オブジェクトの名前。
commit 内のリソースが調整されたことを確認するには、出力で次のことを確認します。
.status.observedGeneration
は、ResourceGroup オブジェクトのフィールド.metadata.generation
の値と同じです。Stalled
条件とReconciling
条件の両方のstatus
が"False"
です。.status.resourceStatuses
フィールドの各項目のステータスはCurrent
になります。
エラーを確認する
RootSync オブジェクトと RepoSync オブジェクトは、status
フィールドを使用して、信頼できるソースからクラスタに構成ファイルを同期する際に発生するエラーを追跡します。
RootSync オブジェクトのステータスを表示するには、次のコマンドを実行します。
kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
ROOT_SYNC_NAME
は、RootSync オブジェクトの名前に置き換えます。RepoSync オブジェクトのステータスを表示するには、次のコマンドを実行します。
kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
次のように置き換えます。
REPO_SYNC_NAME
: RepoSync オブジェクトの名前。NAMESPACE
: Namespace リポジトリを作成した Namespace。
次の表に、status
フィールドのサブフィールドを示します。
フィールド | 説明 |
---|---|
status.rendering.errors | 信頼できるソースからの kustomize 構成ファイルのレンダリング プロセス中に発生したエラー。エラーが多すぎる場合、Config Sync によってエラーが切り詰められるため、発生したすべてのエラーが含まれない場合があります。 |
status.rendering.errorSummary.totalCount | 信頼できるソースからの構成ファイルのレンダリング プロセス中に発生したエラーの総数を追跡する整数。 |
status.rendering.errorSummary.truncated | status.rendering.errors フィールドに、信頼できるソースからの構成ファイルのレンダリング プロセス中に発生したすべてのエラーが含まれているかどうかを示すブール値。 |
status.rendering.errorSummary.errorCountAfterTruncation |
status.rendering.errors フィールドのエラー数を追跡する整数。 |
status.source.errors | 信頼できるソースからの構成ファイルの読み取りと解析中に発生したエラー。エラーが多すぎる場合、Config Sync によってエラーが切り詰められるため、発生したすべてのエラーが含まれない場合があります。 |
status.source.errorSummary.totalCount | 信頼できるソースから構成ファイルを読み取って解析する際に発生したエラーの合計数を追跡する整数。 |
status.source.errorSummary.truncated | status.source.errors フィールドに、信頼できるソースからの構成ファイルの読み取りと解析中に発生したすべてのエラーが含まれているかどうかを示すブール値。 |
status.source.errorSummary.errorCountAfterTruncation |
status.source.errors フィールドのエラー数を追跡する整数。 |
status.sync.errors | 信頼できるソースから構成ファイルを適用する際に発生したエラー。エラーが多すぎる場合、Config Sync によってエラーが切り詰められるため、発生したすべてのエラーが含まれない場合があります。 |
status.sync.errorSummary.totalCount | 信頼できるソースからの構成ファイルを適用する際に発生したエラーの合計数を追跡する整数。 |
status.sync.errorSummary.truncated | status.sync.errors フィールドに、信頼できるソースから構成ファイルを適用する際に発生したすべてのエラーが含まれているかどうかを示すブール値。 |
status.sync.errorSummary.errorCountAfterTruncation |
status.sync.errors フィールドのエラー数を追跡する整数。 |
status.conditions |
RootSync オブジェクトまたは RepoSync オブジェクトの現在の状態を追跡する条件のリスト。 条件の type フィールドが Reconciling または Stalled の場合:
Syncing の場合:
|
オブジェクトの詳細を表示する
RootSync オブジェクトと RepoSync オブジェクトの詳細を表示するには、kubectl describe
を使用します。このコマンドにより、潜在的なエラーに関する詳細情報が提供されます。
RootSync オブジェクトの詳細を表示するには、次のコマンドを実行します。
kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
ROOT_SYNC_NAME
は、RootSync オブジェクトの名前に置き換えます。RepoSync オブジェクトの詳細を表示するには、次のコマンドを実行します。
kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
次のように置き換えます。
REPO_SYNC_NAME
: RepoSync オブジェクトの名前。NAMESPACE
: Namespace リポジトリを作成した Namespace。
リソースの準備状況を確認する
クラスタに同期されたリソースの準備状況を確認するには、調整ステータスを表示します。たとえば、調整ステータスを表示すると、同期された Deployment がトラフィックを提供する準備ができているかどうかを確認できます。
クラスタと同期された信頼できる情報源の場合は、すべてのリソースの調整ステータスが ResourceGroup というリソースに集約されます。RootSync オブジェクトや RepoSync オブジェクトごとに ResourceGroup が生成され、クラスタに適用される一連のリソースを取り込んで、それらのステータスを集約します。
RootSync オブジェクトの調整ステータスを表示するには、次のコマンドを実行します。
kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
ROOT_SYNC_NAME
は、RootSync オブジェクトの名前に置き換えます。RepoSync オブジェクトの調整ステータスを表示するには、次のコマンドを実行します。
kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
次のように置き換えます。
REPO_SYNC_NAME
: RepoSync オブジェクトの名前。NAMESPACE
: Namespace リポジトリを作成した Namespace。
出力には、ResourceGroup のすべてのリソースのステータスが表示されます。たとえば、次の出力は、nginx-deployment
という名前の Deployment の準備ができていることを示しています。
resourceStatuses:
- group: apps
kind: Deployment
name: nginx-deployment
namespace: default
status: Current