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

このページでは、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 オブジェクトを作成できます。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.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
...

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

Gemini Cloud Assist で診断を迅速化する

前述のセクションで説明したツールを使用しても、問題の原因がすぐに明らかにならないことがあります。複雑なケースの調査には時間がかかり、高度な専門知識が必要です。このようなシナリオでは、Gemini Cloud Assist が役立ちます。隠れたパターンやサーフェス異常を自動的に検出し、概要を提供して、考えられる原因を迅速に特定するのに役立ちます。

Gemini Cloud Assist にアクセスする

Gemini Cloud Assist にアクセスする手順は次のとおりです。

  1. Google Cloud コンソールで、任意のページに移動します。
  2. Google Cloud コンソールのツールバーで、[Gemini Cloud Assist チャットを開始または終了します] をクリックします。

    [Cloud Assist] パネルが開きます。表示されているプロンプトの例をクリックするか、[プロンプトを入力] フィールドにプロンプトを入力します。

プロンプトの例を調査する

Gemini Cloud Assist がどのように役立つかを確認するために、プロンプトの例をいくつか示します。

テーマ シナリオ サンプル プロンプト Gemini Cloud Assist の活用方法
初期設定 プラットフォーム エンジニアが、Git リポジトリから GKE クラスタを管理できるように、Config Sync を初めて設定しています。 GitHub リポジトリから GKE クラスタにマニフェストを同期するように Config Sync を設定するにはどうすればよいですか? Gemini Cloud Assist は、Config Sync の設定に関するステップバイステップ ガイドを提供します。このガイドでは、フリートの登録と機能の有効化について説明し、リポジトリ URL、ブランチ、パス、認証方法(publictokenssh など)などの詳細について説明します。
同期エラーのトラブルシューティング デベロッパーが新しいマニフェストを commit したが、リソースがクラスタに適用されず、同期ステータスにエラーコードが表示される。 Config Sync の RootSync オブジェクトに「KNV2009: the server could not find the requested resource」と表示されます。これはどういう意味ですか?どうすれば修正できますか? Gemini Cloud Assist はエラーコードを分析し、通常は Config Sync が想定される Kubernetes リソースを見つけられないか、操作できないことを示していると説明します。次に、一般的な原因(RBAC 権限の欠落、リソース オブジェクト サイズの制限超過、ディレクトリ パスの誤り、外部インベントリの競合、管理対象外リソースの問題など)について詳しく説明し、原因ごとに具体的なトラブルシューティングの手順を示します。
複数のチームを管理する 組織は、アプリケーション チームに中央プラットフォーム リポジトリへのアクセス権を付与せずに、特定の Namespace で独自の構成を管理できるようにする必要があります。 Config Sync の RootSync オブジェクトと RepoSync オブジェクトの違いは何ですか?RepoSync はどのような場合に使用すべきですか?

Gemini Cloud Assist は、RootSync オブジェクトと RepoSync オブジェクトの主な違いを説明します。RootSync オブジェクトはクラスタ スコープであり、通常は管理者がクラスタ全体の構成に使用します。一方、RepoSync オブジェクトは Namespace スコープであり、アプリケーション チームが特定の Namespace 内のリソースを管理するために設計されており、委任とマルチテナンシーを促進します。

Gemini Cloud Assist は、RepoSync オブジェクトを使用すべきシナリオについても詳しく説明し、マルチテナンシーと構成ミスによる影響範囲の縮小というメリットを強調しています。

プロアクティブな検証 デベロッパーは、本番環境での同期の失敗を避けるため、新しいマニフェストをリポジトリにコミットする前に、そのマニフェストが有効であることを確認したいと考えています。 Kubernetes マニフェストを Git リポジトリに push する前に、ローカルマシンで Config Sync エラーを確認するにはどうすればよいですか? Gemini Cloud Assist は、nomos コマンドライン ツールを使用して Config Sync エラーの Kubernetes マニフェストを確認する方法を説明します。構文検証に nomos vet コマンドを使用する方法と、Kustomize または Helm からレンダリングされた構成をプレビューする nomos hydrate コマンドの使用方法について説明します。Gemini Cloud Assist は、Git にプッシュする前にこれらのチェックを統合するための推奨ワークフローも示します。

詳しくは、次のリソースをご覧ください。

Gemini Cloud Assist Investigations を使用する

Gemini Cloud Assist は、インタラクティブなチャットに加えて、Gemini Cloud Assist Investigations を通じて、より自動化された詳細な分析を実行できます。この機能は、ログ エクスプローラなどのワークフローに直接統合されており、強力な根本原因分析ツールです。

エラーまたは特定のリソースから調査を開始すると、Gemini Cloud Assist はログ、構成、指標を分析します。このデータを使用して、考えられる根本原因に関するランク付けされた観測結果と仮説を生成し、推奨される次のステップを提供します。これらの結果を Google Cloud サポートケースに転送して、問題の迅速な解決に役立つ貴重なコンテキストを提供することもできます。

詳細については、Gemini ドキュメントの Gemini Cloud Assist Investigationsをご覧ください。

その他のトラブルシューティングに関するドキュメントを読む

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

  • エラー メッセージが表示された場合は、エラー リファレンスのページでエラーの解決に関するアドバイスをご覧ください。

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

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

次のステップ

  • このドキュメントに問題のソリューションが見当たらない場合は、サポートを受けるで、次のトピックに関するアドバイスなど、詳細なヘルプをご覧ください。

    • Cloud カスタマーケアに問い合わせて、サポートケースを登録する。
    • StackOverflow で質問してコミュニティからサポートを受ける。kpt または Kustomize を使用する場合は、kpt タグまたは kustomize タグを使用して類似の問題を検索します。
    • GitHub の公開バグトラッカーを使用して、バグの報告や機能リクエストの登録を行う。