Pular para o conteúdo principal

Questão de Sistemas Operacionais — Contêineres (Docker, Kubernetes, etc.) — CESPE / CEBRASPE 2024

Sistemas OperacionaisContêineres (Docker, Kubernetes, etc.)
Código
ce404153
Banca
CESPE / CEBRASPE
Órgão
TC DF
Ano
2024
Cargo
ACE ( )

Julgue o próximo item, relativos a DevOps e Kubernetes.

 

Um statefulset define os pods que fornecem instalações e serviços com armazenamento não persistente, de forma que a operação do cluster seja executada sem acoplamento; assim, cada pod pode executar suas funções sem a necessidade de fazer parte de um complemento.

  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

StatefulSet no Kubernetes: armazenamento persistente e identidade estável

Gabarito: ERRADO. O item está incorreto porque o StatefulSet, no Kubernetes, é justamente o controlador projetado para aplicações stateful (com estado), que exigem armazenamento persistente e identidade estável para cada pod — exatamente o oposto do que afirma o enunciado, que o descreve com armazenamento não persistente e sem acoplamento. Essa característica pertence ao Deployment, que gerencia pods stateless (sem estado).

O Kubernetes é um sistema de orquestração de contêineres que automatiza a implantação, o dimensionamento e a gestão de aplicações. Dentro dele, existem diferentes controladores (workloads) para diferentes necessidades. O StatefulSet é um desses controladores, e seu nome já entrega sua função: ele é feito para aplicações que precisam manter estado, ou seja, que precisam lembrar informações entre execuções, como bancos de dados, sistemas de mensageria e serviços de cache.

A principal característica do StatefulSet é fornecer armazenamento persistente e identidade estável para cada pod. Isso significa que, mesmo que um pod seja recriado (por exemplo, após uma falha), ele mantém o mesmo nome, a mesma identidade de rede e o mesmo volume de armazenamento. Essa estabilidade é fundamental para aplicações que precisam de consistência de dados e de uma ordem de inicialização e encerramento bem definida.

Por outro lado, o Deployment é o controlador padrão para aplicações stateless (sem estado), como servidores web e APIs. Nesse caso, os pods são intercambiáveis, não possuem identidade própria e o armazenamento é efêmero (não persistente). Se um pod cai, outro é criado em seu lugar, sem qualquer vínculo com o anterior.

A confusão entre StatefulSet e Deployment é uma pegadinha clássica em provas de DevOps e Kubernetes. O enunciado inverte completamente as características: afirma que o StatefulSet usa armazenamento não persistente e que os pods operam sem acoplamento, quando na verdade o StatefulSet é exatamente o oposto — ele garante persistência e acoplamento (identidade estável) para cada pod.

Para fixar, veja a comparação:

Característica

StatefulSet

Deployment

Tipo de aplicação

Stateful (com estado)

Stateless (sem estado)

Armazenamento

Persistente (via PersistentVolume)

Efêmero (não persistente)

Identidade do pod

Estável (nome fixo, ex.: web-0, web-1)

Aleatória (ex.: web-abc123)

Ordem de inicialização

Ordenada (um por vez)

Paralela

Rede

DNS estável por pod

DNS do serviço, sem identidade individual

Uso típico

Bancos de dados, filas, caches

APIs, servidores web, microsserviços

A banca explora exatamente essa inversão: quem não conhece o StatefulSet pode achar que ele é "sem estado" por causa do nome, mas é justamente o contrário. O termo "stateful" já indica que ele mantém estado.

StatefulSet
  • 1Aplicações com estado
  • 2Armazenamento persistente
  • 3Identidade estável (db-0, db-1)
  • 4Inicialização ordenada
  • 5Deployment
    • Aplicações sem estado
    • Armazenamento efêmero
    • Identidade aleatória
    • Inicialização paralela
LEVEL · soulevel.com.br

Item — ❌ ERRADO

O item afirma que o StatefulSet define pods com armazenamento não persistente e que a operação do cluster é executada sem acoplamento, com cada pod executando suas funções sem necessidade de fazer parte de um complemento. Isso está totalmente incorreto.

O StatefulSet é o controlador que garante armazenamento persistente e identidade estável para cada pod. Ele é usado justamente para aplicações que precisam manter estado, como bancos de dados. Cada pod do StatefulSet tem um nome fixo (ex.: db-0, db-1) e um volume persistente associado, que sobrevive à recriação do pod. Além disso, os pods de um StatefulSet são acoplados a uma ordem de inicialização e encerramento, e cada um tem sua própria identidade de rede.

A descrição do enunciado se encaixa no Deployment, que gerencia pods stateless, com armazenamento efêmero e sem identidade individual. Portanto, o item está errado.

Gabarito: ERRADO (E).

Link permanente: /questoes/ce404153