このページでは、Backup for GKE の使用時に発生する可能性のあるシステム関連のエラー、リソースのバックアップ時に考慮すべき事項、問題のトラブルシューティングの手順について説明します。
エラー 100020102: 厳密な許可モード - CRD のバックアップに失敗しました - サポートされていない v1beta1 API バージョン
100020102 エラーは、元々 apiextensions.k8s.io/v1beta1 バージョンとして適用された CustomResourceDefinition のバックアップの試行が、apiextensions.k8s.io/v1 API バージョンで必要な構造スキーマがないために失敗した場合に発生します。このエラーにより、次のエラー メッセージが表示されます: Strict permissive mode - Failed to backup CRD - Unsupported v1beta1 API Version
このエラーは、Google Kubernetes Engine バージョン 1.22 で apiextensions.k8s.io/v1 API バージョンが削除されたために発生します。GKE バージョン 1.22 の API 削除の詳細については、GKE v1.22 の API 削除をご覧ください。
制約ありモードでのバックアップ オペレーションの動作
制約ありモードの場合、または厳密なバックアップ プランの場合、v1beta1 API で作成された CustomResourceDefinition など、バックアップできないリソースが検出されると、バックアップ オペレーションは失敗します。このエラーは、リソースに v1 API で必要な構造スキーマがないために発生します。この CustomResourceDefinition が存在すると、新しいクラスタに正しく復元されない可能性があるため、重大なエラーと見なされます。
このエラーを解決するには、次の手順で対応します。
kubectl get crdコマンドを実行して、問題のあるCustomResourceDefinitionを特定します。kubectl get crd CRD_NAMECRD_NAMEは、エラー メッセージのCustomResourceDefinitionの名前に置き換えます。YAML 出力で、次の条件を見つけて、
CustomResourceDefinitionがvbeta1API からv1API に正しく変換されたかどうかを確認します。spec.versions:spec.versionsフィールドに表示されている各バージョンを確認して、spec.versions条件を見つけます。spec.versionsのいずれかにschema.openAIV3Schemaフィールドがない場合、CustomResourceDefinitionにはそのバージョンの構造スキーマが定義されていません。status.conditions:type:NonStructuralSchema条件を見つけてstatus.conditions条件を見つけます。status.conditionsのstatusがtrueの場合、スキーマが構造的でないことを明示的に示しています。
次の手順で
CustomResourceDefinitionからv1API バージョンにアップグレードします。カスタム リソース内のすべてのフィールドとその型を定義する構造スキーマを追加して、既存の
CustomResourceDefinitionを編集し、v1標準と互換性を持たせます。構造スキーマを追加する方法の詳細については、構造スキーマの指定をご覧ください。互換性のある
v1マニフェストをクラスタに適用します。
アップグレードが成功したら、バックアップ オペレーションを再試行します。それ以外の場合は、次のいずれかの方法で問題を解決します。
クラスタで
CustomResourceDefinitionが使用されていない場合は、kubectl delete crdコマンドを実行してCustomResourceDefinitionを削除します。kubectl delete crd CRD_NAMECRD_NAMEは、削除するCustomResourceDefinitionの名前に置き換えます。バックアップ プランで制限なしモードを有効にします。これにより、Backup for GKE はリソース(
v1beta1API バージョンのCustomResourceDefinitionsを含む)をスキップし、残りのバックアップ オペレーションを続行できます。制約なしモードを有効にする方法については、バックアップ プランで制約なしモードを有効にするをご覧ください。
バックアップ オペレーションを再試行します。オペレーションが引き続き失敗する場合は、Cloud カスタマーケアにお問い合わせください。
エラー 100040102: Namespace が見つかりません
エラー 100040102 は、バックアップ スコープで指定された Namespace がクラスタ内で見つからないため、バックアップ オペレーションの実行が失敗した場合に発生します。Backup for GKE エージェントは、BackupPlan 構成の selectedNamespaces フィールドに明示的にリストされている 1 つ以上の Namespace を特定できませんでした。Backup for GKE では、バックアップ オペレーションの開始時に、指定されたすべての Namespace がクラスタに存在する必要があります。Namespace が見つからないと、次のエラー メッセージが表示されます。
Namespace [NAMESPACE_NAME] is not found.
この問題を解決するには、次の手順で対応します。
BackupPlan構成のselectedNamespacesリストを確認して、Namespace が正しく入力されていることを確認します。kubectl get namespaceコマンドを実行して、エラー メッセージで報告された Namespace が存在することを確認します。kubectl get namespace NAMESPACE_NAMENAMESPACE_NAMEは、エラー メッセージで報告される Namespace の名前に置き換えます。Namespace が存在しない場合は、Namespace が見つからなかったことを示すメッセージ(
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not foundなど)が表示されます。BackupPlanを修正します。Namespace のスペルが間違っている場合は、正しい Namespace 名でBackupPlanを正しく更新します。Namespace が本当に存在せず、バックアップする必要がない場合は、BackupPlan構成のselectedNamespacesリストから削除します。BackupPlanに必要な修正を行った後、バックアップ オペレーションを再試行して、新しいバックアップを開始します。
オペレーションが引き続き失敗する場合は、Cloud カスタマーケアにお問い合わせください。