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 de la CRD – Version d'API v1beta1 non compatible
L'erreur 100020102 se produit lorsqu'une tentative de sauvegarde d'une CustomResourceDefinition
initialement appliquée en tant que version apiextensions.k8s.io/v1beta1 échoue, car elle
ne dispose pas du schéma structurel requis dans la version d'API apiextensions.k8s.io/v1. 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 d'API apiextensions.k8s.io/v1 a été supprimée dans Google Kubernetes Engine version 1.22. Pour en savoir plus sur la suppression de l'API pour
GKE version 1.22, consultez la section
Suppressions d'API pour GKE v1.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 une CustomResourceDefinition créée 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 cette CustomResourceDefinition est considérée comme une erreur critique, car elle risque de ne pas être restaurée correctement dans un cluster plus récent.
Pour résoudre cette erreur, procédez comme suit :
Identifiez la
CustomResourceDefinitionproblématique en exécutant la commandekubectl get crd:kubectl get crd CRD_NAMERemplacez
CRD_NAMEpar le nom de laCustomResourceDefinitiondans votre message d'erreur.Dans la sortie YAML, vérifiez si la
CustomResourceDefinitiona été correctement convertie de l'APIvbeta1vers l'APIv1en recherchant les conditions suivantes :spec.versions: recherchez la conditionspec.versionsen examinant chaque version listée sous le champspec.versions. Si le champschema.openAIV3Schemaest manquant dans l'une desspec.versions, cela signifie qu'aucun schéma structurel n'est défini pour cette version dans laCustomResourceDefinition.status.conditions: recherchez la conditionstatus.conditionsen trouvant la conditiontype:NonStructuralSchema. Si lestatus.conditions'sstatusesttrue, cela confirme explicitement que le schéma n'est pas structurel.
Mettez à niveau la
CustomResourceDefinitionvers la version d'APIv1en procédant comme suit :Modifiez la
CustomResourceDefinitionexistante pour la rendre compatible avec la normev1en ajoutant un schéma structurel qui définit chaque champ et son type dans la ressource personnalisée. Pour en savoir plus sur l'ajout d'un schéma structurel, consultez la section Spécifier un schéma structurel.Appliquez le 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 la
CustomResourceDefinitionen exécutant la commandekubectl delete crdsi elle n'est pas utilisée dans le cluster.CustomResourceDefinitionkubectl delete crd CRD_NAMERemplacez
CRD_NAMEpar le nom de laCustomResourceDefinitionque vous souhaitez supprimer.Activez le mode permissif sur le plan de sauvegarde. Cela permet à Sauvegarde pour GKE d'ignorer la ressource, y compris les
CustomResourceDefinitionsdans la version d'APIv1beta1, et de poursuivre le reste de l'opération de sauvegarde. Pour en savoir plus sur l'activation du mode permissif, consultez la section Activer le mode permissif sur un plan de sauvegarde.
Réessayez l'opération de sauvegarde. Si l'opération échoue toujours, 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 Sauvegarde pour GKE n'a pas pu trouver un ou plusieurs espaces de noms explicitement listés dans le champ selectedNamespaces de la configuration BackupPlan. Sauvegarde pour GKE nécessite 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, procédez comme suit :
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 signalé 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 signalé dans le message d'erreur.Si l'espace de noms n'existe pas, un message s'affiche indiquant qu'il n'a pas été trouvé, par exemple :
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not found.Corrigez le
BackupPlan. Si l'espace de noms a été mal orthographié, mettez à jour leBackupPlanavec le nom d'espace de noms correct. Si l'espace de noms n'existe 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 au
BackupPlanet lancez une nouvelle sauvegarde.
Si l'opération échoue toujours, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.