このページでは、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 オブジェクトが自動的に作成されます。複数のリポジトリから同期を構成するときに、Namespace リポジトリの構成情報を含む 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 のすべてのコアシステム コンポーネントの実行に使用する Namespace です。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 カスタマーケアにお問い合わせください。