Junior
O que é o ConfigMap no Kubernetes?
sobes.tech IA
Resposta da IA
O ConfigMap é um objeto API utilizado para armazenar dados não confidenciais em pares chave-valor no Kubernetes. Ele permite separar a configuração da aplicação da sua imagem de contêiner, tornando as aplicações mais portáteis e facilitando a gestão da configuração.
Os dados no ConfigMap podem ser utilizados das seguintes formas:
- Como variáveis de ambiente no contêiner.
- Como argumentos de linha de comando para o contêiner.
- Como arquivos em um volume montado no Pod.
Exemplo de criação de um ConfigMap a partir de um arquivo:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
my-config-file.properties: |
database.url=jdbc:mysql://localhost:3306/mydatabase
database.username=mydbuser
database.password=secret
Utilização do ConfigMap no Pod através de variáveis de ambiente:
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app
image: my-app-image
env:
- name: DATABASE_URL
valueFrom:
configMapKeyRef:
name: my-config
key: database.url
- name: DATABASE_USERNAME
valueFrom:
configMapKeyRef:
name: my-config
key: database.username
Utilização do ConfigMap no Pod através de montagem como arquivo:
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app
image: my-app-image
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-config
Características principais:
- Usado para dados não confidenciais. Para dados confidenciais, usar Secrets.
- Permite atualizar a configuração dinamicamente sem reconstruir a imagem.
- Os dados no ConfigMap têm limite de tamanho (padrão de 1 MB).
- Algumas alterações no ConfigMap podem exigir reiniciar o Pod para que tenham efeito, dependendo do método de uso (variáveis de ambiente requerem reinício, montagem como arquivo pode ser dinâmico).