Aller au contenu principal

Quiz Module 7 - Workloads Avancés

Instructions

Ce quiz contient 30 questions à choix multiples.


Question 1

Quel type de workload garantit qu'un Pod s'exécute sur tous les nodes du cluster?

Voir l'explication

Réponse correcte: DaemonSet

Explication: Un DaemonSet assure qu'un Pod s'exécute sur tous (ou certains) nodes du cluster, idéal pour les agents de logging ou monitoring.


Question 2

Qu'est-ce qu'un Job dans Kubernetes?

Voir l'explication

Réponse correcte: Un workload qui crée un ou plusieurs Pods et garantit qu'un certain nombre se terminent avec succès

Explication: Un Job est utilisé pour des tâches ponctuelles qui doivent s'exécuter une fois et se terminer avec succès, comme le traitement de données ou les backups.


Question 3

Qu'est-ce qu'un CronJob?

Voir l'explication

Réponse correcte: Un workload qui crée des Jobs de manière récurrente selon un schedule (comme cron)

Explication: Un CronJob planifie l'exécution de Jobs selon un format cron (par exemple: "0 2 * * *" pour tous les jours à 2h).


Question 4

Quelle est la différence principale entre un StatefulSet et un Deployment?

Voir l'explication

Réponse correcte: StatefulSet garantit des identités stables et un stockage persistant individuel, Deployment est pour les applications stateless

Explication: Les StatefulSets sont conçus pour les applications avec état (bases de données) avec des identités stables, tandis que les Deployments sont pour les applications stateless.


Question 5

Quel est le format de schedule d'un CronJob?

Voir l'explication

Réponse correcte: Format cron: minute hour day month day-of-week

Explication: Le schedule utilise le format cron standard: "* * * * *" où chaque astérisque représente minute, heure, jour du mois, mois, jour de la semaine.


Question 6

Qu'est-ce qu'un DaemonSet utilisé pour?

Voir l'explication

Réponse correcte: Déployer des agents système comme les agents de logging, monitoring, ou networking sur chaque node

Explication: Les DaemonSets sont idéaux pour les agents qui doivent s'exécuter sur chaque node, comme Fluentd pour les logs, Prometheus Node Exporter pour les métriques, ou kube-proxy.


Question 7

Quelle est la différence entre completions et parallelism dans un Job?

Voir l'explication

Réponse correcte: completions définit le nombre de succès requis, parallelism définit le nombre de Pods en parallèle

Explication: completions spécifie combien de Pods doivent se terminer avec succès, tandis que parallelism contrôle combien de Pods peuvent s'exécuter simultanément.


Question 8

Qu'est-ce qu'un service headless dans le contexte d'un StatefulSet?

Voir l'explication

Réponse correcte: Un Service avec clusterIP: None qui retourne directement les IPs des Pods pour la découverte DNS stable

Explication: Les StatefulSets utilisent des services headless pour permettre la découverte DNS stable de chaque Pod (par exemple: web-0.web-service.default.svc.cluster.local).


Question 9

Quelle est la commande pour voir les Jobs?

Voir l'explication

Réponse correcte: kubectl get jobs

Explication: kubectl get jobs affiche tous les Jobs et leur statut (Active, Completed, Failed).


Question 10

Quelle est la commande pour voir les CronJobs?

Voir l'explication

Réponse correcte: kubectl get cronjobs

Explication: kubectl get cronjobs (ou cj) affiche tous les CronJobs et leur schedule.


Question 11

Qu'est-ce qu'un Pod Disruption Budget (PDB)?

Voir l'explication

Réponse correcte: Une politique qui limite le nombre de Pods d'une application qui peuvent être interrompus simultanément

Explication: Un PDB garantit qu'un certain nombre de Pods restent disponibles pendant les mises à jour ou maintenances, assurant la haute disponibilité.


Question 12

Quelle est la différence entre un Job et un CronJob?

Voir l'explication

Réponse correcte: Un Job s'exécute une fois, un CronJob crée des Jobs récurrents selon un schedule

Explication: Un Job exécute une tâche ponctuelle, tandis qu'un CronJob planifie l'exécution récurrente de Jobs selon un schedule cron.


Question 13

Quel est le restartPolicy par défaut pour un Job?

Voir l'explication

Réponse correcte: Never ou OnFailure

Explication: Les Jobs utilisent généralement restartPolicy: Never ou OnFailure, car ils doivent se terminer avec succès, pas redémarrer indéfiniment.


Question 14

Qu'est-ce qu'un StatefulSet utilisé pour?

Voir l'explication

Réponse correcte: Applications avec état comme les bases de données, nécessitant des identités stables et un stockage persistant

Explication: Les StatefulSets sont conçus pour les applications qui nécessitent des identités stables, un ordre de déploiement garanti, et un stockage persistant individuel par Pod.


Question 15

Quelle est la commande pour suspendre un CronJob?

Voir l'explication

Réponse correcte: kubectl patch cronjob [name] -p '{"spec":{"suspend":true}}'

Explication: Pour suspendre un CronJob, utilisez kubectl patch pour définir suspend: true, ce qui empêche la création de nouveaux Jobs.


Question 16

Qu'est-ce qu'un DaemonSet avec nodeSelector?

Voir l'explication

Réponse correcte: Un DaemonSet qui s'exécute uniquement sur les nodes correspondant aux sélecteurs spécifiés

Explication: Un DaemonSet peut utiliser nodeSelector pour limiter l'exécution à certains nodes, utile pour des agents spécifiques à certains types de nodes.


