Quelles sont les sondes de préparation?
Kubernetes utilise des sondes de préparation pour déterminer quand il est prudent de transmettre le trafic vers un pod ou quand il est temps de déplacer le pod à l'état prêt.
Une sonde de préparation évaluera si un pod spécifique acceptera le trafic s'il est utilisé comme point de terminaison backend pour un service.
La sonde de préparation se déroule pour le reste de la vie de la nacelle; Cela signifie qu'il fonctionne même après que le pod a atteint l'état prêt. De plus, notre application peut se rendre inaccessible à la maintenance ou à certains travaux de fond en répondant à la sonde avec diverses réponses.
Il indique si le conteneur est prêt à accepter ou non les requêtes. Dans le cas où la sonde de préparation détruit pour quelque raison que ce soit, le contrôleur des points de terminaison élimine l'adresse IP des gousses des points de terminaison entre tous les services qui satisfont le pod. La défaillance est la condition de préparation par défaut avant le retard initial.
Quand devriez-vous utiliser une sonde de préparation?
La sonde de préparation peut être comme la sonde de vivacité (qui détermine quand un conteneur doit être redémarré) dans ce scénario. Mais la présence de la sonde de préparation dans la spécification suggère que le pod commencera sans accepter de trafic et n'accepter le trafic qu'une fois que la sonde commencera à réussir.
Vous pouvez utiliser à la fois la victime et une sonde de préparation si votre application dépend fortement des services backend. La sonde de préparation garantit que chaque service backend essentiel est disponible, en plus de la sonde de vivacité, qui passe lorsque l'application est saine. Cela empêche le trafic d'être envoyé à des pods qui ne peuvent réagir qu'avec des messages d'erreur.
Une sonde de démarrage peut vous aider si votre conteneur nécessite le chargement d'une grande quantité de données, de fichiers de configuration ou de migrations pendant le démarrage. Une sonde de préparation est très utile si vous souhaitez différencier une application qui a échoué et l'autre qui traite toujours ses premières données.
Prérequis
Quelques conditions préalables doivent être remplies avant d'utiliser les sondes de préparation à Kubernetes en pratique. Ubuntu 20.0 est un système d'exploitation Linux qui doit être installé en premier. Parce que Kubernetes sur Linux l'exige, installez également le cluster Minikube.
Avant de passer au terminal de la ligne de commande, nous devons d'abord démarrer Ubuntu 20.04, qui a déjà été installé. Tapez «Terminal» dans l'Ubuntu 20.04 Boîte de recherche du système pour lancer rapidement le terminal.
Après cela, le minikube devrait être démarré. Afin de démarrer le Minikube, utilisez la commande du terminal «Minikube Start."Cette commande lancera le cluster Kubernetes et créera une machine virtuelle capable d'exécuter un cluster. La sortie de la commande «Minikube Start» est représentée ci-dessous:
Exemple de sondes de préparation à Kubernetes
Nous pouvons configurer un exemple d'application. Dans ce cas, un simple serveur Web Nginx, pour comprendre comment fonctionnent les sondes de préparation. Nous avons développé une configuration de déploiement de base ici. Chaque aspect du fichier de configuration est présenté dans les deux captures d'écran ci-jointes:
Cette configuration doit être enregistrée dans un fichier appelé préparation.yaml.
Après cela, utilisez Kubectl appliquer -f préparation.yaml pour l'appliquer. L'instruction et sa sortie peuvent être vues dans la capture d'écran suivante:
Nous avons maintenant développé un service pour la compréhension complète de l'exemple.
Enregistrer cette configuration sur le SVC.fichier yaml.
Après cela, utilisez kubectl appliquer -f svc.yaml pour l'appliquer. L'instruction et sa sortie peuvent être vues dans la capture d'écran suivante:
Bien qu'il n'y ait pas de point de terminaison particulier pour les sondes de préparation, nous pouvons obtenir des informations sur leur état actuel en exécutant la commande kubectl décrire les pods. Exécutez la commande kubectl get pods et vérifiez l'état des pods et autres détails.
Les gousses seront affichées, ainsi que leur statut et leur État prêt. Comme vous pouvez le voir, notre pod fonctionne comme prévu. L'instruction et sa sortie peuvent être vues dans la capture d'écran fournie ci-dessous:
Le résultat du «pod kubectl décrire» est attaché ci-dessous. L'instruction et sa sortie peuvent être vues dans la capture d'écran suivante:
La section des événements sera affichée en bas de la sortie de la commande suivante:
Avec la commande kubectl obtenez les points de terminaison, nous pouvons examiner les points de terminaison. Le service Nginx a un point final, comme on peut le voir. L'instruction et sa sortie peuvent être vues dans la capture d'écran suivante:
Nous pouvons utiliser la commande kubectl décrire les points de terminaison nginx pour voir plus d'informations. L'instruction et sa sortie peuvent être vues dans la capture d'écran suivante:
Supposons que nous définissons le paramètre du port pour la sonde de préparation à 81 et enregistrons la configuration. Tout d'abord, vérifiez directement le statut du pod. L'État «fonctionne», comme vous pouvez le voir ci-dessous. L'instruction et sa sortie peuvent être vues dans la capture d'écran suivante:
Parce que nous n'avons pas mis à jour le port 81, il a renvoyé une valeur booléenne de «vrai», comme indiqué dans la capture d'écran ci-dessous. Si vous modifiez le port 81 et s'il est mis à jour avec succès, il renverra «faux» indiquant que le service Nginx n'a pas de points de terminaison car le conteneur n'est pas prêt à recevoir du trafic. L'instruction et sa sortie peuvent être vues dans la capture d'écran ci-dessous.
Conclusion:
Dans cet article, les effets de la sonde de préparation ont été observés et les paramètres qui peuvent être configurés. Bien que nous soyons concentrés sur le contrôle HTTP, les techniques que nous avons apprises peuvent être appliquées à l'un des autres tests. Pour configurer et faire fonctionner les sondes de préparation, vous devez d'abord comprendre l'architecture et les dépendances de votre application. Nous espérons que vous avez trouvé cet article utile. Vérifiez les autres articles sur les indices de Linux pour plus de conseils et d'articles.