0Pricing
DevOps Bootcamp · Aula

ConfigMaps para configuração

Externalize a configuração da aplicação das imagens de contêiner usando ConfigMaps.

ConfigMaps para configuração é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Introdução aos ConfigMaps

As aplicações frequentemente precisam de dados de configuração, como strings de conexão com bancos de dados ou sinalizadores de recursos.

Codificar essas informações diretamente nas imagens dos contêineres pode torná-las rígidas e difíceis de atualizar.

Os ConfigMaps oferecem uma forma de externalizar e centralizar a configuração não sensível da sua aplicação, mantendo as imagens flexíveis.

O que é um ConfigMap?

Um ConfigMap é um objeto do Kubernetes usado para armazenar dados não sensíveis em pares de chave e valor.

Pense nele como um local central para as configurações da sua aplicação, que pode ser acessado pelos seus pods.

  • Desacoplamento da configuração: Separa a configuração do código da aplicação.
  • Flexibilidade: Permite alterar configurações facilmente sem recriar imagens.
  • Portabilidade: Permite mover a aplicação entre ambientes com configurações diferentes.

Criando ConfigMaps: Imperativo

Você pode criar rapidamente um ConfigMap diretamente pela linha de comando usando kubectl create configmap.

Esse método é ótimo para configurações simples e pontuais ou para testes rápidos.

Vamos criar um ConfigMap chamado my-app-config com uma configuração de nível de registro.

kubectl create configmap my-app-config \
  --from-literal=log_level=INFO

Inspecionando o Seu ConfigMap

Depois de criar um ConfigMap, você pode visualizar os detalhes e verificar o conteúdo dele.

Use kubectl get com a opção -o yaml para ver a definição YAML completa, incluindo os dados armazenados nele.

kubectl get configmap my-app-config -o yaml

ConfigMap Declarativo (YAML)

Para produção e controle de versões, definir ConfigMaps usando manifestos YAML é a prática padrão.

Essa abordagem torna as configurações reproduzíveis e fáceis de gerenciar junto com o código da aplicação.

Veja um exemplo de YAML para a configuração de um jogo:

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-config
data:
  game.properties: |
    level=easy
    player_limit=10
  ui.properties: |
    theme=dark
    language=en

Aplicando um ConfigMap a partir de YAML

Para criar o ConfigMap game-config, salve o conteúdo YAML da cena anterior em um arquivo (por exemplo, game-config.yaml).

Em seguida, use kubectl apply -f para implantá-lo no cluster.

# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yaml

ConfigMaps como Variáveis de Ambiente

Uma forma comum de um pod consumir dados de um ConfigMap é injetá-los como variáveis de ambiente.

Você pode especificar chaves individuais a serem expostas ou usar envFrom para expor todos os pares de chave e valor de um ConfigMap.

Isso é ideal para configurações simples de aplicações.

apiVersion: v1
kind: Pod
metadata:
  name: my-env-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo Log Level: $LOG_LEVEL && sleep 3600"]
    env:
    - name: LOG_LEVEL
      valueFrom:
        configMapKeyRef:
          name: my-app-config
          key: log_level

Demonstração: Pod com Configuração de Ambiente

Vamos executar a definição do pod para ver a variável de ambiente LOG_LEVEL em ação.

Salve o YAML do pod em env-pod.yaml, aplique-o e verifique os registros do pod.

# Save Pod YAML to env-pod.yaml
kubectl apply -f env-pod.yaml
kubectl logs my-env-pod

# Clean up
kubeclt delete pod my-env-pod

ConfigMaps como Volumes Montados

Para aplicações que esperam arquivos de configuração (por exemplo, nginx.conf, application.properties), você pode montar um ConfigMap como um volume.

Cada par de chave e valor no ConfigMap se torna um arquivo dentro do caminho de montagem especificado no contêiner.

apiVersion: v1
kind: Pod
metadata:
  name: my-volume-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo 'Contents of game.properties:' && cat /etc/config/game.properties && sleep 3600"]
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: game-config

Demonstração: Pod com Configuração Montada

Agora, vamos implantar um pod que monta o ConfigMap game-config como um volume.

Salve o YAML do pod em volume-pod.yaml, aplique-o e inspecione os registros para ver o conteúdo do arquivo montado.

# Save Pod YAML to volume-pod.yaml
kubectl apply -f volume-pod.yaml
kubectl logs my-volume-pod

# Clean up
kubeclt delete pod my-volume-pod

Verificação Rápida: ConfigMaps

Qual das afirmações a seguir sobre os ConfigMaps do Kubernetes é verdadeira?

Recapitulação: ConfigMaps

Excelente trabalho! Você aprendeu como os ConfigMaps ajudam a gerenciar configurações no Kubernetes:

  • Finalidade: Armazenar dados de configuração não sensíveis como pares de chave e valor.
  • Criação: De forma imperativa com kubectl create ou de forma declarativa com YAML.
  • Consumo: Como variáveis de ambiente ou arquivos montados dentro dos pods.
  • Benefício: Desacoplar a configuração do código da aplicação, aumentando a flexibilidade.

A seguir, exploraremos como lidar com informações sensíveis com segurança usando os Secrets do Kubernetes!

Perguntas Frequentes

A aula “ConfigMaps para configuração” é grátis?

Sim — o texto completo de “ConfigMaps para configuração” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “ConfigMaps para configuração”?

Externalize a configuração da aplicação das imagens de contêiner usando ConfigMaps. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “ConfigMaps para configuração”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. ConfigMaps para configuração
  2. Secrets para dados confidenciais
  3. Volumes persistentes e reivindicações
  4. StorageClasses e provisionamento dinâmico
← Voltar para DevOps Bootcamp