Pular para o conteúdo principal

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