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