Quiz Módulo 7 - Workloads Avançados
Instruções
Este quiz contém 30 questões de múltipla escolha.
Questão 1
Que tipo de workload garante que um Pod seja executado em todos os nodes do cluster?
Ver explicação
Resposta correta: DaemonSet
Explicação: Um DaemonSet garante que um Pod seja executado em todos (ou em alguns) nodes do cluster, ideal para agentes de logging ou monitoramento.
Questão 2
O que é um Job no Kubernetes?
Ver explicação
Resposta correta: Um workload que cria um ou mais Pods e garante que um certo número termine com sucesso
Explicação: Um Job é usado para tarefas pontuais que devem ser executadas uma vez e terminar com sucesso, como processamento de dados ou backups.
Questão 3
O que é um CronJob?
Ver explicação
Resposta correta: Um workload que cria Jobs de forma recorrente conforme um agendamento (como cron)
Explicação: Um CronJob agenda a execução de Jobs conforme o formato cron (por exemplo: "0 2 * * *" para todos os dias às 2h).
Questão 4
Qual é a principal diferença entre um StatefulSet e um Deployment?
Ver explicação
Resposta correta: StatefulSet garante identidades estáveis e armazenamento persistente individual, Deployment é para aplicações stateless
Explicação: StatefulSets são projetados para aplicações com estado (bancos de dados) com identidades estáveis, enquanto Deployments são para aplicações stateless.
Questão 5
Qual é o formato de agendamento de um CronJob?
Ver explicação
Resposta correta: Formato cron: minuto hora dia mês dia-da-semana
Explicação: O agendamento utiliza o formato cron padrão: "* * * * *" onde cada asterisco representa minuto, hora, dia do mês, mês, dia da semana.
Questão 6
Para que serve um DaemonSet?
Ver explicação
Resposta correta: Deploy de agentes de sistema como agentes de logging, monitoramento ou networking em cada node
Explicação: DaemonSets são ideais para agentes que precisam rodar em cada node, como Fluentd para logs, Prometheus Node Exporter para métricas ou kube-proxy.
Questão 7
Qual a diferença entre completions e parallelism em um Job?
Ver explicação
Resposta correta: completions define o número de execuções bem-sucedidas requeridas, parallelism define o número de Pods em paralelo
Explicação: completions especifica quantos Pods devem terminar com sucesso, enquanto parallelism controla quantos Pods podem rodar simultaneamente.
Questão 8
O que é um service headless no contexto de um StatefulSet?
Ver explicação
Resposta correta: Um Service com clusterIP: None que retorna diretamente os IPs dos Pods para descoberta DNS estável
Explicação: StatefulSets usam services headless para permitir descoberta DNS estável de cada Pod (por exemplo: web-0.web-service.default.svc.cluster.local).
Questão 9
Qual é o comando para ver os Jobs?
Ver explicação
Resposta correta: kubectl get jobs
Explicação: kubectl get jobs exibe todos os Jobs e seu status (Active, Completed, Failed).
Questão 10
Qual é o comando para ver os CronJobs?
Ver explicação
Resposta correta: kubectl get cronjobs
Explicação: kubectl get cronjobs (ou cj) exibe todos os CronJobs e seus agendamentos.
Questão 11
O que é um Pod Disruption Budget (PDB)?
Ver explicação
Resposta correta: Uma política que limita o número de Pods de uma aplicação que podem ser interrompidos simultaneamente
Explicação: Um PDB garante que um certo número de Pods permaneça disponível durante atualizações ou manutenções, assegurando alta disponibilidade.
Questão 12
Qual a diferença entre um Job e um CronJob?
Ver explicação
Resposta correta: Um Job executa uma vez, um CronJob cria Jobs recorrentes conforme um agendamento
Explicação: Um Job executa uma tarefa pontual, enquanto um CronJob agenda a execução recorrente de Jobs conforme um agendamento cron.
Questão 13
Qual é o restartPolicy padrão para um Job?
Ver explicação
Resposta correta: Never ou OnFailure
Explicação: Jobs geralmente usam restartPolicy: Never ou OnFailure, pois devem terminar com sucesso, não reiniciar indefinidamente.
Questão 14
Para que serve um StatefulSet?
Ver explicação
Resposta correta: Aplicações com estado como bancos de dados, que precisam de identidades estáveis e armazenamento persistente
Explicação: StatefulSets são projetados para aplicações que precisam de identidades estáveis, ordem de deploy garantida e armazenamento persistente individual por Pod.
Questão 15
Qual é o comando para suspender um CronJob?
Ver explicação
Resposta correta: kubectl patch cronjob [name] -p '{"spec":{"suspend":true}}'
Explicação: Para suspender um CronJob, use kubectl patch para definir suspend: true, impedindo a criação de novos Jobs.
Questão 16
O que é um DaemonSet com nodeSelector?
Ver explicação
Resposta correta: Um DaemonSet que executa apenas nos nodes que correspondem aos seletores especificados
Explicação: Um DaemonSet pode usar nodeSelector para limitar a execução a determinados nodes, útil para agentes específicos de certos tipos de nodes.
Questão 17
Qual a diferença entre um Job com completions=1 e parallelism=1?
Ver explicação
Resposta correta: completions=1 significa que um Pod deve ter sucesso, parallelism=1 significa que apenas um Pod executa por vez
Explicação: completions define o número de execuções bem-sucedidas requeridas, enquanto parallelism controla quantos Pods podem rodar simultaneamente.
Questão 18
O que é um StatefulSet com serviceName?
Ver explicação
Resposta correta: Um StatefulSet que usa um service headless especificado para descoberta DNS estável
Explicação: serviceName em um StatefulSet referencia um service headless que permite a descoberta DNS estável de cada Pod do StatefulSet.
Questão 19
Qual é o comando para ver os DaemonSets?
Ver explicação
Resposta correta: kubectl get daemonsets
Explicação: kubectl get daemonsets (ou ds) exibe todos os DaemonSets e o número de Pods desejados/atuais.
Questão 20
Qual é o comando para ver os StatefulSets?
Ver explicação
Resposta correta: kubectl get statefulsets
Explicação: kubectl get statefulsets (ou sts) exibe todos os StatefulSets e seu status de replicação.
Questão 21
O que é um Job com activeDeadlineSeconds?
Ver explicação
Resposta correta: Um Job com um limite máximo de tempo para sua execução
Explicação: activeDeadlineSeconds define a duração máxima em segundos que um Job pode rodar antes de ser terminado automaticamente.
Questão 22
Qual a diferença entre um DaemonSet e um Deployment para scaling?
Ver explicação
Resposta correta: Um DaemonSet cria um Pod por node, um Deployment cria um número especificado de Pods
Explicação: Um DaemonSet garante que um Pod execute em cada node (ou nodes que correspondam aos seletores), enquanto um Deployment cria um número de réplicas especificado independentemente do número de nodes.
Questão 23
O que é um CronJob com startingDeadlineSeconds?
Ver explicação
Resposta correta: Um CronJob com um limite de tempo para iniciar um Job após o horário agendado
Explicação: startingDeadlineSeconds define o número de segundos após o horário agendado durante os quais um Job ainda pode ser iniciado antes de ser considerado perdido.
Questão 24
Qual é o comando para remover um Job e seus Pods?
Ver explicação
Resposta correta: kubectl delete job [name]
Explicação: kubectl delete job remove o Job e seus Pods associados. Use --cascade=orphan para manter os Pods.
Questão 25
O que é um StatefulSet com podManagementPolicy: Parallel?
Ver explicação
Resposta correta: Um StatefulSet que cria e remove os Pods em paralelo ao invés de sequencialmente
Explicação: Por padrão, StatefulSets criam/removem os Pods sequencialmente. Parallel permite fazer isso em paralelo, acelerando as operações mas perdendo a ordem garantida.
Questão 26
Qual é o comando para ver o histórico de um CronJob?
Ver explicação
Resposta correta: kubectl get jobs -l job-name=[cronjob-name] para ver os Jobs criados pelo CronJob
Explicação: CronJobs criam Jobs com labels específicos. Use kubectl get jobs com os labels apropriados para ver o histórico.
Questão 27
O que é um Job com backoffLimit?
Ver explicação
Resposta correta: Um Job com um número máximo de tentativas antes de ser marcado como falhado
Explicação: backoffLimit define o número máximo de vezes que um Job pode ser tentado novamente após falha antes de ser marcado como definitivamente falhado.
Questão 28
Qual a diferença entre um StatefulSet e um DaemonSet?
Ver explicação
Resposta correta: StatefulSet cria um número especificado de Pods com identidades estáveis, DaemonSet cria um Pod por node
Explicação: StatefulSets criam um número de réplicas especificado com identidades estáveis, enquanto DaemonSets garantem um Pod em cada node.
Questão 29
O que é um CronJob com concurrencyPolicy: Forbid?
Ver explicação
Resposta correta: Um CronJob que impede a criação de um novo Job se o anterior ainda estiver em execução
Explicação: concurrencyPolicy: Forbid impede a criação de um novo Job se o Job anterior ainda estiver em execução, evitando execuções simultâneas.
Questão 30
Qual é o comando para ver os Pods de um DaemonSet?
Ver explicação
Resposta correta: kubectl get pods -l [selector] onde selector corresponde aos labels do DaemonSet
Explicação: Os Pods criados por um DaemonSet possuem os mesmos labels do DaemonSet. Use kubectl get pods com os labels apropriados para filtrá-los.
Resultado do Quiz
Parabéns por completar o quiz do Módulo 7!
Pontuação:
- 25-30 respostas corretas: Excelente! Você domina workloads avançados.
- 20-24 respostas corretas: Muito bom! Reveja os conceitos onde teve dificuldades.
- 15-19 respostas corretas: Bom! Revise os capítulos sobre StatefulSets, DaemonSets, Jobs e CronJobs.
- Menos de 15: Recomendado revisar o módulo antes de continuar.
Quiz criado em: Dezembro 2024