Cette page décrit les erreurs liées au système que vous pouvez rencontrer lorsque vous utilisez Sauvegarde pour GKE, les éléments à prendre en compte lorsque vous sauvegardez des ressources et les étapes à suivre pour résoudre le problème.
Erreur 100020102 : Mode permissif strict – Échec de la sauvegarde du CRD – Version de l'API v1beta1 non compatible
L'erreur 100020102 se produit lorsqu'une tentative de sauvegarde d'un CustomResourceDefinition initialement appliqué en tant que version apiextensions.k8s.io/v1beta1 échoue, car il ne dispose pas du schéma structurel requis dans la version apiextensions.k8s.io/v1 de l'API. Cette erreur génère le message d'erreur suivant : Strict permissive mode - Failed to backup CRD - Unsupported v1beta1 API Version.
Cette erreur se produit, car la version de l'API apiextensions.k8s.io/v1 a été supprimée dans Google Kubernetes Engine version 1.22. Pour en savoir plus sur la suppression d'API pour GKE version 1.22, consultez Suppression d'API pour GKE version 1.22.
Comportement de l'opération de sauvegarde en mode non permissif
En mode non permissif ou dans un plan de sauvegarde strict, l'opération de sauvegarde échoue si elle rencontre une ressource qui ne peut pas être sauvegardée, comme un CustomResourceDefinition créé avec l'API v1beta1. Cette erreur se produit, car la ressource ne dispose pas du schéma structurel requis par l'API v1. La présence de cet CustomResourceDefinition est considérée comme une erreur critique, car il est possible qu'il ne soit pas restauré correctement dans un cluster plus récent.
Pour résoudre cette erreur, suivez les instructions ci-dessous :
Identifiez le
CustomResourceDefinitionproblématique en exécutant la commandekubectl get crd:kubectl get crd CRD_NAMERemplacez
CRD_NAMEpar le nom de l'CustomResourceDefinitionindiqué dans votre message d'erreur.Dans le résultat YAML, vérifiez si
CustomResourceDefinitiona été correctement converti de l'APIvbeta1à l'APIv1en recherchant les conditions suivantes :spec.versions: recherchez la conditionspec.versionsen examinant chaque version listée sous le champspec.versions. Si l'un desspec.versionsne comporte pas le champschema.openAIV3Schema, cela signifie qu'aucun schéma structurel n'est défini pour cette version deCustomResourceDefinition.status.conditions: localisez la conditionstatus.conditionsen recherchant la conditiontype:NonStructuralSchema. Si la valeurstatusdestatus.conditionsesttrue, cela confirme explicitement que le schéma n'est pas structurel.
Mettez à niveau la version de l'API
CustomResourceDefinitionversv1en procédant comme suit :Modifiez le
CustomResourceDefinitionexistant pour le rendre compatible avec la normev1en ajoutant un schéma structurel qui définit chaque champ et son type dans la ressource personnalisée. Pour savoir comment ajouter un schéma structurel, consultez Spécifier un schéma structurel.Appliquez le fichier manifeste
v1compatible à votre cluster.
Si la mise à niveau réussit, réessayez l'opération de sauvegarde. Sinon, utilisez l'une des méthodes suivantes pour résoudre le problème :
Supprimez le
CustomResourceDefinitionen exécutant la commandekubectl delete crdsi leCustomResourceDefinitionn'est pas utilisé dans le cluster.kubectl delete crd CRD_NAMERemplacez
CRD_NAMEpar le nom de l'CustomResourceDefinitionque vous souhaitez supprimer.Activez le mode permissif sur le plan de sauvegarde, ce qui permet à Sauvegarde pour GKE d'ignorer la ressource (y compris
CustomResourceDefinitionsdans la version d'APIv1beta1) et de poursuivre le reste de l'opération de sauvegarde. Pour savoir comment activer le mode permissif, consultez Activer le mode permissif sur un plan de sauvegarde.
Réessayez de sauvegarder vos données. Si l'opération continue d'échouer, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.
Erreur 100040102 : Espace de noms introuvable
L'erreur 100040102 se produit lorsqu'une tentative d'opération de sauvegarde échoue, car un espace de noms spécifié dans le champ d'application de la sauvegarde est introuvable dans le cluster. L'agent Backup for GKE n'a pas pu localiser un ou plusieurs espaces de noms explicitement listés dans le champ selectedNamespaces de la configuration BackupPlan. Sauvegarde pour GKE exige que tous les espaces de noms spécifiés soient présents dans le cluster au moment où l'opération de sauvegarde est lancée. Si l'espace de noms est introuvable, le message d'erreur suivant s'affiche :
Namespace [NAMESPACE_NAME] is not found.
Pour résoudre ce problème, suivez les instructions ci-dessous :
Vérifiez que l'espace de noms a été saisi correctement en consultant la liste
selectedNamespacesdans votre configurationBackupPlan.Vérifiez que l'espace de noms indiqué dans le message d'erreur existe en exécutant la commande
kubectl get namespace:kubectl get namespace NAMESPACE_NAMERemplacez
NAMESPACE_NAMEpar le nom de l'espace de noms indiqué dans le message d'erreur.Si l'espace de noms n'existe pas, un message s'affiche pour indiquer qu'il n'a pas été trouvé (par exemple,
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not found).Corrigez
BackupPlan. Si le nom de l'espace de noms comporte une faute d'orthographe, remplacezBackupPlanpar le nom correct. Si l'espace de noms n'existe vraiment plus et n'a pas besoin d'être sauvegardé, supprimez-le de la listeselectedNamespacesdans la configurationBackupPlan.Réessayez l'opération de sauvegarde après avoir apporté les corrections nécessaires à
BackupPlanet lancez une nouvelle sauvegarde.
Si l'opération continue d'échouer, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.