ANÚNCIO

~/questoes/devops

O que significa que Kubernetes usa uma abordagem declarativa?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência O mínimo que você precisa saber sobre Kubernetes
Para fixar

Abordagem Declarativa no Kubernetes

Conceito central

A abordagem declarativa no Kubernetes significa que você descreve como deseja que sua aplicação seja (o estado final) e deixa a plataforma trabalhar para tornar isso realidade. Em vez de dar comandos passo a passo, você declara o objetivo e Kubernetes cuida dos detalhes operacionais.

Por que essa resposta faz sentido

Na abordagem declarativa, você escreve em um arquivo YAML qual é o estado desejado (por exemplo, "quero 3 replicas da minha aplicação rodando") e Kubernetes automaticamente gerencia a criação, atualização e manutenção desse estado, sem você precisar executar comandos individuais.

Armadilhas comuns

  • Confundir a abordagem declarativa com imperativa: pensar que você precisa escrever scripts com comandos passo a passo quando, na verdade, Kubernetes aceita declarações de estado.
  • Achar que variáveis de ambiente ou configurações dinâmicas definem a abordagem declarativa, quando o ponto central é a separação entre 'o que você quer' e 'como Kubernetes faz acontecer'.
  • Associar a abordagem declarativa apenas ao YAML, esquecendo que o conceito é mais amplo: qualquer forma de descrever o estado final (não os passos) é declarativa.

Entenda as alternativas

A

Esta é a essência da abordagem declarativa: você declara o resultado esperado e Kubernetes trabalha internamente para alcançá-lo. Isso diferencia Kubernetes de ferramentas imperativas onde você comanda cada passo.

B

Variáveis de ambiente podem fazer parte da configuração, mas não definem a abordagem declarativa. Além disso, na abordagem declarativa, as configurações são definidas em arquivos YAML estáticos, não através de variáveis que mudam em tempo real.

C

Kubernetes é independente do sistema operacional. Não é o SO do nó que controla a execução dos contêineres; é o Kubernetes que coordena isso através de componentes como o kubelet e o scheduler.

D

Isso descreve uma abordagem imperativa, onde você escreve scripts com comandos sequenciais. Kubernetes, ao contrário, é declarativo: você apenas declara o desejado, não os passos.

Dica prática: Quando trabalhar com Kubernetes, você escreverá manifests em YAML descrevendo Deployments, Services e ConfigMaps. Nunca se preocupe com 'como Kubernetes vai criar o Pod em qual nó' — você apenas diz 'quero este Pod rodando' e a plataforma resolve. Essa simplicidade é a magia da abordagem declarativa.

Revise pensando: Se você quisesse 5 replicas de uma aplicação rodando em Kubernetes, você escreveria um script com 5 comandos, ou descreveria isso em um arquivo YAML e deixaria Kubernetes executar?