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 Kubernetes Basics 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 Kubernetes Basics, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kubernetes Basics 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=INFOInspecionando 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 yamlConfigMap 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=enAplicando 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 yamlConfigMaps 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_levelDemonstraçã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-podConfigMaps 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-configDemonstraçã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-podVerificaçã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 createou 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 Kubernetes Basics, atualize para CoddyKit PRO. O curso de Kubernetes Basics 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 Kubernetes Basics 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 Kubernetes Basics?
Nenhuma experiência prévia é necessária. Kubernetes Basics 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 Kubernetes Basics?
Sim. Cada aula de Kubernetes Basics 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
- ConfigMaps para configuração
- Secrets para dados confidenciais
- Volumes persistentes e reivindicações
- StorageClasses e provisionamento dinâmico