トラブルシューティングの概要
このページでは、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.io
とconfigsync.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
...
詳細については、ラベルとアノテーションをご覧ください。
その他のトラブルシューティング ドキュメントを確認する
依然として問題が解決しない場合は、次のリソースが参考になる可能性があります。
エラー メッセージが表示された場合は、エラー リファレンス ページでエラーの解決方法をご確認ください。
問題の原因が既知の問題であるかどうかを確認します。
特定の領域に問題がある場合は、目次の問題の種類別にトラブルシューティングを行うセクションに記載されているトラブルシューティング ガイドのいずれかを活用できる可能性があります。
次のステップ
- さらにサポートが必要な場合は、Cloud カスタマーケアにお問い合わせください。