Quiz Módulo 7 - Workloads Avanzados
Instrucciones
Este quiz contiene 30 preguntas de opción múltiple.
Pregunta 1
¿Qué tipo de workload garantiza que un Pod se ejecute en todos los nodos del clúster?
Ver explicación
Respuesta correcta: DaemonSet
Explicación: Un DaemonSet asegura que un Pod se ejecute en todos (o ciertos) nodos del clúster, ideal para agentes de logging o monitoreo.
Pregunta 2
¿Qué es un Job en Kubernetes?
Ver explicación
Respuesta correcta: Un workload que crea uno o varios Pods y garantiza que un cierto número finalicen exitosamente
Explicación: Un Job se utiliza para tareas puntuales que deben ejecutarse una vez y finalizar exitosamente, como procesamiento de datos o backups.
Pregunta 3
¿Qué es un CronJob?
Ver explicación
Respuesta correcta: Un workload que crea Jobs de manera recurrente según un schedule (como cron)
Explicación: Un CronJob programa la ejecución de Jobs según un formato cron (por ejemplo: "0 2 * * *" para todos los días a las 2h).
Pregunta 4
¿Cuál es la principal diferencia entre un StatefulSet y un Deployment?
Ver explicación
Respuesta correcta: StatefulSet garantiza identidades estables et almacenamiento persistente individual, Deployment es para aplicaciones stateless
Explicación: Los StatefulSets están diseñados para aplicaciones con estado (bases de datos) con identidades estables, mientras que los Deployments son para aplicaciones stateless.
Pregunta 5
¿Cuál es el formato de schedule de un CronJob?
Ver explicación
Respuesta correcta: Formato cron: minuto hora día mes día-de-la-semana
Explicación: El schedule utiliza el formato cron estándar: "* * * * *" donde cada asterisco representa minuto, hora, día del mes, mes, día de la semana.
Pregunta 6
¿Para qué se utiliza un DaemonSet?
Ver explicación
Respuesta correcta: Desplegar agentes de sistema como agentes de logging, monitoreo o networking en cada nodo
Explicación: Los DaemonSets son ideales para agentes que deben ejecutarse en cada nodo, como Fluentd para logs, Prometheus Node Exporter para métricas, o kube-proxy.
Pregunta 7
¿Cuál es la diferencia entre completions y parallelism en un Job?
Ver explicación
Respuesta correcta: completions define el número de éxitos requeridos, parallelism define el número de Pods en paralelo
Explicación: completions especifica cuántos Pods deben finalizar exitosamente, mientras que parallelism controla cuántos Pods pueden ejecutarse simultáneamente.
Pregunta 8
¿Qué es un servicio headless en el contexto de un StatefulSet?
Ver explicación
Respuesta correcta: Un Service con clusterIP: None que retorna directamente las IPs de los Pods para el descubrimiento DNS estable
Explicación: Los StatefulSets utilizan servicios headless para permitir el descubrimiento DNS estable de cada Pod (por ejemplo: web-0.web-service.default.svc.cluster.local).
Pregunta 9
¿Cuál es el comando para ver los Jobs?
Ver explicación
Respuesta correcta: kubectl get jobs
Explicación: kubectl get jobs muestra todos los Jobs y su estado (Active, Completed, Failed).
Pregunta 10
¿Cuál es el comando para ver los CronJobs?
Ver explicación
Respuesta correcta: kubectl get cronjobs
Explicación: kubectl get cronjobs (o cj) muestra todos los CronJobs y su schedule.
Pregunta 11
¿Qué es un Pod Disruption Budget (PDB)?
Ver explicación
Respuesta correcta: Una política que limita el número de Pods de una aplicación que pueden ser interrumpidos simultáneamente
Explicación: Un PDB garantiza que un cierto número de Pods permanezcan disponibles durante actualizaciones o mantenimientos, asegurando alta disponibilidad.
Pregunta 12
¿Cuál es la diferencia entre un Job y un CronJob?
Ver explicación
Respuesta correcta: Un Job se ejecuta una vez, un CronJob crea Jobs recurrentes según un schedule
Explicación: Un Job ejecuta una tarea puntual, mientras que un CronJob programa la ejecución recurrente de Jobs según un schedule cron.
Pregunta 13
¿Cuál es el restartPolicy por defecto para un Job?
Ver explicación
Respuesta correcta: Never u OnFailure
Explicación: Los Jobs generalmente usan restartPolicy: Never u OnFailure, ya que deben finalizar exitosamente, no reiniciarse indefinidamente.
Pregunta 14
¿Para qué se utiliza un StatefulSet?
Ver explicación
Respuesta correcta: Aplicaciones con estado como bases de datos, que requieren identidades estables y almacenamiento persistente
Explicación: Los StatefulSets están diseñados para aplicaciones que requieren identidades estables, un orden de despliegue garantizado y almacenamiento persistente individual por Pod.
Pregunta 15
¿Cuál es el comando para suspender un CronJob?
Ver explicación
Respuesta correcta: kubectl patch cronjob [name] -p '{"spec":{"suspend":true}}'
Explicación: Para suspender un CronJob, utilice kubectl patch para establecer suspend: true, lo que impide la creación de nuevos Jobs.
Pregunta 16
¿Qué es un DaemonSet con nodeSelector?
Ver explicación
Respuesta correcta: Un DaemonSet que se ejecuta solo en los nodos que cumplen con los selectores especificados
Explicación: Un DaemonSet puede usar nodeSelector para limitar la ejecución a ciertos nodos, útil para agentes específicos de ciertos tipos de nodos.
Pregunta 17
¿Cuál es la diferencia entre un Job con completions=1 y parallelism=1?
Ver explicación
Respuesta correcta: completions=1 significa que un Pod debe tener éxito, parallelism=1 significa que solo un Pod se ejecuta a la vez
Explicación: completions define el número de éxitos requeridos, mientras que parallelism controla cuántos Pods pueden ejecutarse simultáneamente.
Pregunta 18
¿Qué es un StatefulSet con serviceName?
Ver explicación
Respuesta correcta: Un StatefulSet que utiliza un servicio headless especificado para el descubrimiento DNS estable
Explicación: serviceName en un StatefulSet hace referencia a un servicio headless que permite el descubrimiento DNS estable de cada Pod del StatefulSet.
Pregunta 19
¿Cuál es el comando para ver los DaemonSets?
Ver explicación
Respuesta correcta: kubectl get daemonsets
Explicación: kubectl get daemonsets (o ds) muestra todos los DaemonSets y el número de Pods deseados/actuales.
Pregunta 20
¿Cuál es el comando para ver los StatefulSets?
Ver explicación
Respuesta correcta: kubectl get statefulsets
Explicación: kubectl get statefulsets (o sts) muestra todos los StatefulSets y su estado de replicación.
Pregunta 21
¿Qué es un Job con activeDeadlineSeconds?
Ver explicación
Respuesta correcta: Un Job con un límite máximo de tiempo para su ejecución
Explicación: activeDeadlineSeconds define la duración máxima en segundos que un Job puede ejecutarse antes de ser terminado automáticamente.
Pregunta 22
¿Cuál es la diferencia entre un DaemonSet y un Deployment para el scaling?
Ver explicación
Respuesta correcta: Un DaemonSet crea un Pod por nodo, un Deployment crea un número especificado de Pods
Explicación: Un DaemonSet garantiza que un Pod se ejecute en cada nodo (o nodos que cumplen los selectores), mientras que un Deployment crea un número de réplicas especificado independientemente del número de nodos.
Pregunta 23
¿Qué es un CronJob con startingDeadlineSeconds?
Ver explicación
Respuesta correcta: Un CronJob con un límite de tiempo para iniciar un Job después de la hora programada
Explicación: startingDeadlineSeconds define el número de segundos después de la hora programada durante los cuales un Job aún puede iniciarse antes de considerarse perdido.
Pregunta 24
¿Cuál es el comando para eliminar un Job y sus Pods?
Ver explicación
Respuesta correcta: kubectl delete job [name]
Explicación: kubectl delete job elimina el Job y sus Pods asociados. Utilice --cascade=orphan para conservar los Pods.
Pregunta 25
¿Qué es un StatefulSet con podManagementPolicy: Parallel?
Ver explicación
Respuesta correcta: Un StatefulSet que crea y elimina los Pods en paralelo en lugar de secuencialmente
Explicación: Por defecto, los StatefulSets crean/eliminan los Pods secuencialmente. Parallel permite hacerlo en paralelo, acelerando las operaciones pero perdiendo el orden garantizado.
Pregunta 26
¿Cuál es el comando para ver el historial de un CronJob?
Ver explicación
Respuesta correcta: kubectl get jobs -l job-name=[cronjob-name] para ver los Jobs creados por el CronJob
Explicación: Los CronJobs crean Jobs con labels específicos. Utilice kubectl get jobs con los labels apropiados para ver el historial.
Pregunta 27
¿Qué es un Job con backoffLimit?
Ver explicación
Respuesta correcta: Un Job con un número máximo de intentos antes de marcarse como fallido
Explicación: backoffLimit define el número máximo de veces que un Job puede ser reintentado tras un fallo antes de marcarse como definitivamente fallido.
Pregunta 28
¿Cuál es la diferencia entre un StatefulSet y un DaemonSet?
Ver explicación
Respuesta correcta: StatefulSet crea un número especificado de Pods con identidades estables, DaemonSet crea un Pod por nodo
Explicación: Los StatefulSets crean un número de réplicas especificado con identidades estables, mientras que los DaemonSets garantizan un Pod en cada nodo.
Pregunta 29
¿Qué es un CronJob con concurrencyPolicy: Forbid?
Ver explicación
Respuesta correcta: Un CronJob que impide la creación de un nuevo Job si el anterior aún está en ejecución
Explicación: concurrencyPolicy: Forbid impide la creación de un nuevo Job si el Job anterior aún está en ejecución, evitando ejecuciones simultáneas.
Pregunta 30
¿Cuál es el comando para ver los Pods de un DaemonSet?
Ver explicación
Respuesta correcta: kubectl get pods -l [selector] donde selector corresponde a los labels del DaemonSet
Explicación: Los Pods creados por un DaemonSet tienen los mismos labels que el DaemonSet. Utilice kubectl get pods con los labels apropiados para filtrarlos.
Resultado del Quiz
¡Felicidades por haber completado el quiz del Módulo 7!
Puntaje:
- 25-30 respuestas correctas: ¡Excelente! Usted domina los workloads avanzados.
- 20-24 respuestas correctas: ¡Muy bien! Revise los conceptos donde tuvo dificultades.
- 15-19 respuestas correctas: ¡Bien! Repase los capítulos sobre StatefulSets, DaemonSets, Jobs y CronJobs.
- Menos de 15: Se recomienda repasar el módulo antes de continuar.
Quiz creado el: Diciembre 2024