Orquestração de Contêineres Question #019e3a4f
Qual recurso do Kubernetes usa o campo booleano immutable: true?
Deployment
Pod
ConfigMap
ReplicaSet
Official Explanation / Community Explanations
O campo booleano immutable: true é uma funcionalidade do recurso ConfigMap no Kubernetes. Quando definido como true, impede atualizações nos dados do ConfigMap após a criação. Isso é útil para garantir estabilidade de configuração e evitar alterações não intencionais que possam afetar pods em execução. O campo não está disponível para recursos Deployment, Pod ou ReplicaSet.
Como Funciona
- ConfigMap: O campo
immutableé um campo de nível superior no spec do ConfigMap. Quando definido comotrue, qualquer tentativa de modificar os dados do ConfigMap (por exemplo, viakubectl editoukubectl apply) será rejeitada. Isso garante que a configuração permaneça constante, o que é particularmente benéfico para ambientes de produção onde mudanças de configuração devem ser deliberadas e controladas. - Deployment: Gerencia replica sets e atualizações contínuas; não possui um campo
immutable. Imutabilidade não é um conceito aplicado a Deployments, pois eles são projetados para serem atualizados. - Pod: A menor unidade implantável; não possui um campo
immutable. Pods são efêmeros e podem ser substituídos, mas sua configuração não é bloqueada. - ReplicaSet: Garante que um número especificado de réplicas de pod esteja em execução; não possui um campo
immutable. Assim como Deployments, ReplicaSets são feitos para serem atualizados.
Por que o Valor Correto está Certo
O recurso ConfigMap é o único entre as opções que suporta o campo immutable: true. Este campo foi introduzido no Kubernetes 1.21 (alpha) e tornou-se estável no 1.24. É um recurso de segurança e confiabilidade que impede alterações acidentais ou não autorizadas nos dados de configuração.
Por que os Valores Incorretos estão Errados
- Deployment: Não possui um campo
immutable. Deployments são projetados para gerenciar mudanças através de atualizações contínuas, não imutabilidade. - Pod: Não possui um campo
immutable. Pods são imutáveis no sentido de que seu spec não pode ser alterado após a criação, mas não possuem um campo booleanoimmutable. - ReplicaSet: Não possui um campo
immutable. É um recurso de nível inferior que normalmente é gerenciado por um Deployment e não suporta imutabilidade.
Em resumo, o campo immutable: true é exclusivo do ConfigMap (e também do Secret, embora não listado aqui) para bloquear dados de configuração contra modificações.