Ce document décrit les erreurs et les codes correspondants que vous pouvez rencontrer lorsque vous utilisez Sauvegarde pour GKE pour effectuer des opérations de restauration. Chaque section inclut des éléments à prendre en compte lorsque vous effectuez des actions pour résoudre les erreurs de restauration, ainsi que des instructions sur la façon de résoudre les erreurs d'opération de restauration.
Erreur 200010301 : Échec de l'opération de restauration en raison de l'indisponibilité du service de webhook d'admission
L'erreur 200010301
se produit lorsqu'une tentative d'exécution d'une opération de restauration échoue, car un service de webhook d'admission, également appelé rappel HTTP, n'est pas disponible, ce qui entraîne le message d'erreur suivant. Le message d'erreur indique que le serveur d'API GKE a tenté de contacter un webhook d'admission lors de la restauration d'une ressource, mais que le service qui le prend en charge était indisponible ou introuvable :
resource [/example-group/ClusterSecretStore/example-store] restore failed:
Internal error occurred: failed calling webhook "example-webhook.io":
failed to call webhook: Post "https://example-webhook.example-namespace.svc:443/validate-example": service "example-webhook" not found.
Cette erreur se produit lorsqu'une ressource GKE ValidatingAdmissionWebhook
ou MutatingAdmissionWebhook
est active dans le cluster cible, mais que le serveur d'API GKE ne parvient pas à atteindre le point de terminaison configuré dans le webhook. Les webhooks d'admission interceptent les requêtes envoyées au serveur d'API GKE, et leur configuration spécifie la manière dont le serveur d'API GKE doit interroger les requêtes.
Le clientConfig
du webhook spécifie le backend qui gère les requêtes d'admission, qui peut être un service de cluster interne ou une URL externe. Le choix entre ces deux options dépend des exigences opérationnelles et architecturales spécifiques de votre webhook. En fonction du type d'option, l'opération de restauration peut avoir échoué pour les raisons suivantes :
Services dans le cluster : le service GKE et ses pods de sauvegarde ne sont pas restaurés ni prêts lorsque le serveur d'API GKE a tenté d'appeler le webhook. Cela se produit lors des opérations de restauration où les configurations de webhook à portée cluster sont appliquées avant que les services à portée espace de noms ne soient entièrement à l'état
ready
.URL externes : le point de terminaison externe est temporairement indisponible en raison de problèmes de connectivité réseau entre le cluster GKE et le point de terminaison externe, ou en raison de problèmes de résolution DNS ou de règles de pare-feu.
Pour résoudre cette erreur, suivez les instructions ci-dessous :
Identifiez le webhook défaillant mentionné dans le message d'erreur. Par exemple,
failed calling webhook "..."
.Inspectez le webhook en exécutant la commande
kubectl get validatingwebhookconfigurations
:kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
Remplacez
WEBHOOK_NAME
par le nom du webhook identifié dans le message d'erreur.Vous pouvez également exécuter la commande
kubectl get mutatingwebhookconfigurations
pour inspecter le webhook :kubectl get mutatingwebhookconfigurations WEBHOOK_NAME -o yaml
Remplacez
WEBHOOK_NAME
par le nom du webhook identifié dans le message d'erreur.Suivez les étapes de dépannage ci-dessous en fonction de votre type de configuration :
En fonction du service :
clientConfig
Définissez un ordre de restauration personnalisé en modifiant la ressource
RestorePlan
pour inclure unRestoreOrder
avec des entréesGroupKindDependency
. Cela permet de restaurer et de préparer les composants qui sous-tendent le webhook, tels queDeployment
,StatefulSet
ouService
, avantValidatingWebhookConfiguration
ouMutatingWebhookConfiguration
.Pour savoir comment définir un ordre de restauration personnalisé, consultez Spécifier l'ordre de restauration des ressources.
Cette approche peut échouer, car les pods du service n'entrent pas dans un état
ready
complet, même après la création de l'objetService
. Une autre raison de l'échec peut être que la configuration du webhook a été créée de manière inattendue par une autre application. Vous pouvez également effectuer une opération de restauration en deux étapes en procédant comme suit :Créez une ressource
Restore
à l'aide de la sauvegarde en configurant l'opération de restauration avec un filtre de restauration précis qui inclurait les ressources spécifiques nécessaires au fonctionnement du webhook, par exempleNamespaces
,Deployments
,StatefulSets
ouServices
.Pour savoir comment configurer la restauration avec un filtre de restauration ultraprécis, consultez Activer la restauration ultraprécise.
Créez une autre ressource
Restore
pour l'opération de sauvegarde et configurez le reste des ressources de votre choix.
clientConfig
basé sur l'URLVérifiez le point de terminaison HTTPS externe et assurez-vous qu'il est actif, accessible et qu'il fonctionne correctement.
Vérifiez qu'il existe une connectivité réseau entre les nœuds et le plan de contrôle de votre cluster GKE et l'URL externe. Vous devrez peut-être également vérifier les règles de pare-feu, par exemple si vous utilisez un cloud privé virtuel, un fournisseur de services cloud ou un fournisseur sur site pour héberger le webhook, les règles réseau et la résolution DNS.
Réessayez l'opération de restauration. Si l'opération continue d'échouer, contactez Cloud Customer Care pour obtenir de l'aide.
Erreur 200010302 : Échec de l'opération de restauration en raison d'une demande de création de ressources refusée
L'erreur 200010302
se produit lorsqu'une tentative d'opération de restauration échoue, car un webhook d'admission refuse une demande de création de ressource. L'erreur suivante s'affiche alors, indiquant qu'une ressource de votre sauvegarde n'a pas pu être créée dans le cluster cible, car un webhook d'admission actif a intercepté la demande et l'a refusée en fonction d'une règle personnalisée :
[KubeError]; e.g. resource
[/example-namespace/example-api/ExampleResource/example-name]
restore failed: admission webhook "example-webhook.example.com" denied the request: {reason for denial}
Cette erreur est due à la configuration définie dans le cluster GKE cible, qui comporte un ValidatingAdmissionWebhook
ou un MutatingAdmissionWebhook
qui applique des règles spécifiques à la création et à la modification de ressources, bloquant ainsi la demande de création de ressources.
Par exemple, un webhook empêche la création d'une ressource, car une ressource associée, mais en conflit, existe déjà dans le cluster. Par exemple, un webhook peut refuser la création d'un déploiement s'il est déjà géré par une ressource d'API GKE HorizontalPodAutoscaler
.
Pour résoudre cette erreur, suivez les instructions ci-dessous :
Identifiez le webhook qui refuse la requête à l'aide du message d'erreur qui s'affiche lorsque l'opération de restauration échoue. Par exemple :
webhook WEBHOOK_NAME denied the request
Le message d'erreur contient les informations suivantes :Nom du webhook : nom du webhook qui refuse la requête.
Motif du refus : motif spécifique du refus de la demande.
Inspectez le webhook en exécutant la commande
kubectl get validatingwebhookconfigurations
:kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
Remplacez
WEBHOOK_NAME
par le nom du webhook que vous avez identifié dans le message d'erreur.Vous pouvez également exécuter la commande
kubectl get mutatingwebhookconfigurations
pour inspecter le webhook :kubectl get mutatingwebhookconfigurations WEBHOOK_NAME -o yaml
Remplacez
WEBHOOK_NAME
par le nom du webhook que vous avez identifié dans le message d'erreur.Résolvez le problème sous-jacent dans le cluster cible. L'action à effectuer dépend de l'erreur spécifique. Par exemple, en cas de conflit
HorizontalPodAutoscaler
, vous devez supprimer leHorizontalPodAutoscaler
existant dans le cluster cible avant d'exécuter la restauration pour permettre la création des charges de travail sauvegardées et de leurs ressources associées.Réessayez l'opération de restauration. Si l'opération de restauration continue d'échouer, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.
Erreur 200060202 : Échec de l'opération de restauration en raison d'une ressource GKE manquante lors de la validation de la charge de travail
L'erreur 200060202
se produit lors de la phase de validation de la charge de travail d'une opération de restauration lorsqu'une ressource GKE que Sauvegarde pour GKE s'attend à valider est introuvable dans le cluster cible. Le message d'erreur suivant s'affiche alors :
Workload Validation Error: [KIND] "[NAME]" not found
Par exemple : Example: Workload Validation Error: pods "jenkins-0" not found
Cette erreur se produit lorsque Sauvegarde pour GKE crée ou met à jour la ressource GKE dans le cadre du processus de l'opération de restauration, mais que, lorsque la phase de validation commence, une ou plusieurs ressources GKE ne sont plus présentes dans le cluster cible, car elles ont été supprimées après avoir été créées ou mises à jour initialement par le processus de restauration, mais avant que la validation de la charge de travail pour la ressource GKE puisse se terminer. Une erreur de ce type peut se produire pour les raisons suivantes :
Suppression manuelle : un utilisateur ou un administrateur a supprimé manuellement la ressource à l'aide de
kubectl
ou d'autres outils Google Cloud .Automatisation externe : les contrôleurs GitOps tels que Config Sync, ArgoCD, Flux, les scripts personnalisés ou d'autres outils de gestion de cluster ont rétabli ou supprimé la ressource pour qu'elle corresponde à l'état souhaité dans un dépôt.
Contrôleurs GKE : un contrôleur GKE a supprimé une ressource, car elle était en conflit avec d'autres ressources ou d'autres règles, ou une chaîne
OwnerReference
a entraîné une collecte des déchets, ou le processus de nettoyage automatisé par GKE qui supprime les ressources dépendantes lorsque leur ressourceowner
est supprimée.
Pour résoudre cette erreur, suivez les instructions ci-dessous :
Identifiez la ressource manquante à l'aide du message d'erreur qui s'affiche lorsque l'opération de restauration ne peut pas être effectuée.
Localisez l'espace de noms auquel appartient la ressource à l'aide de l'une des méthodes suivantes :
Journaux d'audit GKE : examinez les journaux d'audit GKE générés lorsque vous avez tenté l'opération de restauration. Vous pouvez filtrer les journaux pour les opérations de suppression sur les ressources
Kind
etName
. L'entrée de journal d'audit contient l'espace de noms d'origine.Détails de la sauvegarde : vérifiez le champ d'application de votre opération de restauration et le contenu de la sauvegarde. L'index de sauvegarde indique l'espace de noms d'origine de la ressource. Vous pouvez également vérifier si
RestorePlan
contient unTransformationRule
qui spécifie les règles de restauration de la ressource dans l'espace de noms de votre choix.Rechercher dans les espaces de noms : exécutez la commande
kubectl get
pour rechercher la ressource dans tous les espaces de noms :kubectl get KIND --all-namespaces | grep NAME
Remplacez
KIND
etNAME
par les valeurs du message d'erreur. Si la ressource existe toujours, cette commande affichera son espace de noms.
Vérifiez la suppression en exécutant la commande
kubectl get
:kubectl get KIND NAME -n [NAMESPACE]
Remplacez
KIND
etNAME
par les valeurs du message d'erreur. Vous devriez recevoir un message d'erreurnot found
.Pour déterminer la cause de la suppression, utilisez l'une des méthodes suivantes :
Journaux d'audit GKE : identifiez l'entité qui a émis la demande de suppression. Par exemple, l'utilisateur, le compte de service ou le contrôleur.
Vérifiez les automatisations configurées : si vous utilisez GitOps ou d'autres outils d'automatisation, consultez leurs journaux et leur état pour voir s'ils ont interféré avec les ressources restaurées.
Examiner les événements associés : vérifiez les événements GKE dans l'espace de noms déterminé en exécutant la commande
kubectl get events
:kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
Remplacez
NAMESPACE_NAME
par le nom de l'espace de noms.
Corrigez la cause de la suppression de la ressource en fonction des résultats de l'étape précédente. Par exemple, mettez en veille les automatisations conflictuelles, corrigez les erreurs de configuration ou ajustez les autorisations des utilisateurs.
Récupérez la ressource manquante à l'aide de l'une des méthodes suivantes :
Réappliquez les fichiers manifestes : si vous disposez du fichier manifeste pour la ressource manquante, vous pouvez le réappliquer à l'espace de noms approprié.
Effectuez une restauration ultraprécise : effectuez une opération de restauration ultraprécise pour restaurer sélectivement la ressource manquante à partir de la même sauvegarde, ce qui vous permet de spécifier le bon espace de noms. Pour en savoir plus sur la façon d'effectuer une opération de restauration ultraprécise, consultez Activer la restauration ultraprécise.
Réessayez l'opération de restauration. Si l'opération de restauration continue d'échouer, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.
Erreur 200060201 : Échec de l'opération de restauration en raison du délai d'expiration de la validation de la charge de travail
L'erreur 200060201
se produit lorsqu'une ou plusieurs charges de travail restaurées ne deviennent pas entièrement ready
dans le délai prévu lors d'une opération de restauration après la création des ressources dans le cluster. Le message d'erreur suivant s'affiche alors :
Workload Validation Error: Timedout waiting for workloads to be ready - [namespace/workload_name, ...]
Cette erreur se produit, car Sauvegarde pour GKE effectue une étape de validation après la restauration des configurations de ressources GKE pour s'assurer que les charges de travail critiques fonctionnent correctement. Sauvegarde pour GKE attend que certaines charges de travail atteignent l'état ready
, mais au moins une charge de travail n'a pas respecté le critère de préparation suivant dans le délai imparti :
Pour
Pods
:status.Phase
estRunning
Pour
Deployments
:status.ReadyReplicas
est égal àspec.Replicas
Pour
StatefulSets
:status.ReadyReplicas
est égal àspec.Replicas
Pour
DaemonSets
:status.NumberReady
est égal àstatus.DesiredNumberScheduled
Pour résoudre cette erreur, suivez les instructions ci-dessous :
Identifiez les charges de travail qui ne sont pas à l'état
ready
dans le message d'erreur qui liste les charges de travail et leurs espaces de noms qui n'ont pas pu passer à l'étatready
.Inspectez l'état des charges de travail et obtenez des détails et des événements pour les charges de travail ayant échoué en exécutant la commande
kubectl describe
:kubectl describe WORKLOAD_TYPE WORKLOAD_NAME -n NAMESPACE_NAME kubectl get pods -n NAMESPACE_NAME -l SELECTOR_FOR_WORKLOAD
Remplacez les éléments suivants :
WORKLOAD_TYPE
: type de charge de travail, par exempleDeployment
,StatefulSet
ouDaemonSet
.WORKLOAD_NAME
: nom de l'instance de charge de travail spécifique.NAMESPACE_NAME
: espace de noms dans lequel se trouve la charge de travail.SELECTOR_FOR_WORKLOAD
: sélecteur de libellés permettant de trouverPods
associé à la charge de travail. Par exemple,app=my-app
.
Pour les pods de types de charge de travail
Deployments
ouStatefulSets
, vérifiez l'état des pods individuels en exécutant la commandekubectl describe pod
:kubectl describe pod POD_NAME -n NAMESPACE_NAME
Remplacez les éléments suivants :
POD_NAME
: nom du pod spécifique.NAMESPACE_NAME
: espace de noms dans lequel se trouve le pod.
Dans la section
Events
, analysez les événements et les journaux dans la sortiedescribe
et recherchez les informations suivantes :ImagePullBackOff / ErrImagePull
: indique qu'il existe des problèmes de récupération des images de conteneurs.CrashLoopBackOff
: indique que les conteneurs démarrent et plantent.
Dans la section
Containers
, analysez les journaux de conteneur dans la sortiedescribe
pour trouver le nom du conteneur en exécutant la commandekubectl logs
:kubectl logs POD_NAME -n NAMESPACE_NAME -c CONTAINER_NAME
Remplacez les éléments suivants :
POD_NAME
: nom du pod spécifique.NAMESPACE_NAME
: espace de noms dans lequel se trouve le pod.CONTAINER_NAME
: nom du conteneur dans le pod.
Selon le résultat
describe
, plusieurs raisons peuvent expliquer pourquoi le pod n'apparaît pas dans le résultat de la ressource, y compris les suivantes :Échecs des vérifications d'aptitude : les vérifications d'aptitude du conteneur ne fonctionnent pas.
Problèmes de ressources : le cluster ne dispose pas de suffisamment de ressources de processeur, de mémoire ou autres, ou les limites de quota sont atteintes.
Problèmes liés aux conteneurs d'initialisation : échecs dans les conteneurs d'initialisation empêchant le démarrage des conteneurs principaux.
Erreurs de configuration : erreurs dans
ConfigMaps
,Secrets
ou les variables d'environnement.Problèmes de réseau :
Pods
ne peut pas communiquer avec les services requis.
Vérifiez les ressources du cluster GKE pour vous assurer qu'il dispose d'une capacité de nœud, d'un processeur et d'une mémoire suffisants pour exécuter les charges de travail restaurées. Dans les clusters Autopilot, le provisionnement automatique des nœuds peut prendre plus de temps. Nous vous recommandons donc de vérifier s'il existe des limites ou des erreurs de scaling des nœuds. Résolvez les problèmes sous-jacents en fonction de vos conclusions et corrigez ceux qui empêchent les charges de travail de passer à l'état
ready
. Cette approche peut impliquer de corriger les fichiers manifestes, d'ajuster les demandes ou les limites de ressources, de corriger les règles réseau ou de s'assurer que les dépendances sont satisfaites.Une fois les problèmes sous-jacents résolus, attendez que les charges de travail passent à l'état
ready
. Vous n'avez pas besoin de relancer l'opération de restauration.
Si le problème persiste, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.
Erreur 200060102 : Échec de l'opération de restauration en raison d'une erreur de validation du volume
L'erreur 200060102
se produit lorsqu'une ou plusieurs ressources VolumeRestore
, qui gèrent le processus de restauration des données de VolumeBackup
vers un PersistentVolume
, sont passées à l'état failed
ou deleting
pendant la phase de validation du volume d'une opération de restauration. L'échec de la restauration du volume entraîne le message d'erreur suivant dans le champ "stateReason" de la ressource de restauration :
Volume Validation Error: Some of the volume restores failed - [projects/PROJECT_ID/locations/LOCATION/restorePlans/RESTORE_PLAN_ID/restores/RESTORE_ID/volumeRestores/VOLUME_RESTORE_ID (PVC: NAMESPACE/PVC_NAME), ...]
Le message d'erreur liste les noms de ressources complets des VolumeRestore
ayant échoué, y compris le nom et l'espace de noms PersistentVolumeClaim
cibles. Le message d'erreur indique que le processus de restauration des données pour le PersistentVolumeClaim
concerné ne s'est pas terminé correctement lorsque Sauvegarde pour GKE a lancé des ressources VolumeRestore
pour provisionner PersistentVolumes
à partir de VolumeBackups
, et que la création du disque persistant sous-jacent à partir de l'instantané a échoué. Les échecs VolumeRestore
peuvent se produire pour les raisons suivantes :
Quota insuffisant : le quota de disque persistant alloué dans le projet ou la région est insuffisant (par exemple,
SSD_TOTAL_GB
).Problèmes d'autorisations : le compte de service utilisé par la sauvegarde pour GKE ne dispose pas des autorisations nécessaires pour créer des disques ou accéder aux instantanés.
Problèmes réseau : des problèmes réseau temporaires ou persistants interrompent le processus de création du disque.
Instantané non valide : la source
VolumeBackup
ou l'instantané de disque persistant sous-jacent sont corrompus ou inaccessibles.Contraintes de ressources : d'autres contraintes de ressources de cluster entravent le provisionnement de volumes.
Erreurs internes : des problèmes internes se sont produits dans le service Persistent Disk.
Pour résoudre cette erreur, suivez les instructions ci-dessous :
Identifiez le
PersistentVolumeClaims
ayant échoué, listé dans le message d'erreur, qui indique les noms de ressources complets des objetsVolumeRestore
ayant échoué.Obtenez les détails de chaque ressource
VolumeRestore
ayant échoué en exécutant la commandegcloud beta container backup-restore volume-restores describe
:gcloud beta container backup-restore volume-restores describe VOLUME_RESTORE_ID \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_ID \ --restore=RESTORE_ID
Remplacez les éléments suivants :
VOLUME_RESTORE_ID
: ID de la ressourceVolumeRestore
ayant échoué.PROJECT_ID
: ID de votre projet Google Cloud .LOCATION
: emplacement Google Cloud de la restauration.RESTORE_PLAN_ID
: ID du plan de restauration.RESTORE_ID
: ID de l'opération de restauration.
Examinez les champs
state
etstateMessage
dans le résultat pour obtenir des informations sur l'échec.Examinez l'état de la cible
PersistentVolumeClaim
en exécutant la commandekubectl get pvc
:kubectl get pvc PVC_NAME -n NAMESPACE_NAME -o yaml
Remplacez les éléments suivants :
PVC_NAME
: nom de la ressourcePersistentVolumeClaim
.NAMESPACE_NAME
: espace de noms dans lequel se trouvePersistentVolumeClaim
.
Vérifiez que la section
status.phase
du résultat indique une phasePending
. Cette phase signifie que laPersistentVolumeClaim
n'est pas encore liée à unPersistentVolume
, ce qui est normal si leVolumeRestore
échoue.Examinez la section
Events
dans la sortie YAML pour trouver les messages liés aux échecs de provisionnement, tels queProvisioningFailed
, par exemple :Cloud KMS error when using key projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY: Permission 'cloudkms.cryptoKeyVersions.useToEncrypt' denied on resource 'projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY' (or it may not exist).
Le résultat indique qu'un problème d'autorisation s'est produit lors de l'accès à la clé de chiffrement pendant la création du disque. Pour accorder l'autorisation
compute service agent
permettant d'accéder à la clé, suivez les instructions de la documentation Sauvegarde pour GKE sur l'activation du chiffrement CMEK.Examinez les événements GKE dans l'espace de noms
PersistentVolumeClaim
, qui fournissent des messages d'erreur détaillés du contrôleurPersistentVolume
ou du pilote CSI, en exécutant la commandekubectl get events
:kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
Remplacez
NAMESPACE_NAME
par l'espace de noms dePersistentVolumeClaim
.Identifiez les événements liés au nom
PersistentVolumeClaim
, qui contient des mots clés tels queFailedProvisioning
ouExternalProvisioning
. Les événements peuvent également contenir des erreurs du provisionneur de stockage, telles quepd.csi.storage.gke.io
.Examinez les journaux Persistent Disk en consultant les journaux Cloud Audit Logs et Persistent Disk dans Cloud Logging pour détecter d'éventuelles erreurs liées aux opérations de création de disque au moment de l'échec.
En fonction des messages d'erreur générés, résolvez les problèmes sous-jacents suivants :
Augmentez les quotas Persistent Disk si nécessaire, par exemple
(QUOTA_EXCEEDED}: Quota SSD_TOTAL_GB exceeded
.Vérifiez et corrigez les autorisations IAM.
Examiner et résoudre les problèmes de réseau.
Contactez l'équipe Cloud Customer Care pour résoudre les problèmes liés à l'instantané ou au service Persistent Disk.
L'état de
PersistentVolumeClaim
restePending
.Le processus de restauration ne relance pas automatiquement le
VolumeRestore
. Pour résoudre ce problème, vous devez déclencher une opération de restauration pour la charge de travailDeployment
ouStatefulSet
qui utilise lePersistentVolumeClaim
concerné.Utilisez une restauration précise pour restaurer de manière sélective la charge de travail
Deployment
ouStatefulSet
associée à l'PersistentVolumeClaim
ayant échoué. Cette approche permet aux mécanismes GKE standards de gérer à nouveau le processus de création et de liaisonPersistentVolumeClaim
si le problème sous-jacent est résolu. Pour en savoir plus sur la restauration ultraprécise, consultez Activer la restauration ultraprécise.
Si le problème persiste ou si la cause de l'échec VolumeRestore
n'est pas claire, contactez Cloud Customer Care pour obtenir de l'aide.
Erreur 200060101 : Échec de l'opération de restauration en raison du délai d'expiration de la validation du volume
L'erreur 200060101
se produit lors de la phase de validation du volume d'une opération de restauration lorsque Sauvegarde pour GKE cesse d'attendre, car au moins une ressource VolumeRestore
, qui gère la restauration des données à partir d'un VolumeBackup
, n'a pas atteint l'état succeeded
dans le délai imparti. Il est également possible que d'autres ressources VolumeRestore
soient incomplètes.
Le message d'erreur dans le champ stateReason
de la ressource Restore
affiche la première ressource VolumeRestore
rencontrée qui n'était pas encore à l'état succeeded
lors de la vérification du délai avant expiration. Il inclut le nom et l'espace de noms PersistentVolumeClaim
cibles pour ce VolumeRestore
spécifique, par exemple :
Volume Validation Error: Timed out waiting for volume restore [projects/PROJECT_ID/locations/LOCATION/restorePlans/RESTORE_PLAN_NAME/restores/RESTORE_NAME/volumeRestores/VOLUME_RESTORE_ID (PVC: PVC_NAMESPACE/PVC_NAME)]
Sauvegarde pour GKE lance l'approvisionnement des ressources VolumeRestore
à partir de PersistentVolumes
depuis VolumeBackups
. Cette erreur indique que la création du disque persistant sous-jacent à partir de l'instantané et la liaison ultérieure de PersistentVolumeClaim
à PersistentVolume
ont pris plus de temps que le délai d'attente calculé pour le VolumeRestore
cité. D'autres VolumeRestores
pour la même opération de restauration peuvent également être dans un état non terminé.
Même si le délai d'attente a été atteint du point de vue de Sauvegarde pour GKE, le processus de création de disque sous-jacent pour la ressource VolumeRestore
mentionnée, et potentiellement pour les ressources VolumeRestore
, peut toujours être en cours ou avoir échoué.
Pour résoudre ce problème, suivez les instructions ci-dessous :
Identifiez le nom et l'espace de noms
PersistentVolumeClaim
ayant expiré dans le message d'erreur, par exemple(PVC: PVC_NAMESPACE/PVC_NAME)
.Listez tous les
VolumeRestores
associés à l'opération de restauration pour afficher leur état actuel en exécutant la commandegcloud beta container backup-restore volume-restores list
:gcloud beta container backup-restore volume-restores list \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_NAME \ --restore=RESTORE_NAME
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet Google Cloud .LOCATION
: emplacement Google Cloud de la restauration.RESTORE_PLAN_NAME
: nom du plan de restauration.RESTORE_NAME
: nom de l'opération de restauration.
Recherchez les
VolumeRestores
qui ne sont pas à l'étatsucceeded
.Obtenez des informations sur le
VolumeRestore
mentionné dans l'erreur et sur tout autreVolumeRestores
qui n'est pas à l'étatsucceeded
en exécutant la commandegcloud beta container backup-restore volume-restores describe
:gcloud beta container backup-restore volume-restores describe VOLUME_RESTORE_ID \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_NAME \ --restore=RESTORE_NAME
Remplacez les éléments suivants :
VOLUME_RESTORE_ID
: ID de la ressourceVolumeRestore
.PROJECT_ID
: ID de votre projet Google Cloud .LOCATION
: emplacement Google Cloud de la restauration.RESTORE_PLAN_NAME
: nom du plan de restauration.RESTORE_NAME
: nom de l'opération de restauration.
Vérifiez les champs
state
etstateMessage
. La valeur du champstate
est probablementcreating
ourestoring
. Le champstateMessage
peut fournir plus de contexte et contenir les détails de laPersistentVolumeClaim
cible.Examinez l'état de la cible
PersistentVolumeClaims
identifiée en exécutant la commandekubectl get pvc
:kubectl get pvc PVC_NAME -n PVC_NAMESPACE -o yaml
Remplacez les éléments suivants :
PVC_NAME
: le nom duPersistentVolumeClaim
.PVC_NAMESPACE
: espace de noms dePersistentVolumeClaim
.
La valeur de
status.phase
PersistentVolumeClaim's
est probablementPending
. Recherchez les erreurs suivantes dans la sectionEvents
:Waiting for first consumer to be created before binding
: indique queStorageClass
estvolumeBindingMode: WaitForFirstConsumer
.Le provisionnement de
PersistentVolume
est retardé jusqu'à ce qu'unPod
utilisant lePersistentVolumeClaim
soit créé et planifié. Le problème peut être lié à la planificationPod
, et non au provisionnement du volume lui-même. Par conséquent, nous vous recommandons de vérifier pourquoi lesPods
consommant lesPersistentVolumeClaim
ne sont pas planifiés ou ne démarrent pas.FailedProvisioning
ou erreurs du provisionneur de stockage : Par exemple,pd.csi.storage.gke.io
.
Examinez les événements GKE dans les espaces de noms concernés en exécutant la commande
kubectl get events
:kubectl get events -n PVC_NAMESPACE --sort-by='.lastTimestamp'
Remplacez
PVC_NAMESPACE
par l'espace de noms dePersistentVolumeClaim
.Recherchez les événements liés aux noms
PersistentVolumeClaim
, tels que les messages ou les erreurs de provisionnement.Consultez les journaux Cloud Audit Logs et les journaux de disque persistant dans Cloud Logging.
Surveillez l'état de tous les
VolumeRestores
dans les étatscreating
etrestoring
.Une fois le problème résolu, l'état de
VolumeRestores
peut passer àsucceeded
oufailed
. Si lesVolumeRestores
atteignent l'étatsucceeded
, lesPersistentVolumeClaims
doivent devenirBound
et les charges de travail doivent être fonctionnelles. Si unVolumeRestore
passe à l'étatfailed
, vous devez suivre des étapes de dépannage pour résoudre l'erreur de validation du volume. Pour en savoir plus, consultez Erreur 200060102 : Échec de l'opération de restauration en raison d'une erreur de validation du volume.
Si VolumeRestores
reste à l'état creating
ou restoring
pendant une période excessive, contactez Cloud Customer Care pour obtenir de l'aide.