Échecs lors de l'installation de Kf
L'adresse IP d'Istio n'est pas prête
Cela peut se produire si Istio met trop de temps à obtenir une adresse IP externe. Attendez quelques minutes, puis réexécutez l'étape d'envoi de Cloud Build. Cependant, il y a sans doute un autre problème.
Erreur du serveur (requête incorrecte) : caractère non valide
Si vous voyez ce message d'erreur lors de la définition des valeurs de configuration par défaut, il est probable que la valeur de la variable d'environnement ${DOMAIN}
utilisée dans la commande inclut un '$' échappé. Utilisez des guillemets simples pour définir un domaine avec un nom d'espace ou une autre substitution :
Error from server (BadRequest): invalid character '$' in string escape code
Erreurs avec des objets Kubernetes Kf
Suivez ces instructions pour résoudre les problèmes liés aux objets Kubernetes Kf.
Recherchez le nom du type de ressource Kubernetes dont vous souhaitez résoudre les problèmes en répertoriant toutes les ressources Kf :
kubectl api-resources --api-group=kf.dev
Exemple de résultat :
NAME SHORTNAMES APIGROUP NAMESPACED KIND apps kf.dev true App builds kf.dev true Build clusterservicebrokers kf.dev false ClusterServiceBroker routes kf.dev true Route servicebrokers kf.dev true ServiceBroker serviceinstancebindings kf.dev true ServiceInstanceBinding serviceinstances kf.dev true ServiceInstance spaces kf.dev false Space
Obtenez l'instance de la ressource dont vous souhaitez résoudre les problèmes à l'aide de
kubectl
. Si l'objet ne se trouve pas dans un espace de noms, omettez l'option-n
:kubectl get api-resource-name.kf.dev object-name -n space-name -o yaml
Par exemple :
kubectl get apps.kf.dev my-app -n my-space -o yaml
Sélectionnez votre problème dans les onglets ci-dessous :
L'objet n'est pas en cours de rapprochement
- Vérifiez la valeur de
metadata.generation
. Ce nombre est incrémenté à chaque mise à jour de l'objet. Si le nombre est extrêmement élevé, il est probable que deux contrôleurs Kubernetes soient en conflit sur l'objet. Vérifiez votre cluster pour déterminer si des règles sont appliquées à l'objet afin qu'il passe à l'état souhaité. - Vérifiez si l'espace de noms auquel l'objet appartient est en cours de suppression. Si c'est le cas, l'objet risque de ne pas être rapproché.
- Vérifiez que le champ
status.observedGeneration
existe. S'il n'existe pas, il se peut que le contrôleur n'ait pas encore été exécuté sur l'objet. Vérifiez que le cluster et les contrôleurs sont opérationnels à l'aide dekf doctor
. - Vérifiez que le champ
metadata.generation
correspond au champstatus.observedGeneration
. Si ce n'est pas le cas, vérifiez que le cluster et les contrôleurs sont opérationnels à l'aide dekf doctor
. - Recherchez les échecs dans la liste
status.conditions
par rapport à la liste des motifs d'erreurs fréquentes suivante :
NotOwned
: Il existe une autre ressource dans le cluster ou l'espace de noms identique à celle que cet objet tente de créer. Lisez le message pour trouver le nom en double, et renommez la ressource en conflit ou l'objet Kf.TemplateError
: La spécification de la ressource Kf ou la configuration Kf comportent une erreur de configuration qui entraîne un rapprochement incorrect de la ressource enfant. Validez les paramètres de l'objet Kf et de l'espace Kf.CacheOutdated
: Le contrôleur Kf ne reçoit pas assez rapidement les mises à jour de Kubernetes. Vérifiez l'état du cluster Kubernetes.ReconciliationError
: Le contrôleur Kf ne peut pas créer la ressource enfant nécessaire. Assurez-vous que votre cluster est opérationnel, que Kf est en cours d'exécution et qu'aucune règle appliquée n'empêche Kf de créer l'objet référencé dans le message.
L'objet n'est pas en cours de suppression
- Vérifiez que le champ
metadata.deletionTimestamp
de l'objet a été défini. Si ce n'est pas le cas, la suppression demandée n'a pas fonctionné. - Vérifiez que la valeur
metadata.deletionTimestamp
de l'objet est antérieure au moment actuel. Si elle est postérieure, il est possible que l'objet ne puisse pas être supprimé. - Vérifiez si une liste
metadata.finalizers
existe sur l'objet. Si des finaliseurs sont présents, l'objet doit attendre leur suppression avant d'être supprimé. Si vous souhaitez forcer la suppression sans attendre les finaliseurs, modifiez l'objet pour les supprimer. - Il existe des objets enfants qui empêchent la suppression de l'objet. Demandez à un administrateur de vérifier tous les objets de l'espace de noms et du cluster pour déterminer si l'un d'entre eux doit d'abord être supprimé manuellement.
- Vérifiez la valeur de