Résoudre les problèmes liés aux instances de service Kf

Suivez cette procédure pour résoudre divers problèmes qui peuvent survenir lors de l'utilisation des instances de service Kf.

L'objet bloque la suppression.

Exécutez la commande suivante pour obtenir les informations sur les ressources, puis recherchez les causes ci-dessous :

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

La CLI kf permet de détecter certains problèmes :

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Cause possibleSolution
La date et l'heure de la suppression sont situées dans le futur.

Avec un décalage de l'horloge, la valeur metadata.deletionTimestamp est peut-être toujours dans le futur. Attendez quelques minutes pour voir si l'objet est supprimé.

Des finaliseurs sont présents sur l'objet.

Si des finaliseurs sont présents sur l'objet, ils doivent être supprimés par le contrôleur qui les a définis avant la suppression de l'objet.

Si vous souhaitez forcer la suppression sans attendre les finaliseurs, modifiez l'objet pour les supprimer du tableau metadata.finalizers.

Avertissement : La suppression des finaliseurs sans permettre aux contrôleurs d'en terminer l'exécution peut entraîner des erreurs, des problèmes de sécurité, des pertes de données ou des ressources orphelines.

Des objets dépendants peuvent exister.

L'objet peut être en attente de la suppression d'objets dépendants avant d'être supprimé. Pour en savoir plus, consultez le Guide Kubernetes sur la récupération de mémoire. Demandez à un administrateur de vérifier tous les objets de l'espace de noms et du cluster pour savoir si l'un d'entre eux bloque la suppression.

Si vous devez supprimer l'objet sans attendre la suppression des objets dépendants, utilisez kubectl delete avec l'option "cascade" définie sur --cascade=orphan.

Écart au niveau des générations d'objets.

Exécutez la commande suivante pour obtenir les informations sur les ressources, puis recherchez les causes ci-dessous :

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

La CLI kf permet de détecter certains problèmes :

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Cause possibleSolution
L'objet présente une dérive de version de génération.

Cette erreur se produit généralement lorsque le contrôleur Kf n'a pas lu la dernière version de l'objet. Cette erreur est généralement autoréparée une fois que les instances dupliquées Kubernetes atteignent la cohérence à terme et ne nécessite généralement aucune action de la part des utilisateurs.

Échec du rapprochement des objets.

Exécutez la commande suivante pour obtenir les informations sur les ressources, puis recherchez les causes ci-dessous :

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

La CLI kf permet de détecter certains problèmes :

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Cause possibleSolution
L'objet comporte une erreur TemplateError

Cette erreur se produit généralement si l'utilisateur a saisi une propriété non valide dans la spécification de ressource personnalisée ou si la configuration de l'espace ou du cluster est incorrecte.

Pour comprendre la cause fondamentale, l'utilisateur peut lire le message d'erreur le plus long dans le fichier status.conditions de l'objet à l'aide de la commande kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space : Exemple : kubectl describe serviceinstance my-service -n my-space.

L'objet contient une erreur ChildNotOwner (conflits de noms)

Cette erreur signifie généralement que le ou les objets que le contrôleur tente de créer existent déjà. Cela se produit si l'utilisateur a créé une ressource K8s portant le même nom que celui que le contrôleur tente de créer, mais plus souvent lorsque l'utilisateur supprime une ressource et que le contrôleur Kf tente de la recréer. Si une ressource enfant est toujours présente, son propriétaire sera l'ancienne ressource qui n'existe plus.

Pour remédier à cette erreur, nous vous recommandons de supprimer la ressource concernée, puis de la recréer. Pour supprimer l'objet, utilisez une commande de suppression Kf ou la commande kubectl delete RESOURCE_TYPE RESOURCE_NAME -n SPACE. Par exemple, kf delete-space my-space ou kubectl delete space my-space.

Pour recréer une ressource, utilisez une commande Kf. Exemple : kf create-space my-space.

L'objet comporte une erreur ReconciliationError

Cette erreur signifie généralement qu'une erreur s'est produite avec l'appel HTTP effectué (par le contrôleur Kf) au service d'API Kubernetes pour créer/mettre à jour des ressources.

Pour comprendre la cause fondamentale, l'utilisateur peut lire le message d'erreur le plus long dans le fichier status.conditions de l'objet à l'aide de la commande kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space : Exemple : kubectl describe serviceinstance my-service -n my-space.

Echec de réconciliation de ressource de sauvegarde

Exécutez la commande suivante pour obtenir les informations sur les ressources, puis recherchez les causes ci-dessous :

kubectl get serviceinstances.kf.dev -n SPACE_NAME SERVICEINSTANCE_NAME -o yaml

La CLI kf permet de détecter certains problèmes :

kf doctor --space SPACE_NAME serviceinstance/SERVICEINSTANCE_NAME
Cause possibleSolution
Erreur DeprovisionFailed de ressource de sauvegarde

Cette erreur se produit généralement lorsque le processus de déprovisionnement des ressources de sauvegarde (base de données MySQL hébergée sur un serveur OSB externe) échoue. Kf ne peut pas déterminer en toute sécurité si la ressource dépendante a fait l'objet d'un déprovisionnement.

Pour corriger l'erreur, il est recommandé à l'utilisateur de lire le message d'erreur détaillé dans le status.conditions de l'objet à l'aide de la commande kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Exemple : kubectl describe servipropogatesceinstance my-service -n my-space.

Une fois le message d'erreur confirmé, demandez à un administrateur de vérifier la ressource de sauvegarde et de la nettoyer manuellement. Une fois que la ressource de sauvegarde peut être utilisée en toute sécurité, la ressource Kf affectée peut être réconciliée en supprimant manuellement Finalizer de la spécification d'objet, à l'aide de la commande kubectl edit serviceinstance my-service -n my-space.