Sobes.tech
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).