Bases du cloud et des conteneurs

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  periodSeconds: 5

Une application web ne peut pas traiter de requêtes pendant environ 60 secondes après son démarrage, le temps de charger son cache, et renvoie 503 sur /ready pendant ce temps. Quelle description de l'effet de l'ajout des réglages ci-dessus au conteneur du Pod est correcte ?

  1. ATant que /ready échoue, le Pod est retiré des destinations du Service et ne reçoit aucune requête, et le conteneur n'est pas redémarré
  2. BLe conteneur est redémarré chaque fois que /ready échoue : il redémarre donc sans cesse avant la fin du chargement du cache
  3. CTant que /ready n'a pas réussi, le Pod n'est affecté à aucun nœud, et le conteneur n'est pas démarré
Afficher la réponse et l'explication

Réponse : A. Tant que /ready échoue, le Pod est retiré des destinations du Service et ne reçoit aucune requête, et le conteneur n'est pas redémarré

Une sonde readiness vérifie si un conteneur est prêt à accepter des requêtes et, tant qu'elle échoue, retire le Pod des destinations du Service. Une sonde HTTP considère comme un succès une réponse d'au moins 200 et inférieure à 400 : aucune requête n'est donc envoyée tant que 503 est renvoyé, et les requêtes arrivent dès que l'application est prête. Redémarrer le conteneur en cas d'échec est le rôle d'une sonde liveness ; ne donner à une application lente à démarrer qu'une sonde liveness à intervalle court peut provoquer des redémarrages répétés. Le nœud sur lequel s'exécute un Pod est choisi par l'ordonnanceur (scheduler), pas par les sondes.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases du cloud et des conteneurs

  1. Dans une application web sur Kubernetes, la vérification effectuée par la sonde liveness a été étendue pour tester aussi si l'application peut se connecter à la base de données dont elle dépend. Quel est le problème le plus probable avec ce réglage ?
  2. Un HorizontalPodAutoscaler de Kubernetes a pour cible une utilisation CPU des Pods de 70 % et une plage de 1 à 10 Pods. Actuellement, l'utilisation CPU moyenne de 5 Pods est de 30 %. Si le nombre de Pods nécessaire est calculé par ⌈nombre actuel × utilisation actuelle ÷ utilisation cible⌉ (⌈ ⌉ désigne l'arrondi à l'entier supérieur), combien de Pods faut-il ?
  3. Dans un Deployment dont les conteneurs des Pods ont les réglages ci-dessus, quatre Pods tournent et chacun utilise 400m (0,4 cœur) de CPU. La cible d'utilisation CPU du HorizontalPodAutoscaler est de 60 %, et le nombre de Pods nécessaire est calculé par ⌈nombre actuel × utilisation actuelle ÷ utilisation cible⌉. Combien de Pods faut-il ?
  4. Dans Kubernetes, quelle description des requests et des limits de ressources définies pour un conteneur est correcte ?
  5. Un nœud dispose de ressources allouables de 4 cœurs de CPU et de 8 GiB de mémoire. Le conteneur de chaque Pod a pour requests 500m de CPU et 1,5 GiB de mémoire, et pour limits 1 cœur de CPU et 2 GiB de mémoire. Il n'y a ni autres Pods ni réservations pour le système. Quel est le nombre maximal de Pods que l'on peut placer sur ce nœud ?