トラブルシューティングの概要

このページでは、Config Sync で問題が発生した場合に、発生している問題の特定と解決に役立つ一般的なツールと手順について説明します。

サポート対象のバージョンにアップグレードする

サポートされているバージョンへの Config Sync のアップグレードを検討してください。多くの場合、アップグレードにより一般的な問題が解決され、最新の機能を利用できるようになります。サポートされているバージョンを常に使用するために、自動アップグレード(プレビュー)を有効にできます。

nomos コマンドライン ツールを使用する

nomos コマンドライン ツールは、Config Sync の設定に関する重要な分析情報を提供します。以下の各セクションで説明するコマンドは、問題の原因特定を試みる場合や、Cloud カスタマーケアを操作する必要がある場合に特に有効です。

Config Sync のステータスを確認する

nomos status コマンドは、Config Sync のインストールで起きていることを把握するために役立つ、集計データとエラーを提示します。次の情報は nomos status で使用できます。

  • クラスタあたりのインストール ステータス
  • 同期エラー(Git からの読み取りと変更の調整の両方)

バグレポートを作成する

Config Sync で問題が発生し、Cloud カスタマーケアのサポートが必要な場合は、nomos bugreport コマンドを使用して有益なデバッグ情報をサポートチームに提供できます。

このコマンドを使用すると、kubectl コンテキストで設定された Kubernetes クラスタに関する情報を含むタイムスタンプ付きの zip ファイルが生成されます。このファイルには、Config Sync Pod のログも含まれています。Config Sync と同期されているリソースの情報は含まれません。

概要ダッシュボードを表示する

Config Sync ダッシュボードでは、Config Sync が管理するパッケージのステータスと、これらのパッケージ内のリソースのステータスの概要を確認できます。このダッシュボードを確認すると、Config Sync のインストール ステータスの概要を迅速に確認し、問題のあるパッケージを検出できます。

  • ダッシュボードにアクセスするには、Google Cloud コンソールで [機能] セクションの [構成] ページに移動します。

    [構成] に移動

モニタリングとログ分析を使用する

Config Sync をモニタリングしてログを調べると、バグの原因を特定し、予期しない動作をより深く理解できます。

Config Sync の指標について

Config Sync の指標を使用して、Config Sync の正常性を可視化します。

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

Google Cloud コンソールまたは Google Cloud CLI を使用して Config Sync をインストールすると、Config Sync によってRootSync オブジェクトが自動的に作成されます。複数のリポジトリから同期を構成するときに、名前空間リポジトリの構成情報を含む RepoSync オブジェクトを作成できます。

これらのオブジェクトをモニタリングすると、Config Sync の状態に関する貴重な情報が得られます。詳細については、RootSync オブジェクトと RepoSync オブジェクトをモニタリングするをご覧ください。

サービスレベル指標(SLI)を使用する

Config Sync が意図したとおりに機能していないときに通知を受け取るには、Config Sync SLI を使用します。

クエリログ

ログ エクスプローラを使用して、Config Sync のログデータを取得、表示、分析できます。これらのログには、オペレーター Pod または Reconciler Pod の再起動時に nomos bugreport によってキャプチャされない貴重な履歴データが含まれる場合があります。問題の診断に活用できるクエリの例については、Config Sync ログをクエリするをご覧ください。

kubectl コマンドライン ツールを使用してリソースを調べる

Config Sync は、kubectl コマンドでクエリ可能な複数のカスタム リソースで構成されています。次のコマンドを使用すると、Config Sync の各オブジェクトのステータスを確認できます。

Config Sync で管理されている Kubernetes リソースについて、次の情報を把握しておく必要があります。

  • config-management-system は、Config Sync のすべてのコアシステム コンポーネントの実行に使用する名前空間です。
  • configmanagement.gke.ioconfigsync.gke.io は、すべてのカスタム リソースに使用する API グループです。

以下の各セクションでは、kubectl コマンドを使用して Config Sync を調べる方法について説明します。

カスタム リソースを一覧表示する

  • カスタム リソースの一覧を取得するには、次のコマンドを実行します。

    kubectl api-resources | grep -E "configmanagement.gke.io|configsync.gke.io"
    
  • 個別のカスタム リソースを使用するには、次のコマンドを実行します。

    kubectl get RESOURCE -o yaml.
    

    RESOURCE は、クエリを実行する対象リソースの名前に置き換えます。

    たとえば、次のコマンドの出力では、RootSync オブジェクトのステータスを確認できます。

    kubectl get rootsync -n config-management-system -o yaml
    

オブジェクトのトークン アノテーションを確認する

マネージド Kubernetes オブジェクトが Config Sync によって最後に更新された日時を確認できます。各マネージド オブジェクトには、最後に変更されたときの Git commit のハッシュと、その変更を含む構成ファイルのパスがアノテーションとして設定されています。

たとえば、namespace-readers という名前の ClusterRoleBinding のアノテーションを取得するには、次のコマンドを実行します。

kubectl get clusterrolebinding namespace-readers

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

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    configmanagement.gke.io/source-path: cluster/namespace-reader-clusterrolebinding.yaml
    configmanagement.gke.io/token: bbb6a1e2f3db692b17201da028daff0d38797771
  name: namespace-readers
...

詳細については、ラベルとアノテーションをご覧ください。

その他のトラブルシューティング ドキュメントを確認する

依然として問題が解決しない場合は、次のリソースが参考になる可能性があります。

  • エラー メッセージが表示された場合は、エラー リファレンス ページでエラーの解決方法をご確認ください。

  • 問題の原因が既知の問題であるかどうかを確認します。

  • 特定の領域に問題がある場合は、目次の問題の種類別にトラブルシューティングを行うセクションに記載されているトラブルシューティング ガイドのいずれかを活用できる可能性があります。

次のステップ