web-dev-qa-db-fra.com

Erreur d'échec de la sonde de préparation à Kubernetes

Lors de l'exécution de mon conteneur sur kubernetes à l'aide de la commande de mise à niveau de barre, j'obtiens cette erreur:

'Échec de la sonde de préparation: Get http://172.17.0.6:3003/ : composez TCP 172.17.0.6:3003: getsockopt: connexion refusée'.

Mon image de docker est pour une application node.js et j'essaie de la gérer via minikube.

11
Karan Sodhi

Pour quiconque ici, si vous utilisez helm pour gérer vos déploiements, vous devez le définir initialDelaySeconds dans le deployments.yaml modèle dans le /templates dossier sous livenessProbe. Le livenessProbe forcera le redémarrage de votre pod si la sonde ne peut pas se connecter, comme c'était le cas avec le mien. Cela ne donnait pas assez de temps à ma demande pour être créée.

5
Dane Jordan

Cela pourrait être résolu en augmentant le délai initial de la vérification de l'état de préparation. En fait, puisque la connexion à la base de données prenait plus que le délai initial à la suite duquel la sonde de disponibilité échouait.

4
Karan Sodhi

Barre:

Je recommanderais de définir la valeur initialDelaySeconds dans values.yaml fichier et utilisez une action {{ .Values.initialDelaySeconds }} pour insérer la valeur dans le deployment.yaml modèle.

kubectl:

Ajoutez simplement le initialDelaySeconds: 5 si vous voulez 5 secondes à votre manifeste (déploiement, pod, jeu de répliques, etc.) et appliquez vos modifications.

S'il échoue, prenez du café et commencez à regarder les journaux du conteneur

kubectl logs -h pour plus d'aide

0
Margach Chris