Question 17

Quelle est la différence entre un Job avec completions=1 et parallelism=1?

Voir l'explication

Réponse correcte: completions=1 signifie qu'un Pod doit réussir, parallelism=1 signifie qu'un seul Pod s'exécute à la fois

Explication: completions définit le nombre de succès requis, tandis que parallelism contrôle le nombre de Pods qui peuvent s'exécuter simultanément.


Question 18

Qu'est-ce qu'un StatefulSet avec serviceName?

Voir l'explication

Réponse correcte: Un StatefulSet qui utilise un service headless spécifié pour la découverte DNS stable

Explication: serviceName dans un StatefulSet référence un service headless qui permet la découverte DNS stable de chaque Pod du StatefulSet.


Question 19

Quelle est la commande pour voir les DaemonSets?

Voir l'explication

Réponse correcte: kubectl get daemonsets

Explication: kubectl get daemonsets (ou ds) affiche tous les DaemonSets et le nombre de Pods désirés/actuels.


Question 20

Quelle est la commande pour voir les StatefulSets?

Voir l'explication

Réponse correcte: kubectl get statefulsets

Explication: kubectl get statefulsets (ou sts) affiche tous les StatefulSets et leur statut de réplication.


Question 21

Qu'est-ce qu'un Job avec activeDeadlineSeconds?

Voir l'explication

Réponse correcte: Un Job avec une limite de temps maximale pour son exécution

Explication: activeDeadlineSeconds définit la durée maximale en secondes qu'un Job peut s'exécuter avant d'être terminé automatiquement.


Question 22

Quelle est la différence entre un DaemonSet et un Deployment pour le scaling?

Voir l'explication

Réponse correcte: Un DaemonSet crée un Pod par node, un Deployment crée un nombre spécifié de Pods

Explication: Un DaemonSet garantit qu'un Pod s'exécute sur chaque node (ou nodes correspondant aux sélecteurs), tandis qu'un Deployment crée un nombre de réplicas spécifié indépendamment du nombre de nodes.


Question 23

Qu'est-ce qu'un CronJob avec startingDeadlineSeconds?

Voir l'explication

Réponse correcte: Un CronJob avec une limite de temps pour démarrer un Job après l'heure planifiée

Explication: startingDeadlineSeconds définit le nombre de secondes après l'heure planifiée pendant lesquelles un Job peut encore être démarré avant d'être considéré comme manqué.


Question 24

Quelle est la commande pour supprimer un Job et ses Pods?

Voir l'explication

Réponse correcte: kubectl delete job [name]

Explication: kubectl delete job supprime le Job et ses Pods associés. Utilisez --cascade=orphan pour conserver les Pods.


Question 25

Qu'est-ce qu'un StatefulSet avec podManagementPolicy: Parallel?

Voir l'explication

Réponse correcte: Un StatefulSet qui crée et supprime les Pods en parallèle au lieu de séquentiellement

Explication: Par défaut, les StatefulSets créent/suppriment les Pods séquentiellement. Parallel permet de le faire en parallèle, accélérant les opérations mais perdant l'ordre garanti.


Question 26

Quelle est la commande pour voir l'historique d'un CronJob?

Voir l'explication

Réponse correcte: kubectl get jobs -l job-name=[cronjob-name] pour voir les Jobs créés par le CronJob

Explication: Les CronJobs créent des Jobs avec des labels spécifiques. Utilisez kubectl get jobs avec les labels appropriés pour voir l'historique.


Question 27

Qu'est-ce qu'un Job avec backoffLimit?

Voir l'explication

Réponse correcte: Un Job avec un nombre maximum de tentatives avant d'être marqué comme échoué

Explication: backoffLimit définit le nombre maximum de fois qu'un Job peut être retenté après un échec avant d'être marqué comme définitivement échoué.


Question 28

Quelle est la différence entre un StatefulSet et un DaemonSet?

Voir l'explication

Réponse correcte: StatefulSet crée un nombre spécifié de Pods avec identités stables, DaemonSet crée un Pod par node

Explication: Les StatefulSets créent un nombre de réplicas spécifié avec des identités stables, tandis que les DaemonSets garantissent un Pod sur chaque node.


Question 29

Qu'est-ce qu'un CronJob avec concurrencyPolicy: Forbid?

Voir l'explication

Réponse correcte: Un CronJob qui empêche la création d'un nouveau Job si le précédent est encore en cours

Explication: concurrencyPolicy: Forbid empêche la création d'un nouveau Job si le Job précédent est encore en cours, évitant les exécutions simultanées.


Question 30

Quelle est la commande pour voir les Pods d'un DaemonSet?

Voir l'explication

Réponse correcte: kubectl get pods -l [selector] où selector correspond aux labels du DaemonSet

Explication: Les Pods créés par un DaemonSet ont les mêmes labels que le DaemonSet. Utilisez kubectl get pods avec les labels appropriés pour les filtrer.


Résultat du Quiz

Félicitations pour avoir complété le quiz du Module 7!

Score:

  • 25-30 bonnes réponses: Excellent! Vous maîtrisez les workloads avancés.
  • 20-24 bonnes réponses: Très bien! Revoyez les concepts où vous avez eu des difficultés.
  • 15-19 bonnes réponses: Bien! Revoyez les chapitres sur StatefulSets, DaemonSets, Jobs et CronJobs.
  • Moins de 15: Recommandé de revoir le module avant de continuer.

Quiz créé le: Décembre 2024