Bases du cloud et des conteneurs

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 ?

  1. AQuand la base de données s'arrête, les Pods sont automatiquement déplacés vers le nœud où tourne la base de données, ce qui dégrade les autres applications de ce nœud
  2. BUne brève indisponibilité de la base de données fait redémarrer à répétition les conteneurs de tous les Pods, ce qui retarde la reprise même après le retour de la base de données
  3. CQuand la sonde liveness échoue, le Pod est seulement retiré des destinations du Service : il ne se pose donc pas de problème particulier
Afficher la réponse et l'explication

Réponse : B. Une brève indisponibilité de la base de données fait redémarrer à répétition les conteneurs de tous les Pods, ce qui retarde la reprise même après le retour de la base de données

Une sonde liveness sert à rétablir, en le redémarrant, un conteneur qui ne répond plus lui-même (par exemple à cause d'un interblocage). Si elle vérifie aussi une dépendance, alors, quand la base de données s'arrête, les sondes liveness de tous les Pods échouent et les conteneurs sont redémarrés sans cesse, alors que le redémarrage ne règle rien. Pendant les redémarrages, aucune requête n'est traitée, et l'attente avant le redémarrage suivant peut s'allonger à mesure qu'ils se répètent : la reprise est donc retardée même après le retour de la base de données. Une sonde liveness ne doit vérifier que si le processus lui-même peut répondre, et l'état des dépendances se traite au besoin par des sondes readiness ou par la gestion d'erreurs de l'application.

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

Autres questions sur Bases du cloud et des conteneurs

  1. 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 ?
  2. 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 ?
  3. Dans Kubernetes, quelle description des requests et des limits de ressources définies pour un conteneur est correcte ?
  4. 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 ?
  5. On utilise un service de base de données managé dans le cloud (un service dans lequel le fournisseur exploite le logiciel de base de données). Selon le modèle de responsabilité partagée, qu'est-ce qui reste en général de la responsabilité de l'utilisateur ?