Résoudre les problèmes liés aux applications Kf

Suivez cette procédure pour résoudre divers problèmes qui peuvent se produire lors de l'utilisation des applications 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 apps.kf.dev -n SPACE_NAME APP_NAME -o yaml

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

kf doctor --space SPACE_NAME app/APP_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 finalisateurs 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 apps.kf.dev -n SPACE_NAME APP_NAME -o yaml

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

kf doctor --space SPACE_NAME app/APP_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 apps.kf.dev -n SPACE_NAME APP_NAME -o yaml

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

kf doctor --space SPACE_NAME app/APP_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.