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