エラー リファレンス
このページでは、Config Sync のエラーコードと、これらのエラーに対処するために推奨される対応について説明します。
Config Sync のエラー メッセージは、KNV1234
という形式のエラー ID で構成されます。1234
は一意の番号で、その後に問題の説明と修正方法の提案が表示されます。K
は Kubernetes の規則から継承され、接頭辞 N
を持つルールは nomos
に固有です。V
はリポジトリとクラスタの初期状態で検出可能なエラーに固有です。して、ソース別にトラフィック データを分類します。リポジトリとクラスタの初期状態で検出可能なエラーのコードは、KNV1XXX
の形式になります。ランタイム時にのみ検出できるエラーのコードは、KNV2XXX
の形式です。
KNV エラーテーブル
エラーコード | 説明 | ご対応のお願い |
---|---|---|
|
Config Sync バージョン 1.6.1 で InternalError の ID が |
なし |
|
Config Sync 1.3 で非推奨になっています。 |
なし |
|
Config Sync 1.3 で非推奨になっています。 |
なし |
|
階層型リポジトリ構造を使用する場合、名前空間構成ファイルが含まれるディレクトリにサブディレクトリを含めることはできません。 名前空間構成が含まれていないディレクトリは抽象名前空間ディレクトリであり、それを継承するディレクトリがあります。そのため、抽象名前空間ディレクトリにはサブディレクトリが必要です。名前空間構成を含むディレクトリは名前空間ディレクトリであり、そこから構成を継承することはできないため、サブディレクトリを持つことはできません。 |
親ディレクトリから名前空間構成を削除するか、サブディレクトリを別の場所に移動します。 |
|
クラスタ スコープ オブジェクトはアノテーション |
|
|
管理アノテーションの有効な設定は |
管理アノテーションが 詳細については、オブジェクトの管理をご覧ください。 |
|
リポジトリ内で宣言されたオブジェクトを解析できませんでした。 |
YAML 形式を検証します。たとえば、
|
|
非構造化リポジトリを使用する場合は、抽象名前空間ディレクトリで構成ファイルを宣言しないでください。 |
エラー メッセージに示された構成ファイルを名前空間ディレクトリに移動します。 詳細については、非構造化リポジトリの使用をご覧ください。 |
|
階層型リポジトリ構造を使用する場合、構成でそれらが含まれる名前空間ディレクトリと一致する名前空間を宣言するか、このフィールドを省略する必要があります。 |
エラー メッセージで特定された名前空間フィールドを更新します。 詳細については、階層型リポジトリの構造をご覧ください。 |
|
構成で、 |
サポートされている以下のいずれかのアノテーションを使用していることを確認します。
|
|
|
エラー メッセージで識別されたラベルを更新します。たとえば、名前を指定したラベルを宣言しようとした場合は、 |
|
Config Sync 1.3 で非推奨になっています。 |
なし |
|
構成で、存在しない ClusterSelector または NamespaceSelector を参照しています。構成のアノテーションでセレクタを使用するには、そのセレクタが存在している必要があります。 |
欠落しているセレクタを作成するか、セレクタが削除された場合は、それを参照している構成を削除します。 |
|
ClusterSelector 構成と NamespaceSelector 構成で正しい構文が使用されているものの、構文エラーが見つかりました。 |
適切なデータスキーマを使用して構成を指定してください。
|
|
Config Sync 1.3.2 で非推奨になっています。 | なし |
|
階層型リポジトリ構造を使用する場合は、ConfigManagement Operator のコンフィグがリポジトリの |
ConfigManagement Operator に少なくとも最小限の構成ファイルを定義します。詳細については、階層型リポジトリの構造をご覧ください。 |
|
Config Sync 1.3 で非推奨になっています。 | なし |
|
階層型リポジトリ構造を使用する場合、 |
エラー メッセージに記載されている名前空間構成ファイルのサブディレクトリを作成します。詳細については、階層型リポジトリの構造をご覧ください。 |
|
階層型リポジトリ構造を使用する場合、名前空間構成ファイルに metadata.name を宣言します。その値は名前空間のディレクトリの名前と一致する必要があります。 |
名前空間の metadata.name またはそのディレクトリを修正します。 |
|
クラスタ内のリソースに対して CustomResourceDefinition が定義されていません。 |
エラー メッセージで参照されるリソースの CustomResourceDefinition を作成します。 Kubernetes の組み込みオブジェクトではないリソースタイプには、CustomResourceDefinition が必要です。 |
|
階層型リポジトリを使用している場合、この種類の構成ファイルを |
エラー メッセージで参照されているリソースを |
|
Repo の構成の |
リポジトリの形式がサポートされているバージョンと互換性がある場合は、 |
|
ディレクトリ名は 64 文字未満で、小文字の英数字または「-」で構成します。先頭と末尾には英数字を使用する必要があります。 |
名前の異なるディレクトリの名前を変更するか、削除します。 |
|
同じ種類の構成ファイルには、同じ名前空間とその親の抽象名前空間内で一意の名前を付ける必要があります。 |
エラー メッセージで参照されている構成ファイルの名前を変更するか、削除して、すべての構成ファイルが一意の名前を付けるようにします。 |
|
同じディレクトリに複数の名前空間リソースを配置することはできません。 |
重複する構成ファイルを削除して、名前空間リソースが 1 つも残らないようにします。 |
|
すべての構成で |
問題のある構成に |
|
|
問題のある構成を削除するか、 |
|
階層型リポジトリを使用する場合、 |
|
|
Config Sync バージョン 1.17.0 以降では、名前空間 |
以前に階層型リポジトリと同期していて、リソースとともにコントローラの名前空間を宣言する必要があった場合は、ソース構造で柔軟性を高めるために非構造化リポジトリへの切り替えを検討してください。 |
|
指定された |
次の条件を満たすように
|
|
Config Sync 1.3 で非推奨になっています。 | なし |
|
名前空間スコープ オブジェクトを |
問題のある構成を正しいディレクトリに移動します。名前空間スコープ オブジェクトの詳細については、名前空間スコープ オブジェクトをご覧ください。 |
|
クラスタ スコープ オブジェクトを |
問題のある構成を正しいディレクトリに移動します。クラスタ スコープ オブジェクトの詳細については、クラスタ スコープ オブジェクトをご覧ください。 |
|
Config Sync 1.3 で非推奨になっています。 | なし |
|
このリソースの種類は、 |
問題のあるリソースを削除します。HierarchyConfigs の詳細については、 |
|
|
|
|
Config Sync はこのオブジェクトを構成できません。 |
問題のある構成をリポジトリから削除します。 |
|
構成ファイルを含む抽象名前空間ディレクトリには、少なくとも 1 つの名前空間サブディレクトリが必要です。 |
抽象 Namespace ディレクトリの下に Namespace ディレクトリを追加するか、抽象 Namespace ディレクトリに Namespace 構成を追加するか、抽象 Namespace ディレクトリから構成ファイルを削除します。 |
|
|
ソース リポジトリから |
|
この |
|
|
カスタム リソース定義(CRD)を削除し、対応するカスタム リソースをリポジトリに残すことはできません。 |
カスタム リソースとともに CRD を削除します。 |
|
CustomResourceDefinition に無効な名前があります。 |
エラー メッセージにある名前を推奨値に変更します。 |
|
構成では、非推奨のグループと種類が使用されています。 |
エラー メッセージの [グループまたは種類] を推奨事項に変更します。 |
|
クラスタ スコープのリソースは |
クラスタ スコープのリソースから metadata.namespace フィールドを削除します。 |
|
名前空間スコープのリソースは、 |
欠落しているフィールドを、名前空間スコープのリソースに追加します。 |
|
構成ファイルのアノテーションに無効な値が含まれています。 |
エラー メッセージの手順に沿ってエラーを解決してください。 |
|
|
次のルールに従うように、
|
|
非マネージド名前空間でリソースが宣言されています。 |
|
|
リソースに無効なラベルがあります。 |
エラー メッセージにリストされている不正なラベルを削除します。 |
|
名前空間リポジトリは、適用先のリポジトリの名前空間で名前空間スコープのリソースのみを宣言できます。 |
すべての Namespace リポジトリで Namespace スコープのリソースが正しく宣言されていることを確認します。 たとえば、
たとえば、 名前空間スコープのリソースが正しく宣言されていることを確認するだけでなく、名前空間がルート リポジトリで宣言されていることを確認してください。これは、namespace がクラスタ スコープであるため必要です。 |
|
namespace リポジトリで宣言できる Kptfile リソースは 1 つだけです。 |
1 つを除くすべての Kptfile リソースを削除します。 |
|
複数の信頼できる情報源のオブジェクトを管理する場合、同じオブジェクト(一致するグループ、種類、名前、namespace)が複数のソースで宣言されると、競合が発生する可能性があります。 たとえば、同じオブジェクトが RootSync と RepoSync によって管理されている場合、RootSync が優先されます。RootSync が最初に適用されると、RepoSync は KNV1060 ステータス エラーを報告します。RepoSync が最初に適用された場合、RootSync は RepoSync のオブジェクトを上書きします。RepoSync は更新を検出すると KNV1060 ステータス エラーを報告します。 |
競合を解決するには、他の信頼できる情報源と一致するように構成を更新するか、競合するオブジェクトをいずれかの情報源から削除します。
|
|
|
エラー メッセージの手順に沿って構成エラーを修正してください。 |
|
Kptfile に有効なインベントリ フィールドがありません。Kptfile には、ID と名前空間の両方を指定した、空ではないインベントリ フィールドが必要です。 |
Kptfile で |
|
kptfile はルート リポジトリで見つかりました。kptfile は、名前空間にスコープされたリポジトリでのみサポートされています。 |
ルート リポジトリから Kptfile を削除します。 |
|
リポジトリ内の |
エラー メッセージの手順に沿って操作します。たとえば、
|
|
CustomResourceDefinition の形式が正しくありません。 |
エラー メッセージで指定されたフィールドを確認し、その値の形式が正しいことを確認してください。 |
|
構成オブジェクトにより宣言されるクラスタセレクタ アノテーションは、1 つだけである必要があります。このエラーは、従来のアノテーション( |
|
|
調整ツールは、宣言されたフィールドをサーバー側の適用と互換性のある形式にエンコードできません。 古いスキーマが原因である可能性があります。 |
エラー メッセージで指定されたフィールドを確認し、それがリソースの種類のスキーマと一致することを確認します。 |
|
レンダリング プロセスで、ユーザーが対処できる問題が発生しました。 |
Git リポジトリに Kustomize 構成が含まれているが、Git 同期ディレクトリに
エラーが
公開リポジトリからリモートベースを pull するときに |
|
Reconciler が、独自の RootSync オブジェクトまたは RepoSync オブジェクトを調整している。RootSync オブジェクトは他の RootSync オブジェクトと RepoSync オブジェクトを管理でき、RepoSync オブジェクトは他の RepoSync オブジェクトを管理できますが、これらは自分自身を管理することはできません。 |
オブジェクトの同期元となる信頼できるソースから RootSync オブジェクトまたは RepoSync オブジェクトを削除します。 |
|
ファイル システム リソースにアクセスする OS レベルのシステムコールが失敗する。 |
このエラーは、無効な YAML 構成か、特殊文字の使用が原因である可能性があります。無効な YAML 構成がある場合は、次のようなエラー メッセージが表示されます。
ファイル名またはパスに特殊文字が含まれていると、 |
|
API サーバーにアクセスするリクエストが失敗します。 |
API 検出エラーが発生している可能性があります。詳細については、API 検出のエラーをご覧ください。 |
|
OS レベルの一般的なシステムコールが失敗します。 | |
|
Config Sync は信頼できる情報源からの読み取りはできません。 |
このエラーの原因として複数の問題が考えられます。信頼できる情報源への接続に関する一般的な問題を解決する方法のヒントについては、信頼できる情報源への接続のトラブルシューティングをご覧ください。 |
|
Config Sync がリソースに対して別のコントローラと競合しています。 このような競合により、大量のリソースを消費し、パフォーマンスが低下する可能性があります。 | コントローラの競合を診断して解決する方法については、コントローラの競合のトラブルシューティングをご覧ください。 |
|
誤って削除されないように、Config Sync では 1 回の commit ですべての Namespace またはクラスタ スコープのリソースを削除することはできません。 |
Config Sync アドミッション Webhook が無効になっている場合は、すべてのリソースを削除する commit を元に戻します。
管理下のすべてのリソースセットを削除する場合は、次の手順を行います。
|
|
Config Sync もその変更を試みる間に、API サーバー上のリソースが変更または削除されます。 |
このタイプのエラーが起動時のみ発生する場合、または発生する頻度が低い場合、このエラーは無視してかまいません。
これらのエラーが一時的なものではない場合(数分以上続く場合)、重大な問題が発生している可能性があります。その場合、 |
|
これは、Config Sync が一部の構成ファイルをクラスタに同期できなかったことを示す一般的なエラーです。 |
このエラーの原因として複数の問題が考えられます。同期に関する一般的な問題の解決方法については、同期のトラブルシューティングをご覧ください。 |
|
これは、ある特定のリソースまたはリソースのセットに問題があることを示す一般的なエラーです。 |
エラーの原因となった具体的なリソースがメッセージに含まれています。これらのリソースを調査してください。 |
|
続行するには特定のリソースが必要ですが、リソースが見つかりませんでした。たとえば、ConfigManagement Operator があるリソースを更新しようとしていて、更新の計算中にそのリソースが削除された場合がこれに該当します。 |
不足しているリソースを作成するか、復元します。 |
|
このエラーは、ある APIResource が 1 つだけ許可されているコンテキストで、その APIResource のインスタンスが複数見つかったことを示します。たとえば、1 つのクラスタに存在する |
追加の APIResource を削除します。 |
|
名前空間のリコンシラに、リソースを管理するための十分な権限がありません。 |
リコンサイラに十分な権限があることを確認してください。 |
|
この警告は、Config Sync Webhook の構成が不正に変更された場合に発生します。不正な Webhook の構成は無視されます。 |
不正に変更された Webhook を削除します。 |
|
レンダリング プロセスで内部エラーが発生しました。たとえば、Config Sync はファイル システムにアクセスできません。 |
このエラーは、Pod が正常でないことを示している可能性があります。次のコマンドを実行して、調整 Pod を再起動できます。 # restart a root reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=root-reconciler # restart a namespace reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=ns-reconciler-NAMESPACE |
|
このエラーは、後で自動的に解決される一時的な問題を表します。たとえば、レンダリング状態がソース構成ファイルと一致しない場合、このエラーが表示されることがあります。 |
エラーは自動的に解決されるはずです。 |
|
|
実行した正確なコマンドと発生したメッセージを記載したバグレポートを提出してください。 |
|
エラー メッセージが文書化されていないエラーが発生しました。 |
発生したエラーに関するドキュメントはまだ作成されていません。 |
KNV コードのないエラー メッセージ
Config Sync Reconciler によって報告されるエラーには KNV エラーコードが示されますが、他のコンポーネントから報告されるエラーには KNV コードがありません。たとえば、権限拒否エラーは、Config Sync 上のレイヤであるフリート コントローラに発生します。
次の表に、KNV 接頭辞が付加されていない一般的なエラーを示します。
エラー メッセージ | ご対応のお願い |
---|---|
|
エクスポータをビルドできない
Open Telemetry Collector のコンポーネントが同じ Namespace のデフォルトのサービス アカウントにアクセスできない場合、 この問題は通常、クラスタで Workload Identity が有効になっている場合に発生します。 この問題を解決するには、Config Sync のモニタリングの手順に沿って、デフォルトのサービス アカウントに指標の書き込み権限を付与します。
IAM を設定してもエラーが解決しない場合は、 |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
サーバー証明書の検証エラー
このメッセージは、サーバーがカスタム認証局(CA)の証明書を使用して構成されていることを示します。ただし、カスタム CA が正しく構成されていないため、コンテナがサーバーから取得できません。
この問題を解決するには、まず RootSync オブジェクトまたは RepoSync オブジェクトで
このフィールドが構成されていて、Secret オブジェクトが存在する場合は、Secret オブジェクトに完全な証明書が含まれていることを確認します。 サーバー証明書を一覧表示する方法の例を次に示します。 echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' ネットワーク管理チームに CA 証明書を取得するようリクエストできます。 |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
pull シークレットを取得できない。イメージの pull が失敗する場合があるGKE on VMware で限定公開レジストリを使用すると、Config Sync のインストールまたはアップグレードが停止する可能性があります。このメッセージのようなエラーが表示されます。 この問題を解決するには、Config Sync をインストールまたはアップグレードする前に、非公開レジストリを使用して Config Sync を更新するの手順を行ってください。 |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
権限が却下されましたConfig Sync を構成しようとしたときに、次の例のようなエラーが表示された場合は、GKE Hub 管理者ロールが割り当てられていない可能性があります。 必要な権限があることを確認するには、必要な IAM ロールが付与されていることを確認してください。 |
次のステップ
- 既知の問題を確認する
- Config Sync のトラブルシューティングの概要を確認する。
- さらにサポートが必要な場合は、Cloud カスタマーケアにお問い合わせください。